method_draw 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +148 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/method_draw.js +9 -0
- data/app/assets/javascripts/method_draw/base64.js +95 -0
- data/app/assets/javascripts/method_draw_embed.js +76 -0
- data/app/assets/stylesheets/sketchily.css +6 -0
- data/app/helpers/method_draw_helper.rb +35 -0
- data/app/views/method_draw/_embed.html.erb +51 -0
- data/app/views/method_draw/_method_draw.html.erb +19 -0
- data/app/views/method_draw/_method_draw_tag.html.erb +14 -0
- data/lib/method_draw.rb +16 -0
- data/lib/method_draw/engine.rb +4 -0
- data/lib/method_draw/method_draw.rb +37 -0
- data/lib/method_draw/method_draw_tag.rb +20 -0
- data/lib/method_draw/version.rb +3 -0
- data/spec/app/helpers/method_draw_helper_spec.rb +8 -0
- data/spec/dummy/README.md +3 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/controllers/drawings_controller.rb +18 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/drawing.rb +2 -0
- data/spec/dummy/app/views/drawings/method_draw.html.erb +3 -0
- data/spec/dummy/app/views/drawings/method_draw_tag.html.erb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +27 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +8 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/0_create_drawings.rb +7 -0
- data/spec/dummy/db/schema.rb +20 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +922 -0
- data/spec/dummy/log/test.log +181 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/01e63791dcd008779246d1eeeace9408 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/061f36c32f08daef6eca93b74eaf74fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1dbfe77fba798ba3dc24571c3b6d7eed +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/1fd7477d83ec1798c2bc740be42bd6b2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/203471220004cb0cc667b886fb87dc46 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/213e12fc648032455ca0b118e987cca6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/296bbe63b0505bc5be472fc1c8a1a5fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3239b44c026d7c1646c17a10c72905bf +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/38c8fbf05056bbe66399b6923521dc20 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/3e30c8cfdf7deeda4607e4a8298f09a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/4bdd61ba53e8d9b7c19afea13c6e8985 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/52b0b11efea48f1fe5e46eeb4aa20193 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5ef314d6f1af1570631d60b7f9a96d6c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6215f00c593e1789ef865a545b17fc14 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/624fdd5478edd235a86af4b6168d0f75 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6299190ac3952cf7eee042e60c9aee89 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/62a95a2d67ec78570de6d0b31436206a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/65ed942dea29700b739c2292791eb65e +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/66eb709561f77a29885af4423a3eb193 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/6f8f2c21bc49ae5ebad6e8a96cea4fe6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/85dab60ed9ec9625b7ee22d4342fe26c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/86358bce0bfd5de6ac8afb1bfa9d675b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8b835ce894c1218dea1e7c83a9109d2d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8e177cc7106653a1e053bb2444bb43a5 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8f41435d82ae4df55ae7dfdc1e99b0bb +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/94be0a0bca76437d0766c265a9cdecda +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9a093e6973aa150a0a4388167364593d +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/a280ac195f56a87267d2ec5d3e22ebcd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b13cddebc9106da6cfaf949ab3856d1f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b29ac216cb03ce2f30655a0d9bed77d4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c39d32e3ef6cc89f9c522212e65c49e1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/c9910a0652952be02900dc71594d4384 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cb14e22baac3ab2cc947628f283e117b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d1475c156face9f06092c9cf89905372 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d22aa5a4d864d00cced2437352fe8fe4 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d46cc5e60d1b2a20d622cdf9bab35fad +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d7f27a7f35278e87c69668a65683360a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e0080336bb31d78e9efab59b234e0d85 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e06104d99b055e792effca7bd66ad384 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e095df19da361d5f53d90f6749a38ea6 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e5fb97d39fdd2e383e61115ef06079fd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e6d1ec9817258cfda7c68499a841a9d2 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/edec019e8f1d7e758eb45524a913fd47 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f37cf330dccb15bee2a195f643f3ba29 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fc84011813992cacde5880c6b21701de +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/061f36c32f08daef6eca93b74eaf74fd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/38c8fbf05056bbe66399b6923521dc20 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/3e30c8cfdf7deeda4607e4a8298f09a5 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/52b0b11efea48f1fe5e46eeb4aa20193 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/5ef314d6f1af1570631d60b7f9a96d6c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/6299190ac3952cf7eee042e60c9aee89 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/62a95a2d67ec78570de6d0b31436206a +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/65ed942dea29700b739c2292791eb65e +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/85dab60ed9ec9625b7ee22d4342fe26c +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/a280ac195f56a87267d2ec5d3e22ebcd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cb14e22baac3ab2cc947628f283e117b +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d1475c156face9f06092c9cf89905372 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/e0080336bb31d78e9efab59b234e0d85 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/features/method_draw_spec.rb +10 -0
- data/spec/features/method_draw_tag_spec.rb +11 -0
- data/spec/lib/method_draw/method_draw_spec.rb +27 -0
- data/spec/lib/method_draw/method_draw_tag_spec.rb +19 -0
- data/spec/lib/method_draw_spec.rb +11 -0
- data/spec/test_helper.rb +24 -0
- data/vendor/assets/javascripts/method-draw-js/browser-not-supported.html +27 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Anivers-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Arvo-Regular-webfont.svg +145 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Arvo-Regular-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.svg +133 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Junction-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.svg +235 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/League_Gothic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/Museo_Slab_Italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-bold-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-bolditalic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/arvo-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/euphoriascript-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.svg +939 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.svg +682 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fanwood_italic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.eot +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/fertigo-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/oswald-bold-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/oswald-light-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/shadowsintolight-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-black-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-blackitalic-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-italic-webfont.ttf +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/simonetta-regular-webfont.woff +0 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test.html +62 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test.svg +15 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test_ff.svg +16 -0
- data/vendor/assets/javascripts/method-draw-js/css/font-files/test_ffsvg.svg +13 -0
- data/vendor/assets/javascripts/method-draw-js/css/fonts.css +72 -0
- data/vendor/assets/javascripts/method-draw-js/css/method-draw.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/css/method-draw.css +2083 -0
- data/vendor/assets/javascripts/method-draw-js/embedapi.html +56 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/closepath_icons.svg +41 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-arrows.js +298 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-closepath.js +92 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-connector.js +587 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-eyedropper.js +135 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-foreignobject.js +277 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-grid.js +186 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-helloworld.js +78 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-imagelib.js +444 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-imagelib.xml +14 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-markers.js +576 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-server_moinsave.js +56 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-server_opensave.js +180 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.js +358 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/ext-shapes.xml +8 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper-icon.xml +17 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/eyedropper.svg +15 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/fileopen.php +31 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/filesave.php +44 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/foreignobject-icons.xml +96 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/grid-icon.xml +30 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/helloworld-icon.xml +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/imagelib/index.html +64 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/imagelib/smiley.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/markers-icons.xml +115 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/arrow.json +40 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/dialog_balloon.json +14 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/flowchart.json +20 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/game.json +13 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/math.json +8 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/misc.json +6 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/music.json +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/nature.json +36 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/object.json +30 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/raphael.txt +12 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/raphael_1.json +7 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/social.json +21 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/symbol.json +35 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/ui.json +57 -0
- data/vendor/assets/javascripts/method-draw-js/extensions/shapelib/weather.json +26 -0
- data/vendor/assets/javascripts/method-draw-js/icons/jquery.svgicons.js +471 -0
- data/vendor/assets/javascripts/method-draw-js/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/Bars.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/Maps.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/README.txt +61 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-bottom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-bottom.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-center.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-center.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-left.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-left.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-middle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-middle.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-right.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-right.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-top.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/align-top.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/bold.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cancel.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/circle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/clear.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/clone.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/conn.svg +29 -0
- data/vendor/assets/javascripts/method-draw-js/images/copy.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cross.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/cut.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/delete.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/document-properties.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/drag.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/dragging.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/dropdown.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/ellipse.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/ellipse.svg +8 -0
- data/vendor/assets/javascripts/method-draw-js/images/eye.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/eye.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/eyedropper_tool.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/fhpath.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/flyouth.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/flyup.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/freehand-circle.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/freehand-square.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/go-down.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/go-up.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/image.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/image.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/images/italic.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/italic.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/line.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/link_controls.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/logo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint_c.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/mappoint_f.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/move_bottom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/move_top.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/node_clone.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/node_delete.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/none.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/open.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/paste.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/path.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/path.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil.svg +11 -0
- data/vendor/assets/javascripts/method-draw-js/images/pencil_cursor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/picker.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/placeholder.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/polygon.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/polygon.svg +1 -0
- data/vendor/assets/javascripts/method-draw-js/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rangearrows2.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rect.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/redo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/reorient.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/rotate.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/save.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/select.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/select.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/select_node.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/sep.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/shape_group.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/shape_ungroup.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/source.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/spinbtn_updn_big.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/square.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/svg_edit_icons.svg +455 -0
- data/vendor/assets/javascripts/method-draw-js/images/svg_edit_icons.svgz +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/text.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/text.svg +10 -0
- data/vendor/assets/javascripts/method-draw-js/images/to_path.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/undo.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/view-refresh.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/wave.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/wireframe.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/zoom.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/images/zoom.svg +12 -0
- data/vendor/assets/javascripts/method-draw-js/index.html +631 -0
- data/vendor/assets/javascripts/method-draw-js/lib/canvg/canvg.js +2620 -0
- data/vendor/assets/javascripts/method-draw-js/lib/canvg/rgbcolor.js +287 -0
- data/vendor/assets/javascripts/method-draw-js/lib/contextmenu.js +68 -0
- data/vendor/assets/javascripts/method-draw-js/lib/contextmenu/jquery.contextMenu.js +223 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/LICENSE +202 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/README +3 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/css/jPicker.css +250 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/css/jgraduate.css +332 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/Bars.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/Maps.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/eyedropper.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint_c.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/mappoint_f.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/picker.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/images/rangearrows2.gif +0 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jpicker.min.js +2087 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jquery.jgraduate.js +1175 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jgraduate/jquery.jgraduate.min.js +37 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-draginput.js +181 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-ui/jquery-ui-1.8.17.custom.min.js +54 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery-ui/jquery-ui-1.8.custom.min.js +84 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquery.js +2 -0
- data/vendor/assets/javascripts/method-draw-js/lib/jquerybbq/jquery.bbq.min.js +18 -0
- data/vendor/assets/javascripts/method-draw-js/lib/js-hotkeys/README.md +45 -0
- data/vendor/assets/javascripts/method-draw-js/lib/js-hotkeys/jquery.hotkeys.min.js +15 -0
- data/vendor/assets/javascripts/method-draw-js/lib/mousewheel.js +84 -0
- data/vendor/assets/javascripts/method-draw-js/lib/requestanimationframe.js +24 -0
- data/vendor/assets/javascripts/method-draw-js/lib/taphold.js +136 -0
- data/vendor/assets/javascripts/method-draw-js/lib/touch.js +28 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.compiled.js +692 -0
- data/vendor/assets/javascripts/method-draw-js/method-draw.manifest +121 -0
- data/vendor/assets/javascripts/method-draw-js/src/browser.js +181 -0
- data/vendor/assets/javascripts/method-draw-js/src/dialog.js +49 -0
- data/vendor/assets/javascripts/method-draw-js/src/dragupload.js +11 -0
- data/vendor/assets/javascripts/method-draw-js/src/draw.js +533 -0
- data/vendor/assets/javascripts/method-draw-js/src/embedapi.js +173 -0
- data/vendor/assets/javascripts/method-draw-js/src/history.js +601 -0
- data/vendor/assets/javascripts/method-draw-js/src/math.js +247 -0
- data/vendor/assets/javascripts/method-draw-js/src/method-draw.js +4140 -0
- data/vendor/assets/javascripts/method-draw-js/src/path.js +979 -0
- data/vendor/assets/javascripts/method-draw-js/src/sanitize.js +273 -0
- data/vendor/assets/javascripts/method-draw-js/src/select.js +608 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgcanvas.js +9047 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgtransformlist.js +291 -0
- data/vendor/assets/javascripts/method-draw-js/src/svgutils.js +648 -0
- data/vendor/assets/javascripts/method-draw-js/src/units.js +281 -0
- data/vendor/assets/javascripts/method-draw-js/svgedit.compiled.css +417 -0
- data/vendor/assets/javascripts/method-draw-js/svgedit.compiled.js +691 -0
- data/vendor/assets/javascripts/method-draw-js/temp.css +2665 -0
- metadata +619 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
/*
|
2
|
+
* ext-server_moinsave.js
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2
|
5
|
+
*
|
6
|
+
* Copyright(c) 2010 Alexis Deveria
|
7
|
+
* 2011 MoinMoin:ReimarBauer
|
8
|
+
* adopted for moinmoins item storage. it sends in one post png and svg data
|
9
|
+
* (I agree to dual license my work to additional GPLv2 or later)
|
10
|
+
*
|
11
|
+
*/
|
12
|
+
|
13
|
+
methodDraw.addExtension("server_opensave", {
|
14
|
+
callback: function() {
|
15
|
+
|
16
|
+
var save_svg_action = '/+modify';
|
17
|
+
|
18
|
+
// Create upload target (hidden iframe)
|
19
|
+
var target = $('<iframe name="output_frame" src="#"/>').hide().appendTo('body');
|
20
|
+
|
21
|
+
methodDraw.setCustomHandlers({
|
22
|
+
save: function(win, data) {
|
23
|
+
var svg = "<?xml version=\"1.0\"?>\n" + data;
|
24
|
+
var qstr = $.param.querystring();
|
25
|
+
var name = qstr.substr(9).split('/+get/')[1];
|
26
|
+
var svg_data = svgedit.utilities.encode64(svg);
|
27
|
+
if(!$('#export_canvas').length) {
|
28
|
+
$('<canvas>', {id: 'export_canvas'}).hide().appendTo('body');
|
29
|
+
}
|
30
|
+
var c = $('#export_canvas')[0];
|
31
|
+
c.width = svgCanvas.contentW;
|
32
|
+
c.height = svgCanvas.contentH;
|
33
|
+
$.getScript('canvg/canvg.js', function() {
|
34
|
+
canvg(c, svg, {renderCallback: function() {
|
35
|
+
var datauri = c.toDataURL('image/png');
|
36
|
+
var uiStrings = methodDraw.uiStrings;
|
37
|
+
var png_data = svgedit.utilities.encode64(datauri);
|
38
|
+
var form = $('<form>').attr({
|
39
|
+
method: 'post',
|
40
|
+
action: save_svg_action + '/' + name,
|
41
|
+
target: 'output_frame'
|
42
|
+
}) .append('<input type="hidden" name="png_data" value="' + png_data + '">')
|
43
|
+
.append('<input type="hidden" name="filepath" value="' + svg_data + '">')
|
44
|
+
.append('<input type="hidden" name="filename" value="' + 'drawing.svg">')
|
45
|
+
.append('<input type="hidden" name="contenttype" value="application/x-svgdraw">')
|
46
|
+
.appendTo('body')
|
47
|
+
.submit().remove();
|
48
|
+
}})});
|
49
|
+
alert("Saved! Return to Item View!");
|
50
|
+
top.window.location = '/'+name;
|
51
|
+
},
|
52
|
+
});
|
53
|
+
|
54
|
+
}
|
55
|
+
});
|
56
|
+
|
@@ -0,0 +1,180 @@
|
|
1
|
+
/*
|
2
|
+
* ext-server_opensave.js
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2
|
5
|
+
*
|
6
|
+
* Copyright(c) 2010 Alexis Deveria
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
methodDraw.addExtension("server_opensave", {
|
11
|
+
callback: function() {
|
12
|
+
|
13
|
+
//var save_svg_action = 'extensions/filesave.php';
|
14
|
+
//var save_png_action = 'extensions/filesave.php';
|
15
|
+
|
16
|
+
// Create upload target (hidden iframe)
|
17
|
+
var target = $('<iframe name="output_frame" />').hide().appendTo('body');
|
18
|
+
|
19
|
+
//methodDraw.setCustomHandlers({
|
20
|
+
// save: function(win, data) {
|
21
|
+
// var svg = "<?xml version=\"1.0\"?>\n" + data;
|
22
|
+
//
|
23
|
+
// var title = svgCanvas.getDocumentTitle();
|
24
|
+
// var filename = title.replace(/[^a-z0-9\.\_\-]+/gi, '_');
|
25
|
+
//
|
26
|
+
// var form = $('<form>').attr({
|
27
|
+
// method: 'post',
|
28
|
+
// action: save_svg_action,
|
29
|
+
// target: 'output_frame'
|
30
|
+
// }) .append('<input type="hidden" name="output_svg" value="' + encodeURI(svg) + '">')
|
31
|
+
// .append('<input type="hidden" name="filename" value="' + filename + '">')
|
32
|
+
// .appendTo('body')
|
33
|
+
// .submit().remove();
|
34
|
+
// },
|
35
|
+
// pngsave: function(win, data) {
|
36
|
+
// var issues = data.issues;
|
37
|
+
//
|
38
|
+
// if(!$('#export_canvas').length) {
|
39
|
+
// $('<canvas>', {id: 'export_canvas'}).hide().appendTo('body');
|
40
|
+
// }
|
41
|
+
// var c = $('#export_canvas')[0];
|
42
|
+
//
|
43
|
+
// c.width = svgCanvas.contentW;
|
44
|
+
// c.height = svgCanvas.contentH;
|
45
|
+
// canvg(c, data.svg, {renderCallback: function() {
|
46
|
+
// var datauri = c.toDataURL('image/png');
|
47
|
+
//
|
48
|
+
// var uiStrings = methodDraw.uiStrings;
|
49
|
+
// var note = '';
|
50
|
+
//
|
51
|
+
// // Check if there's issues
|
52
|
+
// if(issues.length) {
|
53
|
+
// var pre = "\n \u2022 ";
|
54
|
+
// note += ("\n\n" + pre + issues.join(pre));
|
55
|
+
// }
|
56
|
+
//
|
57
|
+
// if(note.length) {
|
58
|
+
// alert(note);
|
59
|
+
// }
|
60
|
+
//
|
61
|
+
// var title = svgCanvas.getDocumentTitle();
|
62
|
+
// var filename = title.replace(/[^a-z0-9\.\_\-]+/gi, '_');
|
63
|
+
//
|
64
|
+
// var form = $('<form>').attr({
|
65
|
+
// method: 'post',
|
66
|
+
// action: save_png_action,
|
67
|
+
// target: 'output_frame'
|
68
|
+
// }) .append('<input type="hidden" name="output_png" value="' + datauri + '">')
|
69
|
+
// .append('<input type="hidden" name="filename" value="' + filename + '">')
|
70
|
+
// .appendTo('body')
|
71
|
+
// .submit().remove();
|
72
|
+
// }});
|
73
|
+
//
|
74
|
+
//
|
75
|
+
// }
|
76
|
+
//});
|
77
|
+
|
78
|
+
// Do nothing if client support is found
|
79
|
+
if(window.FileReader) return;
|
80
|
+
|
81
|
+
var cancelled = false;
|
82
|
+
|
83
|
+
// Change these to appropriate script file
|
84
|
+
var open_svg_action = 'extensions/fileopen.php?type=load_svg';
|
85
|
+
var import_svg_action = 'extensions/fileopen.php?type=import_svg';
|
86
|
+
var import_img_action = 'extensions/fileopen.php?type=import_img';
|
87
|
+
|
88
|
+
// Set up function for PHP uploader to use
|
89
|
+
methodDraw.processFile = function(str64, type) {
|
90
|
+
if(cancelled) {
|
91
|
+
cancelled = false;
|
92
|
+
return;
|
93
|
+
}
|
94
|
+
|
95
|
+
$('#dialog_box').hide();
|
96
|
+
|
97
|
+
if(type != 'import_img') {
|
98
|
+
var xmlstr = svgCanvas.Utils.decode64(str64);
|
99
|
+
}
|
100
|
+
|
101
|
+
switch ( type ) {
|
102
|
+
case 'load_svg':
|
103
|
+
svgCanvas.clear();
|
104
|
+
svgCanvas.setSvgString(xmlstr);
|
105
|
+
methodDraw.updateCanvas();
|
106
|
+
break;
|
107
|
+
case 'import_svg':
|
108
|
+
svgCanvas.importSvgString(xmlstr);
|
109
|
+
methodDraw.updateCanvas();
|
110
|
+
break;
|
111
|
+
case 'import_img':
|
112
|
+
svgCanvas.setGoodImage(str64);
|
113
|
+
break;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
// Create upload form
|
118
|
+
var open_svg_form = $('<form>');
|
119
|
+
open_svg_form.attr({
|
120
|
+
enctype: 'multipart/form-data',
|
121
|
+
method: 'post',
|
122
|
+
action: open_svg_action,
|
123
|
+
target: 'output_frame'
|
124
|
+
});
|
125
|
+
|
126
|
+
// Create import form
|
127
|
+
var import_svg_form = open_svg_form.clone().attr('action', import_svg_action);
|
128
|
+
|
129
|
+
// Create image form
|
130
|
+
var import_img_form = open_svg_form.clone().attr('action', import_img_action);
|
131
|
+
|
132
|
+
// It appears necessory to rebuild this input every time a file is
|
133
|
+
// selected so the same file can be picked and the change event can fire.
|
134
|
+
function rebuildInput(form) {
|
135
|
+
form.empty();
|
136
|
+
var inp = $('<input type="file" name="svg_file">').appendTo(form);
|
137
|
+
|
138
|
+
|
139
|
+
function submit() {
|
140
|
+
// This submits the form, which returns the file data using methodDraw.uploadSVG
|
141
|
+
form.submit();
|
142
|
+
|
143
|
+
rebuildInput(form);
|
144
|
+
$.process_cancel("Uploading...", function() {
|
145
|
+
cancelled = true;
|
146
|
+
$('#dialog_box').hide();
|
147
|
+
});
|
148
|
+
}
|
149
|
+
|
150
|
+
if(form[0] == open_svg_form[0]) {
|
151
|
+
inp.change(function() {
|
152
|
+
// This takes care of the "are you sure" dialog box
|
153
|
+
methodDraw.openPrep(function(ok) {
|
154
|
+
if(!ok) {
|
155
|
+
rebuildInput(form);
|
156
|
+
return;
|
157
|
+
}
|
158
|
+
submit();
|
159
|
+
});
|
160
|
+
});
|
161
|
+
} else {
|
162
|
+
inp.change(function() {
|
163
|
+
// This submits the form, which returns the file data using methodDraw.uploadSVG
|
164
|
+
submit();
|
165
|
+
});
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
// Create the input elements
|
170
|
+
rebuildInput(open_svg_form);
|
171
|
+
rebuildInput(import_svg_form);
|
172
|
+
rebuildInput(import_img_form);
|
173
|
+
|
174
|
+
// Add forms to buttons
|
175
|
+
$("#tool_open").show().prepend(open_svg_form);
|
176
|
+
$("#tool_import").show().prepend(import_svg_form);
|
177
|
+
$("#tool_image").prepend(import_img_form);
|
178
|
+
}
|
179
|
+
});
|
180
|
+
|
@@ -0,0 +1,358 @@
|
|
1
|
+
/*
|
2
|
+
* ext-shapes.js
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2
|
5
|
+
*
|
6
|
+
* Copyright(c) 2010 Christian Tzurcanu
|
7
|
+
* Copyright(c) 2010 Alexis Deveria
|
8
|
+
*
|
9
|
+
*/
|
10
|
+
|
11
|
+
methodDraw.addExtension("shapes", function() {
|
12
|
+
|
13
|
+
|
14
|
+
var current_d, cur_shape_id;
|
15
|
+
var canv = methodDraw.canvas;
|
16
|
+
var cur_shape;
|
17
|
+
var start_x, start_y;
|
18
|
+
var svgroot = canv.getRootElem();
|
19
|
+
var lastBBox = {};
|
20
|
+
|
21
|
+
// This populates the category list
|
22
|
+
var categories = {
|
23
|
+
basic: 'Basic',
|
24
|
+
object: 'Objects',
|
25
|
+
symbol: 'Symbols',
|
26
|
+
arrow: 'Arrows',
|
27
|
+
flowchart: 'Flowchart',
|
28
|
+
nature: 'Nature',
|
29
|
+
game: 'Cards & Chess',
|
30
|
+
dialog_balloon: 'Dialog balloons',
|
31
|
+
music: 'Music',
|
32
|
+
weather: 'Weather & Time',
|
33
|
+
ui: 'User Interface',
|
34
|
+
social: 'Social Web'
|
35
|
+
};
|
36
|
+
|
37
|
+
var library = {
|
38
|
+
'basic': {
|
39
|
+
data: {
|
40
|
+
"star_points_5": "m1,116.58409l113.82668,0l35.17332,-108.13487l35.17334,108.13487l113.82666,0l-92.08755,66.83026l35.17514,108.13487l-92.08759,-66.83208l-92.08757,66.83208l35.17515,-108.13487l-92.08758,-66.83026z",
|
41
|
+
'donut': 'm1,150l0,0c0,-82.29042 66.70958,-149 149,-149l0,0c39.51724,0 77.41599,15.69816 105.35889,43.64108c27.94293,27.94293 43.64111,65.84165 43.64111,105.35892l0,0c0,82.29041 -66.70958,149 -149,149l0,0c-82.29041,0 -149,-66.70959 -149,-149zm74.5,0l0,0c0,41.1452 33.35481,74.5 74.5,74.5c41.14522,0 74.5,-33.3548 74.5,-74.5c0,-41.1452 -33.3548,-74.5 -74.5,-74.5l0,0c-41.14519,0 -74.5,33.35481 -74.5,74.5z',
|
42
|
+
"triangle": "m1,280.375l149,-260.75l149,260.75z",
|
43
|
+
"right_triangle": "m1,299l0,-298l298,298z",
|
44
|
+
"diamond": "m1,150l149,-149l149,149l-149,149l-149,-149z",
|
45
|
+
"pentagon": "m1.00035,116.97758l148.99963,-108.4053l148.99998,108.4053l-56.91267,175.4042l-184.1741,0l-56.91284,-175.4042z",
|
46
|
+
"hexagon": "m1,149.99944l63.85715,-127.71428l170.28572,0l63.85713,127.71428l-63.85713,127.71428l-170.28572,0l-63.85715,-127.71428z",
|
47
|
+
"septagon1": "m0.99917,191.06511l29.51249,-127.7108l119.48833,-56.83673l119.48836,56.83673l29.51303,127.7108l-82.69087,102.41679l-132.62103,0l-82.69031,-102.41679z",
|
48
|
+
"heptagon": "m1,88.28171l87.28172,-87.28171l123.43653,0l87.28172,87.28171l0,123.43654l-87.28172,87.28172l-123.43653,0l-87.28172,-87.28172l0,-123.43654z",
|
49
|
+
"decagon": "m1,150.00093l28.45646,-88.40318l74.49956,-54.63682l92.08794,0l74.50002,54.63682l28.45599,88.40318l-28.45599,88.40318l-74.50002,54.63681l-92.08794,0l-74.49956,-54.63681l-28.45646,-88.40318z",
|
50
|
+
"dodecagon": "m1,110.07421l39.92579,-69.14842l69.14842,-39.92579l79.85159,0l69.14842,39.92579l39.92578,69.14842l0,79.85159l-39.92578,69.14842l-69.14842,39.92578l-79.85159,0l-69.14842,-39.92578l-39.92579,-69.14842l0,-79.85159z",
|
51
|
+
"trapezoid": "m1,299l55.875,-298l186.25001,0l55.87498,298z",
|
52
|
+
"dialog_balloon_1": "m0.99786,35.96579l0,0c0,-19.31077 15.28761,-34.96524 34.14583,-34.96524l15.52084,0l0,0l74.50001,0l139.68748,0c9.05606,0 17.74118,3.68382 24.14478,10.24108c6.40356,6.55726 10.00107,15.45081 10.00107,24.72416l0,87.41311l0,0l0,52.44785l0,0c0,19.31078 -15.2876,34.96524 -34.14584,34.96524l-139.68748,0l-97.32507,88.90848l22.82506,-88.90848l-15.52084,0c-18.85822,0 -34.14583,-15.65446 -34.14583,-34.96524l0,0l0,-52.44785l0,0z",
|
53
|
+
'heart': 'm150,73c61,-175 300,0 0,225c-300,-225 -61,-400 0,-225z',
|
54
|
+
"cylinder": "m299.0007,83.77844c0,18.28676 -66.70958,33.11111 -149.00002,33.11111m149.00002,-33.11111l0,0c0,18.28676 -66.70958,33.11111 -149.00002,33.11111c-82.29041,0 -148.99997,-14.82432 -148.99997,-33.11111m0,0l0,0c0,-18.28674 66.70956,-33.1111 148.99997,-33.1111c82.29044,0 149.00002,14.82436 149.00002,33.1111l0,132.44449c0,18.28674 -66.70958,33.11105 -149.00002,33.11105c-82.29041,0 -148.99997,-14.82431 -148.99997,-33.11105z",
|
55
|
+
"arrow_up": "m1.49805,149.64304l148.50121,-148.00241l148.50121,148.00241l-74.25061,0l0,148.71457l-148.5012,0l0,-148.71457z",
|
56
|
+
"arrow_u_turn": "m1.00059,299.00055l0,-167.62497l0,0c0,-72.00411 58.37087,-130.37499 130.375,-130.37499l0,0l0,0c34.57759,0 67.73898,13.7359 92.18906,38.18595c24.45006,24.45005 38.18593,57.61144 38.18593,92.18904l0,18.625l37.24997,0l-74.49995,74.50002l-74.50002,-74.50002l37.25,0l0,-18.625c0,-30.8589 -25.0161,-55.87498 -55.87498,-55.87498l0,0l0,0c-30.85892,0 -55.875,25.01608 -55.875,55.87498l0,167.62497z",
|
57
|
+
"arrow_left_up": "m0.99865,224.5l74.50004,-74.5l0,37.25l111.74991,0l0,-111.75l-37.25,0l74.5,-74.5l74.5,74.5l-37.25,0l0,186.25l-186.24989,0l0,37.25l-74.50005,-74.5z",
|
58
|
+
"plaque": "m-0.00197,49.94376l0,0c27.5829,0 49.94327,-22.36036 49.94327,-49.94327l199.76709,0l0,0c0,27.5829 22.36037,49.94327 49.94325,49.94327l0,199.7671l0,0c-27.58289,0 -49.94325,22.36034 -49.94325,49.94325l-199.76709,0c0,-27.58292 -22.36037,-49.94325 -49.94327,-49.94325z",
|
59
|
+
"page": "m249.3298,298.99744l9.9335,-39.73413l39.73413,-9.93355l-49.66763,49.66768l-248.33237,0l0,-298.00001l298.00001,0l0,248.33234",
|
60
|
+
"cross": "m0.99844,99.71339l98.71494,0l0,-98.71495l101.26279,0l0,98.71495l98.71495,0l0,101.2628l-98.71495,0l0,98.71494l-101.26279,0l0,-98.71494l-98.71494,0z",
|
61
|
+
"divide": "m150,0.99785l0,0c25.17819,0 45.58916,20.41097 45.58916,45.58916c0,25.17821 -20.41096,45.58916 -45.58916,45.58916c-25.17822,0 -45.58916,-20.41093 -45.58916,-45.58916c0,-25.1782 20.41093,-45.58916 45.58916,-45.58916zm0,296.25203c-25.17822,0 -45.58916,-20.41095 -45.58916,-45.58917c0,-25.17819 20.41093,-45.58916 45.58916,-45.58916c25.17819,0 45.58916,20.41096 45.58916,45.58916c0,25.17822 -20.41096,45.58917 -45.58916,45.58917zm-134.06754,-193.71518l268.13507,0l0,91.17833l-268.13507,0z",
|
62
|
+
"minus": "m0.99887,102.39503l297.49445,0l0,95.2112l-297.49445,0z",
|
63
|
+
"times": "m1.00089,73.36786l72.36697,-72.36697l76.87431,76.87368l76.87431,-76.87368l72.36765,72.36697l-76.87433,76.87431l76.87433,76.87431l-72.36765,72.36765l-76.87431,-76.87433l-76.87431,76.87433l-72.36697,-72.36765l76.87368,-76.87431l-76.87368,-76.87431z"
|
64
|
+
|
65
|
+
|
66
|
+
},
|
67
|
+
buttons: []
|
68
|
+
}
|
69
|
+
};
|
70
|
+
|
71
|
+
var cur_lib = library.basic;
|
72
|
+
|
73
|
+
var mode_id = 'shapelib';
|
74
|
+
|
75
|
+
function loadIcons() {
|
76
|
+
$('#shape_buttons').empty();
|
77
|
+
|
78
|
+
// Show lib ones
|
79
|
+
$('#shape_buttons').append(cur_lib.buttons);
|
80
|
+
}
|
81
|
+
|
82
|
+
function loadLibrary(cat_id) {
|
83
|
+
|
84
|
+
var lib = library[cat_id];
|
85
|
+
|
86
|
+
if(!lib) {
|
87
|
+
$('#shape_buttons').html('Loading...');
|
88
|
+
$.getJSON('extensions/shapelib/' + cat_id + '.json', function(result, textStatus) {
|
89
|
+
cur_lib = library[cat_id] = {
|
90
|
+
data: result.data,
|
91
|
+
size: result.size,
|
92
|
+
fill: result.fill
|
93
|
+
}
|
94
|
+
makeButtons(cat_id, result);
|
95
|
+
loadIcons();
|
96
|
+
});
|
97
|
+
return;
|
98
|
+
}
|
99
|
+
|
100
|
+
cur_lib = lib;
|
101
|
+
if(!lib.buttons.length) makeButtons(cat_id, lib);
|
102
|
+
loadIcons();
|
103
|
+
}
|
104
|
+
|
105
|
+
function makeButtons(cat, shapes) {
|
106
|
+
var size = cur_lib.size || 300;
|
107
|
+
var fill = cur_lib.fill || false;
|
108
|
+
var off = size * .05;
|
109
|
+
var vb = [-off, -off, size + off*2, size + off*2].join(' ');
|
110
|
+
var stroke = fill ? 0: (size/30);
|
111
|
+
|
112
|
+
var shape_icon = new DOMParser().parseFromString(
|
113
|
+
'<svg xmlns="http://www.w3.org/2000/svg"><svg viewBox="' + vb + '"><path fill="#333" stroke="transparent" stroke-width="' + stroke + '" /><\/svg><\/svg>',
|
114
|
+
'text/xml');
|
115
|
+
|
116
|
+
var width = 40;
|
117
|
+
var height = 40;
|
118
|
+
shape_icon.documentElement.setAttribute('width', width);
|
119
|
+
shape_icon.documentElement.setAttribute('height', height);
|
120
|
+
var svg_elem = $(document.importNode(shape_icon.documentElement,true));
|
121
|
+
|
122
|
+
var data = shapes.data;
|
123
|
+
|
124
|
+
cur_lib.buttons = [];
|
125
|
+
|
126
|
+
for(var id in data) {
|
127
|
+
var path_d = data[id];
|
128
|
+
var icon = svg_elem.clone();
|
129
|
+
icon.find('path').attr('d', path_d);
|
130
|
+
|
131
|
+
var icon_btn = icon.wrap('<div class="tool_button">').parent().attr({
|
132
|
+
id: mode_id + '_' + id,
|
133
|
+
title: id
|
134
|
+
});
|
135
|
+
|
136
|
+
|
137
|
+
// Store for later use
|
138
|
+
cur_lib.buttons.push(icon_btn[0]);
|
139
|
+
}
|
140
|
+
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
return {
|
145
|
+
svgicons: "extensions/ext-shapes.xml",
|
146
|
+
buttons: [{
|
147
|
+
id: "tool_shapelib",
|
148
|
+
type: "mode_flyout", // _flyout
|
149
|
+
position: 6,
|
150
|
+
title: "Shape library",
|
151
|
+
icon: "extensions/ext-shapes.png",
|
152
|
+
events: {
|
153
|
+
"click": function() {
|
154
|
+
canv.setMode(mode_id);
|
155
|
+
}
|
156
|
+
}
|
157
|
+
}],
|
158
|
+
callback: function() {
|
159
|
+
|
160
|
+
|
161
|
+
var btn_div = $('<div id="shape_buttons">');
|
162
|
+
$('#tools_shapelib > *').wrapAll(btn_div);
|
163
|
+
|
164
|
+
var shower = $('#tools_shapelib_show');
|
165
|
+
|
166
|
+
|
167
|
+
loadLibrary('basic');
|
168
|
+
|
169
|
+
// Do mouseup on parent element rather than each button
|
170
|
+
$('#shape_buttons').mouseup(function(evt) {
|
171
|
+
var btn = $(evt.target).closest('div.tool_button');
|
172
|
+
|
173
|
+
if(!btn.length) return;
|
174
|
+
|
175
|
+
var copy = btn.children().clone().attr({width: 24, height: 24});
|
176
|
+
shower.children(':not(.flyout_arrow_horiz)').remove();
|
177
|
+
shower
|
178
|
+
.append(copy)
|
179
|
+
.attr('data-curopt', '#' + btn[0].id) // This sets the current mode
|
180
|
+
.mouseup();
|
181
|
+
canv.setMode(mode_id);
|
182
|
+
|
183
|
+
cur_shape_id = btn[0].id.substr((mode_id+'_').length);
|
184
|
+
current_d = cur_lib.data[cur_shape_id];
|
185
|
+
|
186
|
+
$('.tools_flyout').fadeOut();
|
187
|
+
|
188
|
+
});
|
189
|
+
|
190
|
+
//
|
191
|
+
var shape_cats = $('<div id="shape_cats">');
|
192
|
+
var cat_str = '';
|
193
|
+
|
194
|
+
$.each(categories, function(id, label) {
|
195
|
+
cat_str += '<div data-cat=' + id + '>' + label + '</div>';
|
196
|
+
});
|
197
|
+
|
198
|
+
shape_cats.html(cat_str).children().bind('mouseup', function() {
|
199
|
+
var catlink = $(this);
|
200
|
+
catlink.siblings().removeClass('current');
|
201
|
+
catlink.addClass('current');
|
202
|
+
|
203
|
+
loadLibrary(catlink.attr('data-cat'));
|
204
|
+
// Get stuff
|
205
|
+
|
206
|
+
return false;
|
207
|
+
});
|
208
|
+
|
209
|
+
shape_cats.children().eq(0).addClass('current');
|
210
|
+
|
211
|
+
$('#tools_shapelib').prepend(shape_cats);
|
212
|
+
|
213
|
+
shower.mouseup(function() {
|
214
|
+
canv.setMode(current_d ? mode_id : 'select');
|
215
|
+
});
|
216
|
+
|
217
|
+
|
218
|
+
$('#tool_shapelib').remove();
|
219
|
+
|
220
|
+
var h = $('#tools_shapelib').height();
|
221
|
+
$('#tools_shapelib').css({
|
222
|
+
'margin-top': -(h/2),
|
223
|
+
'margin-left': 3
|
224
|
+
});
|
225
|
+
|
226
|
+
|
227
|
+
},
|
228
|
+
mouseDown: function(opts) {
|
229
|
+
var mode = canv.getMode();
|
230
|
+
if(mode !== mode_id) return;
|
231
|
+
|
232
|
+
var e = opts.event;
|
233
|
+
var x = start_x = opts.start_x;
|
234
|
+
var y = start_y = opts.start_y;
|
235
|
+
var cur_style = canv.getStyle();
|
236
|
+
cur_shape = canv.addSvgElementFromJson({
|
237
|
+
"element": "path",
|
238
|
+
"curStyles": true,
|
239
|
+
"attr": {
|
240
|
+
"d": current_d,
|
241
|
+
"id": canv.getNextId(),
|
242
|
+
"opacity": cur_style.opacity / 2,
|
243
|
+
"style": "pointer-events:none"
|
244
|
+
}
|
245
|
+
});
|
246
|
+
cur_shape.setAttribute("d", current_d);
|
247
|
+
// Make sure shape uses absolute values
|
248
|
+
if(/[a-z]/.test(current_d)) {
|
249
|
+
current_d = cur_lib.data[cur_shape_id] = canv.pathActions.convertPath(cur_shape);
|
250
|
+
cur_shape.setAttribute('d', current_d);
|
251
|
+
canv.pathActions.fixEnd(cur_shape);
|
252
|
+
}
|
253
|
+
|
254
|
+
cur_shape.setAttribute('transform', "translate(" + x + "," + y + ") scale(0.005) translate(" + -x + "," + -y + ")");
|
255
|
+
// console.time('b');
|
256
|
+
canv.recalculateDimensions(cur_shape);
|
257
|
+
var tlist = canv.getTransformList(cur_shape);
|
258
|
+
lastBBox = cur_shape.getBBox();
|
259
|
+
totalScale = {
|
260
|
+
sx: 1,
|
261
|
+
sy: 1
|
262
|
+
};
|
263
|
+
return {
|
264
|
+
started: true
|
265
|
+
}
|
266
|
+
// current_d
|
267
|
+
},
|
268
|
+
mouseMove: function(opts) {
|
269
|
+
var mode = canv.getMode();
|
270
|
+
if(mode !== mode_id) return;
|
271
|
+
|
272
|
+
var zoom = canv.getZoom();
|
273
|
+
var evt = opts.event
|
274
|
+
|
275
|
+
var x = opts.mouse_x/zoom;
|
276
|
+
var y = opts.mouse_y/zoom;
|
277
|
+
|
278
|
+
var tlist = canv.getTransformList(cur_shape),
|
279
|
+
box = cur_shape.getBBox(),
|
280
|
+
left = box.x, top = box.y, width = box.width,
|
281
|
+
height = box.height;
|
282
|
+
var dx = (x-start_x), dy = (y-start_y);
|
283
|
+
|
284
|
+
var newbox = {
|
285
|
+
'x': Math.min(start_x,x),
|
286
|
+
'y': Math.min(start_y,y),
|
287
|
+
'width': Math.abs(x-start_x),
|
288
|
+
'height': Math.abs(y-start_y)
|
289
|
+
};
|
290
|
+
|
291
|
+
var ts = null,
|
292
|
+
tx = 0, ty = 0,
|
293
|
+
sy = height ? (height+dy)/height : 1,
|
294
|
+
sx = width ? (width+dx)/width : 1;
|
295
|
+
|
296
|
+
var sx = newbox.width / lastBBox.width;
|
297
|
+
var sy = newbox.height / lastBBox.height;
|
298
|
+
|
299
|
+
sx = sx || 1;
|
300
|
+
sy = sy || 1;
|
301
|
+
|
302
|
+
// Not perfect, but mostly works...
|
303
|
+
|
304
|
+
if(x < start_x) {
|
305
|
+
tx = lastBBox.width;
|
306
|
+
}
|
307
|
+
if(y < start_y) ty = lastBBox.height;
|
308
|
+
|
309
|
+
// update the transform list with translate,scale,translate
|
310
|
+
var translateOrigin = svgroot.createSVGTransform(),
|
311
|
+
scale = svgroot.createSVGTransform(),
|
312
|
+
translateBack = svgroot.createSVGTransform();
|
313
|
+
|
314
|
+
translateOrigin.setTranslate(-(left+tx), -(top+ty));
|
315
|
+
if(evt.shiftKey) {
|
316
|
+
replaced = true
|
317
|
+
var max = Math.min(Math.abs(sx), Math.abs(sy));
|
318
|
+
sx = max * (sx < 0 ? -1 : 1);
|
319
|
+
sy = max * (sy < 0 ? -1 : 1);
|
320
|
+
if (totalScale.sx != totalScale.sy) {
|
321
|
+
var multiplierX = (totalScale.sx > totalScale.sy) ? 1 : totalScale.sx/totalScale.sy;
|
322
|
+
var multiplierY = (totalScale.sy > totalScale.sx) ? 1 : totalScale.sy/totalScale.sx;
|
323
|
+
sx *= multiplierY
|
324
|
+
sy *= multiplierX
|
325
|
+
}
|
326
|
+
}
|
327
|
+
totalScale.sx *= sx;
|
328
|
+
totalScale.sy *= sy;
|
329
|
+
scale.setScale(sx,sy);
|
330
|
+
translateBack.setTranslate(left+tx, top+ty);
|
331
|
+
var N = tlist.numberOfItems;
|
332
|
+
tlist.appendItem(translateBack);
|
333
|
+
tlist.appendItem(scale);
|
334
|
+
tlist.appendItem(translateOrigin);
|
335
|
+
|
336
|
+
canv.recalculateDimensions(cur_shape);
|
337
|
+
lastBBox = cur_shape.getBBox();
|
338
|
+
},
|
339
|
+
mouseUp: function(opts) {
|
340
|
+
var mode = canv.getMode();
|
341
|
+
if(mode !== mode_id) return;
|
342
|
+
|
343
|
+
if(opts.mouse_x == start_x && opts.mouse_y == start_y) {
|
344
|
+
return {
|
345
|
+
keep: false,
|
346
|
+
element: cur_shape,
|
347
|
+
started: false
|
348
|
+
}
|
349
|
+
}
|
350
|
+
canv.setMode("select")
|
351
|
+
return {
|
352
|
+
keep: true,
|
353
|
+
element: cur_shape,
|
354
|
+
started: false
|
355
|
+
}
|
356
|
+
}
|
357
|
+
}
|
358
|
+
});
|