jruby_activiti 1.2.5 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.ruby-version +1 -1
- data/CHANGELOG +6 -0
- data/Jarfile +5 -0
- data/Jarfile.lock +52 -13
- data/README.md +21 -9
- data/java/build.md +3 -0
- data/java/mapping.md +20 -0
- data/java/pom.xml +30 -0
- data/java/src/main/java/jrubyactiviti/Modeler.java +95 -0
- data/java/src/main/java/jrubyactiviti/ProcessDiagram.java +491 -0
- data/java/src/main/java/jrubyactiviti/ProcessInstanceHighlights.java +237 -0
- data/java/src/main/java/jrubyactiviti/StencilsetResource.java +16 -0
- data/java/src/main/resources/stencilset.json +1339 -0
- data/jruby_activiti.gemspec +3 -2
- data/lib/generators/jruby_activiti/install_generator.rb +4 -0
- data/lib/jar/jrubyactiviti-2.0.jar +0 -0
- data/lib/jruby_activiti/version.rb +1 -1
- data/lib/jruby_activiti/web.rb +81 -0
- data/lib/jruby_activiti.rb +28 -20
- data/test/{base_test.rb → activiti_test.rb} +1 -3
- data/test/instance_hights_test.rb +18 -0
- data/test/modeler_test.rb +35 -0
- data/test/process_diagram_test.rb +33 -0
- data/test/resources/model_init_editor_source.json +1 -0
- data/test/resources/model_json_xml.json +278 -0
- data/test/resources/model_svg_xml.xml +66 -0
- data/test/stencilset_test.rb +7 -0
- data/test/test_helper.rb +2 -0
- data/web/public/diagram-viewer/images/bg.png +0 -0
- data/web/public/diagram-viewer/images/breadcrumbs.png +0 -0
- data/web/public/diagram-viewer/images/checker-bg.png +0 -0
- data/web/public/diagram-viewer/images/deployer/blue/message_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/business_rule.png +0 -0
- data/web/public/diagram-viewer/images/deployer/error_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/error_throw.png +0 -0
- data/web/public/diagram-viewer/images/deployer/manual.png +0 -0
- data/web/public/diagram-viewer/images/deployer/message_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/message_throw.png +0 -0
- data/web/public/diagram-viewer/images/deployer/receive.png +0 -0
- data/web/public/diagram-viewer/images/deployer/script.png +0 -0
- data/web/public/diagram-viewer/images/deployer/send.png +0 -0
- data/web/public/diagram-viewer/images/deployer/service.png +0 -0
- data/web/public/diagram-viewer/images/deployer/signal_catch.png +0 -0
- data/web/public/diagram-viewer/images/deployer/signal_throw.png +0 -0
- data/web/public/diagram-viewer/images/deployer/timer.png +0 -0
- data/web/public/diagram-viewer/images/deployer/user.png +0 -0
- data/web/public/diagram-viewer/index.html +130 -0
- data/web/public/diagram-viewer/js/ActivitiRest.js +74 -0
- data/web/public/diagram-viewer/js/ActivityImpl.js +1 -0
- data/web/public/diagram-viewer/js/Color.js +603 -0
- data/web/public/diagram-viewer/js/LineBreakMeasurer.js +270 -0
- data/web/public/diagram-viewer/js/Polyline.js +387 -0
- data/web/public/diagram-viewer/js/ProcessDiagramCanvas.js +2172 -0
- data/web/public/diagram-viewer/js/ProcessDiagramGenerator.js +1087 -0
- data/web/public/diagram-viewer/js/jquery/jquery.asyncqueue.js +125 -0
- data/web/public/diagram-viewer/js/jquery/jquery.js +9266 -0
- data/web/public/diagram-viewer/js/jquery/jquery.progressbar.js +131 -0
- data/web/public/diagram-viewer/js/jstools.js +23 -0
- data/web/public/diagram-viewer/js/raphael.2.1.1.js +10 -0
- data/web/public/diagram-viewer/js/raphael.js +10 -0
- data/web/public/diagram-viewer/js/raphael_uncompressed.js +5815 -0
- data/web/public/diagram-viewer/js/textlayout.js +441 -0
- data/web/public/diagram-viewer/style.css +1 -0
- data/web/public/editor-app/app-cfg.js +25 -0
- data/web/public/editor-app/app.js +432 -0
- data/web/public/editor-app/configuration/properties/assignment-display-template.html +4 -0
- data/web/public/editor-app/configuration/properties/assignment-popup.html +44 -0
- data/web/public/editor-app/configuration/properties/assignment-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/boolean-property-template.html +4 -0
- data/web/public/editor-app/configuration/properties/condition-expression-display-template.html +2 -0
- data/web/public/editor-app/configuration/properties/condition-expression-popup.html +29 -0
- data/web/public/editor-app/configuration/properties/condition-expression-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/default-value-display-template.html +4 -0
- data/web/public/editor-app/configuration/properties/event-listeners-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/event-listeners-popup.html +115 -0
- data/web/public/editor-app/configuration/properties/event-listeners-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/execution-listeners-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/execution-listeners-popup.html +101 -0
- data/web/public/editor-app/configuration/properties/execution-listeners-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/feedback-popup.html +17 -0
- data/web/public/editor-app/configuration/properties/fields-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/fields-popup.html +61 -0
- data/web/public/editor-app/configuration/properties/fields-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/form-properties-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/form-properties-popup.html +93 -0
- data/web/public/editor-app/configuration/properties/form-properties-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/in-parameters-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/in-parameters-popup.html +53 -0
- data/web/public/editor-app/configuration/properties/in-parameters-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/message-definitions-display-template.html +2 -0
- data/web/public/editor-app/configuration/properties/message-definitions-popup.html +50 -0
- data/web/public/editor-app/configuration/properties/message-definitions-write-template.html +3 -0
- data/web/public/editor-app/configuration/properties/message-property-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/multiinstance-property-write-template.html +8 -0
- data/web/public/editor-app/configuration/properties/out-parameters-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/out-parameters-popup.html +53 -0
- data/web/public/editor-app/configuration/properties/out-parameters-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/sequenceflow-order-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/sequenceflow-order-popup.html +47 -0
- data/web/public/editor-app/configuration/properties/sequenceflow-order-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/signal-definitions-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/signal-definitions-popup.html +58 -0
- data/web/public/editor-app/configuration/properties/signal-definitions-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/signal-property-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/string-property-write-mode-template.html +8 -0
- data/web/public/editor-app/configuration/properties/subprocess-reference-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/subprocess-reference-popup.html +43 -0
- data/web/public/editor-app/configuration/properties/subprocess-reference-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/task-listeners-display-template.html +3 -0
- data/web/public/editor-app/configuration/properties/task-listeners-popup.html +102 -0
- data/web/public/editor-app/configuration/properties/task-listeners-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties/text-popup.html +17 -0
- data/web/public/editor-app/configuration/properties/text-property-write-template.html +4 -0
- data/web/public/editor-app/configuration/properties-assignment-controller.js +150 -0
- data/web/public/editor-app/configuration/properties-condition-expression-controller.js +58 -0
- data/web/public/editor-app/configuration/properties-custom-controllers.js +18 -0
- data/web/public/editor-app/configuration/properties-default-controllers.js +115 -0
- data/web/public/editor-app/configuration/properties-event-listeners-controller.js +266 -0
- data/web/public/editor-app/configuration/properties-execution-listeners-controller.js +326 -0
- data/web/public/editor-app/configuration/properties-fields-controller.js +192 -0
- data/web/public/editor-app/configuration/properties-form-properties-controller.js +192 -0
- data/web/public/editor-app/configuration/properties-in-parameters-controller.js +158 -0
- data/web/public/editor-app/configuration/properties-message-definitions-controller.js +137 -0
- data/web/public/editor-app/configuration/properties-message-scope-controller.js +48 -0
- data/web/public/editor-app/configuration/properties-multiinstance-controller.js +34 -0
- data/web/public/editor-app/configuration/properties-out-parameters-controller.js +158 -0
- data/web/public/editor-app/configuration/properties-sequenceflow-order-controller.js +130 -0
- data/web/public/editor-app/configuration/properties-signal-definitions-controller.js +136 -0
- data/web/public/editor-app/configuration/properties-signal-scope-controller.js +47 -0
- data/web/public/editor-app/configuration/properties-task-listeners-controller.js +325 -0
- data/web/public/editor-app/configuration/properties.js +99 -0
- data/web/public/editor-app/configuration/toolbar-custom-actions.js +18 -0
- data/web/public/editor-app/configuration/toolbar-default-actions.js +429 -0
- data/web/public/editor-app/configuration/toolbar.js +175 -0
- data/web/public/editor-app/configuration/url-config.js +34 -0
- data/web/public/editor-app/css/style-common.css +1518 -0
- data/web/public/editor-app/css/style-editor.css +639 -0
- data/web/public/editor-app/css/style.css +471 -0
- data/web/public/editor-app/editor/css/editor.css +202 -0
- data/web/public/editor-app/editor/i18n/translation_de.js +383 -0
- data/web/public/editor-app/editor/i18n/translation_en_us.js +423 -0
- data/web/public/editor-app/editor/i18n/translation_signavio_de.js +106 -0
- data/web/public/editor-app/editor/i18n/translation_signavio_en_us.js +108 -0
- data/web/public/editor-app/editor/oryx.debug.js +24510 -0
- data/web/public/editor-app/editor/oryx.js +30 -0
- data/web/public/editor-app/editor-config.js +32 -0
- data/web/public/editor-app/editor-controller.js +65 -0
- data/web/public/editor-app/editor-utils.js +135 -0
- data/web/public/editor-app/editor.html +136 -0
- data/web/public/editor-app/eventbus.js +133 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.eot +0 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.svg +43 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.ttf +0 -0
- data/web/public/editor-app/fonts/activiti-admin-webfont.woff +0 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.eot +0 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.svg +229 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/web/public/editor-app/fonts/glyphicons-halflings-regular.woff +0 -0
- data/web/public/editor-app/header-controller.js +31 -0
- data/web/public/editor-app/i18n/en.json +286 -0
- data/web/public/editor-app/images/bpmn-error.png +0 -0
- data/web/public/editor-app/images/bpmn-warning.png +0 -0
- data/web/public/editor-app/images/datadefinition.png +0 -0
- data/web/public/editor-app/images/delete.png +0 -0
- data/web/public/editor-app/images/loading.gif +0 -0
- data/web/public/editor-app/images/logo-2x.png +0 -0
- data/web/public/editor-app/images/logo.png +0 -0
- data/web/public/editor-app/images/nw-handle-dark.gif +0 -0
- data/web/public/editor-app/images/se-handle-dark.gif +0 -0
- data/web/public/editor-app/images/shapemenu_highlight.png +0 -0
- data/web/public/editor-app/images/wrench.png +0 -0
- data/web/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js +8 -0
- data/web/public/editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-dragdrop.min-1.0.3.js +9 -0
- data/web/public/editor-app/libs/angular-dragdrop_1.0.7/angular-dragdrop.min.js +29 -0
- data/web/public/editor-app/libs/angular-mocks_1.2.13/angular-mocks.js +2136 -0
- data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.js +596 -0
- data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js +13 -0
- data/web/public/editor-app/libs/angular-resource_1.2.13/angular-resource.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.js +921 -0
- data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js +14 -0
- data/web/public/editor-app/libs/angular-route_1.2.13/angular-route.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.js +625 -0
- data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js +14 -0
- data/web/public/editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js.map +8 -0
- data/web/public/editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js +1 -0
- data/web/public/editor-app/libs/angular-strap_2.0.5/angular-strap.min.js +9 -0
- data/web/public/editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js +8 -0
- data/web/public/editor-app/libs/angular-translate-loader-static-files/.bower.json +19 -0
- data/web/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js +31 -0
- data/web/public/editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.min.js +6 -0
- data/web/public/editor-app/libs/angular-translate-storage-cookie/.bower.json +20 -0
- data/web/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js +19 -0
- data/web/public/editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.min.js +6 -0
- data/web/public/editor-app/libs/angular-translate_2.4.2/angular-translate.js +960 -0
- data/web/public/editor-app/libs/angular-translate_2.4.2/angular-translate.min.js +6 -0
- data/web/public/editor-app/libs/angular_1.2.13/angular-animate.min.js +27 -0
- data/web/public/editor-app/libs/angular_1.2.13/angular.min.js +204 -0
- data/web/public/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker-bs3.css +267 -0
- data/web/public/editor-app/libs/bootstrap-daterangepicker_1.3.7/daterangepicker.js +1026 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css +347 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.css.map +1 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap-theme.min.css +7 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css +5785 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.css.map +1 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css +7 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.eot +0 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.svg +229 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/fonts/glyphicons-halflings-regular.woff +0 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/js/bootstrap.js +1951 -0
- data/web/public/editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js +6 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/.bower.json +14 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/.gitignore +2 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/CHANGES +93 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/CONTRIBUTORS.md +25 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/LICENSE +19 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/README.md +161 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.js +444 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.map +1 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-sham.min.js +4 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.js +1314 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.map +1 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/es5-shim.min.js +4 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/package.json +34 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-kill.js +64 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h-matchers.js +34 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/helpers/h.js +3 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.html +64 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/index.min.html +63 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine-html.js +190 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.css +166 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine.js +2477 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/jasmine_favicon.png +0 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/lib/json2.js +478 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-array.js +1223 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-date.js +152 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-function.js +147 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-number.js +14 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-object.js +181 -0
- data/web/public/editor-app/libs/es5-shim-15.3.4.5/tests/spec/s-string.js +204 -0
- data/web/public/editor-app/libs/jquery-ui-1.10.3.custom.min.js +6 -0
- data/web/public/editor-app/libs/jquery.autogrow-textarea.js +61 -0
- data/web/public/editor-app/libs/jquery_1.11.0/jquery.js +9789 -0
- data/web/public/editor-app/libs/jquery_1.11.0/jquery.min.js +4 -0
- data/web/public/editor-app/libs/jquery_1.11.0/jquery.min.map +1 -0
- data/web/public/editor-app/libs/json3_3.2.6/LICENSE +20 -0
- data/web/public/editor-app/libs/json3_3.2.6/lib/json3.js +861 -0
- data/web/public/editor-app/libs/json3_3.2.6/lib/json3.min.js +18 -0
- data/web/public/editor-app/libs/momentjs_2.5.1/momentjs.min.js +6 -0
- data/web/public/editor-app/libs/mousetrap-1.4.5.min.js +9 -0
- data/web/public/editor-app/libs/ng-grid-2.0.7-min.js +2 -0
- data/web/public/editor-app/libs/ng-grid-2.0.7.min.css +1 -0
- data/web/public/editor-app/libs/path_parser.js +30 -0
- data/web/public/editor-app/libs/prototype-1.5.1.js +3272 -0
- data/web/public/editor-app/libs/ui-utils.min-0.0.4.js +7 -0
- data/web/public/editor-app/partials/root-stencil-item-template.html +11 -0
- data/web/public/editor-app/partials/stencil-item-template.html +27 -0
- data/web/public/editor-app/plugins.xml +58 -0
- data/web/public/editor-app/popups/icon-template.html +3 -0
- data/web/public/editor-app/popups/save-model.html +41 -0
- data/web/public/editor-app/popups/select-shape.html +20 -0
- data/web/public/editor-app/popups/unsaved-changes.html +22 -0
- data/web/public/editor-app/select-shape-controller.js +314 -0
- data/web/public/editor-app/stencil-controller.js +1421 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.collapsed.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/event.subprocess.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/expanded.subprocess.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.business.rule.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.camel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.manual.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.mule.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.receive.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.script.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.send.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.service.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.shell.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/list/type.user.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/subprocess.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/activity/task.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/artifact/text.annotation.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/cancel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/compensation.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/error.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/message.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/signal.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/catching/timer.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.undirected.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/association.unidirectional.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/messageflow.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/connector/sequenceflow.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/dataobject/data.store.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/diagram.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/cancel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/error.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/none.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/endevent/terminate.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/eventbased.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/exclusive.databased.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/inclusive.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/gateway/parallel.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/error.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/message.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/none.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/signal.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/startevent/timer.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/lane.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/swimlane/pool.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/throwing/none.png +0 -0
- data/web/public/editor-app/stencilsets/bpmn2.0/icons/throwing/signal.png +0 -0
- data/web/public/editor-app/toolbar-controller.js +162 -0
- data/web/public/modeler.html +140 -0
- data/web/views/models/index.erb +32 -0
- data/web/views/models/new.erb +15 -0
- metadata +334 -10
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,162 @@
|
|
1
|
+
/*
|
2
|
+
* Activiti Modeler component part of the Activiti project
|
3
|
+
* Copyright 2005-2014 Alfresco Software, Ltd. All rights reserved.
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
9
|
+
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
*/
|
19
|
+
'use strict';
|
20
|
+
|
21
|
+
angular.module('activitiModeler')
|
22
|
+
.controller('ToolbarController', ['$scope', '$http', '$modal', '$q', '$rootScope', '$translate', '$location', function ($scope, $http, $modal, $q, $rootScope, $translate, $location) {
|
23
|
+
|
24
|
+
$scope.editorFactory.promise.then(function () {
|
25
|
+
$scope.items = KISBPM.TOOLBAR_CONFIG.items;
|
26
|
+
});
|
27
|
+
|
28
|
+
$scope.secondaryItems = KISBPM.TOOLBAR_CONFIG.secondaryItems;
|
29
|
+
|
30
|
+
// Call configurable click handler (From http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string)
|
31
|
+
var executeFunctionByName = function(functionName, context /*, args */) {
|
32
|
+
var args = Array.prototype.slice.call(arguments).splice(2);
|
33
|
+
var namespaces = functionName.split(".");
|
34
|
+
var func = namespaces.pop();
|
35
|
+
for(var i = 0; i < namespaces.length; i++) {
|
36
|
+
context = context[namespaces[i]];
|
37
|
+
}
|
38
|
+
return context[func].apply(this, args);
|
39
|
+
};
|
40
|
+
|
41
|
+
// Click handler for toolbar buttons
|
42
|
+
$scope.toolbarButtonClicked = function(buttonIndex) {
|
43
|
+
|
44
|
+
// Default behaviour
|
45
|
+
var buttonClicked = $scope.items[buttonIndex];
|
46
|
+
var services = { '$scope' : $scope, '$rootScope' : $rootScope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate};
|
47
|
+
executeFunctionByName(buttonClicked.action, window, services);
|
48
|
+
|
49
|
+
// Other events
|
50
|
+
var event = {
|
51
|
+
type : KISBPM.eventBus.EVENT_TYPE_TOOLBAR_BUTTON_CLICKED,
|
52
|
+
toolbarItem : buttonClicked
|
53
|
+
};
|
54
|
+
KISBPM.eventBus.dispatch(event.type, event);
|
55
|
+
};
|
56
|
+
|
57
|
+
// Click handler for secondary toolbar buttons
|
58
|
+
$scope.toolbarSecondaryButtonClicked = function(buttonIndex) {
|
59
|
+
var buttonClicked = $scope.secondaryItems[buttonIndex];
|
60
|
+
var services = { '$scope' : $scope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate, '$location': $location};
|
61
|
+
executeFunctionByName(buttonClicked.action, window, services);
|
62
|
+
};
|
63
|
+
|
64
|
+
/* Key bindings */
|
65
|
+
Mousetrap.bind(['command+z', 'ctrl+z'], function(e) {
|
66
|
+
var services = { '$scope' : $scope, '$rootScope' : $rootScope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate};
|
67
|
+
KISBPM.TOOLBAR.ACTIONS.undo(services);
|
68
|
+
return false;
|
69
|
+
});
|
70
|
+
|
71
|
+
Mousetrap.bind(['command+y', 'ctrl+y'], function(e) {
|
72
|
+
var services = { '$scope' : $scope, '$rootScope' : $rootScope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate};
|
73
|
+
KISBPM.TOOLBAR.ACTIONS.redo(services);
|
74
|
+
return false;
|
75
|
+
});
|
76
|
+
|
77
|
+
Mousetrap.bind(['command+c', 'ctrl+c'], function(e) {
|
78
|
+
var services = { '$scope' : $scope, '$rootScope' : $rootScope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate};
|
79
|
+
KISBPM.TOOLBAR.ACTIONS.copy(services);
|
80
|
+
return false;
|
81
|
+
});
|
82
|
+
|
83
|
+
Mousetrap.bind(['command+v', 'ctrl+v'], function(e) {
|
84
|
+
var services = { '$scope' : $scope, '$rootScope' : $rootScope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate};
|
85
|
+
KISBPM.TOOLBAR.ACTIONS.paste(services);
|
86
|
+
return false;
|
87
|
+
});
|
88
|
+
|
89
|
+
Mousetrap.bind(['del'], function(e) {
|
90
|
+
var services = { '$scope' : $scope, '$rootScope' : $rootScope, '$http' : $http, '$modal' : $modal, '$q' : $q, '$translate' : $translate};
|
91
|
+
KISBPM.TOOLBAR.ACTIONS.deleteItem(services);
|
92
|
+
return false;
|
93
|
+
});
|
94
|
+
|
95
|
+
/* Undo logic */
|
96
|
+
|
97
|
+
$scope.undoStack = [];
|
98
|
+
$scope.redoStack = [];
|
99
|
+
|
100
|
+
$scope.editorFactory.promise.then(function() {
|
101
|
+
|
102
|
+
// Catch all command that are executed and store them on the respective stacks
|
103
|
+
$scope.editor.registerOnEvent(ORYX.CONFIG.EVENT_EXECUTE_COMMANDS, function( evt ){
|
104
|
+
|
105
|
+
// If the event has commands
|
106
|
+
if( !evt.commands ){ return; }
|
107
|
+
|
108
|
+
$scope.undoStack.push( evt.commands );
|
109
|
+
$scope.redoStack = [];
|
110
|
+
|
111
|
+
for(var i = 0; i < $scope.items.length; i++)
|
112
|
+
{
|
113
|
+
var item = $scope.items[i];
|
114
|
+
if (item.action === 'KISBPM.TOOLBAR.ACTIONS.undo')
|
115
|
+
{
|
116
|
+
item.enabled = true;
|
117
|
+
}
|
118
|
+
else if (item.action === 'KISBPM.TOOLBAR.ACTIONS.redo')
|
119
|
+
{
|
120
|
+
item.enabled = false;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
// Update
|
125
|
+
$scope.editor.getCanvas().update();
|
126
|
+
$scope.editor.updateSelection();
|
127
|
+
|
128
|
+
});
|
129
|
+
|
130
|
+
});
|
131
|
+
|
132
|
+
// Handle enable/disable toolbar buttons
|
133
|
+
$scope.editorFactory.promise.then(function() {
|
134
|
+
$scope.editor.registerOnEvent(ORYX.CONFIG.EVENT_SELECTION_CHANGED, function( evt ){
|
135
|
+
var elements = evt.elements;
|
136
|
+
|
137
|
+
for(var i = 0; i < $scope.items.length; i++)
|
138
|
+
{
|
139
|
+
var item = $scope.items[i];
|
140
|
+
if (item.enabledAction && item.enabledAction === 'element')
|
141
|
+
{
|
142
|
+
var minLength = 1;
|
143
|
+
if(item.minSelectionCount) {
|
144
|
+
minLength = item.minSelectionCount;
|
145
|
+
}
|
146
|
+
if (elements.length >= minLength && !item.enabled) {
|
147
|
+
$scope.safeApply(function () {
|
148
|
+
item.enabled = true;
|
149
|
+
});
|
150
|
+
}
|
151
|
+
else if (elements.length == 0 && item.enabled) {
|
152
|
+
$scope.safeApply(function () {
|
153
|
+
item.enabled = false;
|
154
|
+
});
|
155
|
+
}
|
156
|
+
}
|
157
|
+
}
|
158
|
+
});
|
159
|
+
|
160
|
+
});
|
161
|
+
|
162
|
+
}]);
|
@@ -0,0 +1,140 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<!--[if lt IE 7]>
|
3
|
+
<html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
4
|
+
<!--[if IE 7]>
|
5
|
+
<html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
6
|
+
<!--[if IE 8]>
|
7
|
+
<html class="no-js lt-ie9"> <![endif]-->
|
8
|
+
<!--[if gt IE 8]><!-->
|
9
|
+
<html class="no-js"> <!--<![endif]-->
|
10
|
+
<head>
|
11
|
+
<meta charset="utf-8">
|
12
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
13
|
+
<title>Activiti Editor</title>
|
14
|
+
<meta name="description" content="">
|
15
|
+
<meta name="viewport"
|
16
|
+
content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, width=device-width">
|
17
|
+
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
18
|
+
|
19
|
+
<link rel="Stylesheet" media="screen" href="editor-app/libs/ng-grid-2.0.7.min.css" type="text/css"/>
|
20
|
+
<link rel="stylesheet" href="editor-app/libs/bootstrap_3.1.1/css/bootstrap.min.css"/>
|
21
|
+
|
22
|
+
<link rel="Stylesheet" media="screen" href="editor-app/editor/css/editor.css" type="text/css"/>
|
23
|
+
<link rel="stylesheet" href="editor-app/css/style.css" type="text/css"/>
|
24
|
+
|
25
|
+
<link rel="stylesheet" href="editor-app/css/style-common.css">
|
26
|
+
<link rel="stylesheet" href="editor-app/css/style-editor.css">
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
|
31
|
+
<div class="navbar navbar-fixed-top navbar-inverse" role="navigation" id="main-header">
|
32
|
+
<div class="navbar-header">
|
33
|
+
<a href="" ng-click="backToLanding()" class="navbar-brand"
|
34
|
+
title="{{'GENERAL.MAIN-TITLE' | translate}}"><span
|
35
|
+
class="sr-only">{{'GENERAL.MAIN-TITLE' | translate}}</span></a>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<!--[if lt IE 9]>
|
40
|
+
<div class="unsupported-browser">
|
41
|
+
<p class="alert error">You are using an unsupported browser. Please upgrade your browser in order to use the
|
42
|
+
editor.</p>
|
43
|
+
</div>
|
44
|
+
<![endif]-->
|
45
|
+
|
46
|
+
<div class="alert-wrapper" ng-cloak>
|
47
|
+
<div class="alert fadein {{alerts.current.type}}" ng-show="alerts.current" ng-click="dismissAlert()">
|
48
|
+
<i class="glyphicon"
|
49
|
+
ng-class="{'glyphicon-ok': alerts.current.type == 'info', 'glyphicon-remove': alerts.current.type == 'error'}"></i>
|
50
|
+
<span>{{alerts.current.message}}</span>
|
51
|
+
|
52
|
+
<div class="pull-right" ng-show="alerts.queue.length > 0">
|
53
|
+
<span class="badge">{{alerts.queue.length + 1}}</span>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<div id="main" class="wrapper full clearfix" ng-style="{height: window.height + 'px'}" ng-app="activitiModeler" ng-include="'editor-app/editor.html'">
|
59
|
+
</div>
|
60
|
+
|
61
|
+
<!--[if lt IE 9]>
|
62
|
+
<script src="editor-app/libs/es5-shim-15.3.4.5/es5-shim.js"></script>
|
63
|
+
<script src="editor-app/libs/json3_3.2.6/lib/json3.min.js"></script>
|
64
|
+
<![endif]-->
|
65
|
+
|
66
|
+
<script src="editor-app/libs/jquery_1.11.0/jquery.min.js"></script>
|
67
|
+
<script src="editor-app/libs/jquery-ui-1.10.3.custom.min.js"></script>
|
68
|
+
|
69
|
+
<script src="editor-app/libs/angular_1.2.13/angular.min.js"></script>
|
70
|
+
<script src="editor-app/libs/angular_1.2.13/angular-animate.min.js"></script>
|
71
|
+
<script src="editor-app/libs/bootstrap_3.1.1/js/bootstrap.min.js"></script>
|
72
|
+
<script src="editor-app/libs/angular-resource_1.2.13/angular-resource.min.js"></script>
|
73
|
+
<script src="editor-app/libs/angular-cookies_1.2.13/angular-cookies.min.js"></script>
|
74
|
+
<script src="editor-app/libs/angular-sanitize_1.2.13/angular-sanitize.min.js"></script>
|
75
|
+
<script src="editor-app/libs/angular-route_1.2.13/angular-route.min.js"></script>
|
76
|
+
<script src="editor-app/libs/angular-translate_2.4.2/angular-translate.min.js"></script>
|
77
|
+
<script src="editor-app/libs/angular-translate-storage-cookie/angular-translate-storage-cookie.js"></script>
|
78
|
+
<script src="editor-app/libs/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script>
|
79
|
+
<script src="editor-app/libs/angular-strap_2.0.5/angular-strap.min.js"></script>
|
80
|
+
<script src="editor-app/libs/angular-strap_2.0.5/angular-strap.tpl.min.js"></script>
|
81
|
+
<script src="editor-app/libs/momentjs_2.5.1/momentjs.min.js"></script>
|
82
|
+
|
83
|
+
<script src="editor-app/libs/ui-utils.min-0.0.4.js" type="text/javascript"></script>
|
84
|
+
<script src="editor-app/libs/ng-grid-2.0.7-min.js" type="text/javascript"></script>
|
85
|
+
<script src="editor-app/libs/angular-dragdrop.min-1.0.3.js" type="text/javascript"></script>
|
86
|
+
<script src="editor-app/libs/mousetrap-1.4.5.min.js" type="text/javascript"></script>
|
87
|
+
<script src="editor-app/libs/jquery.autogrow-textarea.js" type="text/javascript"></script>
|
88
|
+
|
89
|
+
<script src="editor-app/libs/prototype-1.5.1.js" type="text/javascript"></script>
|
90
|
+
<script src="editor-app/libs/path_parser.js" type="text/javascript"></script>
|
91
|
+
|
92
|
+
<script src="editor-app/libs/angular-scroll_0.5.7/angular-scroll.min.js" type="text/javascript"></script>
|
93
|
+
|
94
|
+
<!-- Configuration -->
|
95
|
+
<script src="editor-app/app-cfg.js?v=1"></script>
|
96
|
+
<script src="editor-app/editor-config.js" type="text/javascript"></script>
|
97
|
+
<script src="editor-app/configuration/url-config.js" type="text/javascript"></script>
|
98
|
+
|
99
|
+
<script src="editor-app/editor/i18n/translation_en_us.js" type="text/javascript"></script>
|
100
|
+
<script src="editor-app/editor/i18n/translation_signavio_en_us.js" type="text/javascript"></script>
|
101
|
+
<script src="editor-app/editor/oryx.debug.js" type="text/javascript"></script>
|
102
|
+
|
103
|
+
<script src="editor-app/app.js"></script>
|
104
|
+
|
105
|
+
<script src="editor-app/eventbus.js" type="text/javascript"></script>
|
106
|
+
|
107
|
+
<script src="editor-app/editor-controller.js" type="text/javascript"></script>
|
108
|
+
<script src="editor-app/stencil-controller.js" type="text/javascript"></script>
|
109
|
+
<script src="editor-app/toolbar-controller.js" type="text/javascript"></script>
|
110
|
+
<script src="editor-app/header-controller.js" type="text/javascript"></script>
|
111
|
+
<script src="editor-app/select-shape-controller.js" type="text/javascript"></script>
|
112
|
+
|
113
|
+
<script src="editor-app/editor-utils.js" type="text/javascript"></script>
|
114
|
+
<script src="editor-app/configuration/toolbar-default-actions.js" type="text/javascript"></script>
|
115
|
+
|
116
|
+
<script src="editor-app/configuration/properties-default-controllers.js" type="text/javascript"></script>
|
117
|
+
<script src="editor-app/configuration/properties-execution-listeners-controller.js" type="text/javascript"></script>
|
118
|
+
<script src="editor-app/configuration/properties-event-listeners-controller.js" type="text/javascript"></script>
|
119
|
+
<script src="editor-app/configuration/properties-assignment-controller.js" type="text/javascript"></script>
|
120
|
+
<script src="editor-app/configuration/properties-fields-controller.js" type="text/javascript"></script>
|
121
|
+
<script src="editor-app/configuration/properties-form-properties-controller.js" type="text/javascript"></script>
|
122
|
+
<script src="editor-app/configuration/properties-in-parameters-controller.js" type="text/javascript"></script>
|
123
|
+
<script src="editor-app/configuration/properties-multiinstance-controller.js" type="text/javascript"></script>
|
124
|
+
<script src="editor-app/configuration/properties-out-parameters-controller.js" type="text/javascript"></script>
|
125
|
+
<script src="editor-app/configuration/properties-task-listeners-controller.js" type="text/javascript"></script>
|
126
|
+
<script src="editor-app/configuration/properties-sequenceflow-order-controller.js" type="text/javascript"></script>
|
127
|
+
<script src="editor-app/configuration/properties-condition-expression-controller.js" type="text/javascript"></script>
|
128
|
+
<script src="editor-app/configuration/properties-signal-definitions-controller.js" type="text/javascript"></script>
|
129
|
+
<script src="editor-app/configuration/properties-signal-scope-controller.js" type="text/javascript"></script>
|
130
|
+
<script src="editor-app/configuration/properties-message-definitions-controller.js" type="text/javascript"></script>
|
131
|
+
<script src="editor-app/configuration/properties-message-scope-controller.js" type="text/javascript"></script>
|
132
|
+
|
133
|
+
<script src="editor-app/configuration/toolbar.js" type="text/javascript"></script>
|
134
|
+
<script src="editor-app/configuration/toolbar-custom-actions.js" type="text/javascript"></script>
|
135
|
+
|
136
|
+
<script src="editor-app/configuration/properties.js" type="text/javascript"></script>
|
137
|
+
<script src="editor-app/configuration/properties-custom-controllers.js" type="text/javascript"></script>
|
138
|
+
|
139
|
+
</body>
|
140
|
+
</html>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<h1>Models#index</h1>
|
2
|
+
|
3
|
+
<a href="<%= uri('/models/new') %>">New Model</a>
|
4
|
+
|
5
|
+
<table>
|
6
|
+
<tr>
|
7
|
+
<th>getId()</th>
|
8
|
+
<th>getKey()</th>
|
9
|
+
<th>getName()</th>
|
10
|
+
<th>getVersion()</th>
|
11
|
+
<th>getMetaInfo()</th>
|
12
|
+
<th>getDeploymentId()</th>
|
13
|
+
<th>getCategory()</th>
|
14
|
+
<th>getCreateTime()</th>
|
15
|
+
<th>getLastUpdateTime()</th>
|
16
|
+
<th>Modeler</th>
|
17
|
+
</tr>
|
18
|
+
<% for model in @models %>
|
19
|
+
<tr>
|
20
|
+
<td><%= model.getId() %></td>
|
21
|
+
<td><%= model.getKey() %></td>
|
22
|
+
<td><%= model.getName() %></td>
|
23
|
+
<td><%= model.getVersion() %></td>
|
24
|
+
<td><%= model.getMetaInfo() %></td>
|
25
|
+
<td><%= model.getDeploymentId() %></td>
|
26
|
+
<td><%= model.getCategory() %></td>
|
27
|
+
<td><%= model.getCreateTime() %></td>
|
28
|
+
<td><%= model.getLastUpdateTime() %></td>
|
29
|
+
<td><a href="<%= uri("/modeler.html?modelId=#{model.getId()}") %>">Edit in Modeler</a></td>
|
30
|
+
</tr>
|
31
|
+
<% end %>
|
32
|
+
</table>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<h1>Models#New</h1>
|
2
|
+
|
3
|
+
<form action="<%= uri('/models') %>" method="POST">
|
4
|
+
<div>
|
5
|
+
<label>Name</label>
|
6
|
+
<input type="text" name="name" />
|
7
|
+
</div>
|
8
|
+
<div>
|
9
|
+
<label>Category</label>
|
10
|
+
<input type="text" name="category" />
|
11
|
+
</div>
|
12
|
+
<div>
|
13
|
+
<input type="submit" />
|
14
|
+
</div>
|
15
|
+
</form>
|