Commit Graph

765 Commits (e4231aeb109e6dc64ecc37c503e4c94a47a6e614)

Author SHA1 Message Date
Brett Zamir aa2c3f142e - Fix (regression in last commit): Avoid empty text node in SVG template 2018-07-25 17:42:06 -07:00
Brett Zamir a68696ee34 - Refactoring (minor): Array destructuring
- Refactoring (minor): ES6 templates
- i18n: picking stroke/fill paint and opacity
2018-07-25 16:43:29 -07:00
Brett Zamir d71ca48654 - Docs: A couple JSDoc fixes 2018-07-20 20:45:46 -07:00
Brett Zamir a3f0b8e501 - Security fix: 'extPath', 'imgPath', 'extIconsPath', 'canvgPath', 'langPath', 'jGraduatePath', and 'jspdfPath' were not being prevented
- Breaking change: Rename "svgutils.js" to "utilities.js" (make in conformity with JSDoc module naming convention)
- Breaking change: Rename "svgedit.js" to "namespaces.js" (to make clear purpose and avoid confusing with editor)
- Breaking change: Rename "jquery-svg.js" to "jQuery.attr.js"
- Breaking change: Rename "jquery.contextMenu.js" to "jQuery.contextMenu.js"
- Breaking change: Rename "jquery.jpicker.js" to "jQuery.jPicker.js"
- Breaking change: Rename "JQuerySpinBtn.css" to "jQuery.SpinButton.css"
- Breaking change: Rename "JQuerySpinBtn.js" to "jQuery.SpinButton.js" (to have file name more closely reflect name)
- Breaking change: Rename "jquery.svgicons.js" to "jQuery.svgIcons.js"
- Breaking change: Rename "jquery.jgraduate.js" to "jQuery.jGraduate.js"
- Breaking change: Rename "pathseg.js" to "svgpathseg.js" (as it is a poyfill of SVGPathSeg)
- Breaking change: Rename `addSvgElementFromJson()` to `addSVGElementFromJson` for consistency
- Breaking change: Rename `changeSvgContent()` to `changeSVGContent()` for consistency
- Breaking change: Have `exportPDF` resolve with `output` and `outputType` rather than `dataurlstring` (as type may vary)
- Breaking change: Rename `extensions/mathjax/MathJax.js` to `extensions/mathjax/MathJax.min.js`
- Breaking change: Avoid recent change to have editor ready callbacks return Promises (we're not using and advantageous to keep sequential)
- Breaking change: Avoid recent addition of locale-side function in ext-imagelib for l10n
- Breaking change: Change name of ext-arrows.js from `Arrows` to `arrows` for sake of file path (not localized anyways).
- Breaking change: Change `addlangData` extension event to `addLangData` for consistency with method name
- Breaking change: Have `readLang`  return lang and data but do not call `setLang`
- Fix: Have general locales load first so extensions may use
- Fix: Provide `importLocale` to extensions `init` so it may delay adding of the extension until locale data loaded
- Fix: Ensure call to `rasterExport` without `imgType` properly sets MIME type to PNG
- Fix: Wrong name for moinsave
- Update: Update WebAppFind per new API changes
- Enhancement: Make `setStrings` public on editor for late setting (used
  by `ext-shapes.js`)
- Enhancement: Add `extensions_added` event
- Enhancement: Add `message` event (Relay messages including those which
  have been been received prior to extension load)
- Enhancement: Allow SVGEdit to work out of the box--avoid need for copying sample config file. Should also help with Github-based file servers
- Enhancement: Allow avoiding "name" in extension export (just extract out of file name)
- Enhancement: Add stack blur to canvg by default (and refactoring it)
- Enhancement: Return `Promise` for `embedImage` (as with some other loading methods)
- Enhancement: Supply `importLocale` to `langReady` to facilitate extension locale loading
- Enhancement: Recover if an extension fails to load (just log and otherwise ignore)
- Enhancement: More i18n of extensions (also fixed issue with some console warnings about missing locale strings); i18nize Hello World too
- Enhancement: Allowing importing of locales within `addLangData`
- npm: Update devDeps
- Docs: Migrate copies of all old wiki pages to docs/from-old-wiki folder; intended for a possible move to Markdown, so raw HTML (with formatting) was not preserved, though named links had their absolute URL links preserved
- Docs: Begin deleting `SvgCanvas.md` as ensuring jsdoc has replacements
- Docs: Add Edtior doc file for help to general users
- Docs: Clarify/simplify install instructions
- npm/Docs (JSDoc): Add script to check for overly generic types
- Docs (JSDoc): For config/prefs and extension creating, link to tutorials (moved tutorials to own directory to avoid recursion problems by jsdoc)
- Docs (JSDoc): Add modules (upper case for usual main entrance files or regular names)
- Docs (JSDoc): Fill out missing areas; indicate return of `undefined`; consistency with `@returns`
- Docs (JSDoc): Add our own layout template to support overflow
- Docs (JSDoc): Use cleverLinks and disallow unknown tags
- Docs (JSDoc): Insist on "pedantic" flag; put output directory in config
- Docs (JSDoc): Use more precise Integer/Float over number, the specific type of array/function/object
- Docs (JSDoc): Use `@throws`, `@enum`, `@event`/`@fires`/`@listens`
- Docs: Generally update/improve docs (fixes #92)
- Docs: Update links to `latest` path (Avoid needing to update such references upon each release)
- Docs: 80 chars max
- Refactoring: Drop code for extension as function (already requiring export to be an object)
- Refactoring: Object destructuring, `Object.entries`, Object shorthand, array extras, more camelCase variable names
- Refactoring: Add a `Command` base class
- Refactoring: Simplify svgicons `callback` ready detection
- Refactoring: Put `let` or `const` closer to scope
- Refactoring: Remove unneeded `delimiter` from regex escaping utility
- Refactoring: Clearer variable names
- Refactoring: Use (non-deprecated) Event constructors
- Testing: Use new Sinon
2018-07-08 22:39:46 -07:00
Brett Zamir 9f65b1adb9 - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`)
- Breaking change: Locale now formatted as export
- Breaking change: Moved out remaining modular i18n (imagelib) to own folder
- Breaking change: Drop `executeAfterLoads` (and getJSPDF/getCanvg)
- Breaking change: `RGBColor` must accept `new`
- Breaking change: canvg - `stackBlurCanvasRGBA` must be set now by function (`setStackBlurCanvasRGBA`) rather than global; `canvg` now a named export
- Breaking change: Avoid passing `canvg`/`buildCanvgCallback` to extensions (have them import)
- Fix: i18nize imaglib more deeply
- Fix: Positioning of Document Properties dialog (Fixes #246)
- Fix (regression): PDF Export (Fixes #249)
- Fix (regression): Add polyfill for `ChildNode`/`ParentNode` (and use further)
- Fix (regression): Apply Babel universally to dependencies
- Fix (regression): Ordering of `uaPrefix` function in `svgEditor.js`
- Fix (regression): Embedded API
- Fix (embedded editor): Fix backspace key in Firefox so it doesn't navigate out of frame
- Fix: Alert if no exportWindow for PDF (e.g., if blocked)
- Refactoring( RGBColor) `RGBColor` as class, without rebuilding constants, optimize string replacement, move methods to prototype, use templates and object literals, use `Object.keys`
- Refactoring (canvg) Use classes more internally, use shorthand objects; array extras, return to lazy-loading
- Refactoring: Use Promises in place of `$.getScript`; always return Promises in case deciding to await resolving
- Refactoring: Avoid importing `RGBColor` into `svgutils.js` (jsPDF imports it itself)
- Refactoring: Arrow functions, destructuring, shorter property references
- Refactoring: Fix `lang` and `dir` for locales (though not in use currently anyways)
- Refactoring: Provide path config for canvg, jspdf
2018-06-12 06:50:28 +08:00
Brett Zamir a27a5d5637 - Docs: Exclude from jsdoc firefox-extension, opera-widget, screencasts, test folders and build.html.js/rollup files
- Docs: Further JSDoc of methods
- Docs: Transfer some changes from ExtensionDocs on wiki (need to fully reconcile)
- Refactoring (minor): variadic args through ellipsis
2018-05-31 16:07:44 +08:00
Brett Zamir 96e089f930 - Breaking change: In interests of modularity/removing globals, remove `window.svgCanvas`
and `svgCanvas.ready` as used by older extensions; use `svgEditor.canvas` and
    `svgEditor.ready` instead
- npm: Add `prepare` script to ensure building/testing before publish
2018-05-31 09:53:47 +08:00
Brett Zamir a5c25a2113 - Code comments: Coding standards within
- Refactoring (minor): Use single quotes in PHP
2018-05-31 07:52:13 +08:00
Brett Zamir d173df34d2 - Fix (Embedded API): Cross-domain may fail to even access `origin` or `contentDocument`
- Fix (Embedded API): Avoid adding URL to iframe src if there are no arguments
- Fix (Cross-domain usage): Recover from exceptions with `localStorage`
- Docs (JSDoc): Missing function
2018-05-30 19:39:00 +08:00
Brett Zamir f2b1a1ff0c - Enhancement: Allow callback argument and return promise
for canvas methods: `rasterExport` and `exportPDF`
2018-05-30 16:47:43 +08:00
Brett Zamir 2ddc78d525 - Fix (regression): Favicon setting 2018-05-30 08:54:56 +08:00
Brett Zamir a353d6fc89 - npm: Update devDeps
- Fix: Enforce stylesheet ordering sequence
- Fix: Ensure SVG-edit hidden until stylesheets loaded
- Fix: Avoid abandoning stylesheet loading if one load fails
2018-05-29 13:48:42 +08:00
Brett Zamir c2e06534ff - Enhancement: Delete the imge upon cancel if it is a new image (fixes #177) 2018-05-28 19:19:00 +08:00
Brett Zamir 5ad83b9b87 - Refactoring: Clean-up
- Fix: Race condition with svgicons and seticonsize
- Embedded editor: Use module form for now; drop unused inline attribute
- Embedded editor: Fix PNG export; work toward restoring PDF (add `getUIStrings` method to editor for assisting)
- canvg and importScript fixes
2018-05-25 22:43:01 +08:00
Brett Zamir 8c9e40d349 - Breaking change: Rename config file to `svgedit-config-iife.js` (or for the module version, `svgedit-config-es.js`);
also expect one directory higher; incorporates #207 (@iuyiuy)
- Breaking change: Separate `extIconsPath` from `extPath` (not copying over icons)
- Breaking change: Don't reference `custom.css` in HTML; can instead be referenced in JavaScript through
    the config file (provided in `svgedit-config-sample-iife.js`/`svgedit-config-sample-es.js` as `svgedit-custom.css` for
    better namespacing); incorporates #207 (@iuyiuy)
- Breaking change: Remove minified jgraduate/spinbtn files (minified within Rollup routine)
- Fix: Zoom when scrolled; incorporates #169 (@AndrolGenhald), adapting for conventions; also allow avoidance when shift key pressed
- Fix: Update Atom feed reference in HTML
- Fixes related to recent commits: Some path and method name fixes needed, function order, missing methods, variable scope declaration, no need for DOMContentLoaded listeners in modules, switch back to non-default export, avoid trimming nullish, deal with mock tests, fix `math.matrixMultiply`, use jquery-svg where needed for array/SVG attributes; add babel-polyfill and defer script to imagelib; other misc. fixes
- Enhancement: Move config-sample.js out of `editor` directory
- Enhancement: For `callback`-style extensions, also provide config object; add following
   to that object: buildCanvgCallback, canvg, decode64, encode64, executeAfterLoads, getTypeMap, isChrome, ieIE, NS, text2xml
- Enhancement: Complete ES6 modules work (extensions, locales, tests), along with Babel;
    make Node build routine for converting modular source to non-modular,
    use `loadStylesheets` for modular stylehsheet defining (but parallel loading);
- Enhancement: Add `stylesheets` config for modular but parallel stylesheet loading with `@default` option for simple inclusion/exclusion of defaults (if not going with default).
- Refactoring: Clean up `svg-editor.html`: consistent indents; avoid extra lbs, avoid long lines
- Refactoring: Avoid embedded API adding inline JavaScript listener
- Refactoring: Move layers and context code to `draw.js`
- Refactoring: Move `pathActions` from `svgcanvas.js` (though preserve aliases to these methods on `canvas`) and `convertPath` from `svgutils.js` to `path.js`
- Refactoring: Move `getStrokedBBox` from `svgcanvas.js` (while keeping an alias) to `svgutils.js` (as `getStrokedBBoxDefaultVisible` to avoid conflict with existing)
- Docs: Remove "dependencies" comments in code except where summarizing role of jQuery or a non-obvious dependency
- Refactoring/Linting: Enfore `no-extra-semi` and `quote-props` rules
- Refactoring: Further avoidance of quotes on properties (as possible)
- Refactoring: Use `class` in place of functions where intended as classes
- Refactoring: Consistency and granularity in extensions imports
- Testing: Update QUnit to 2.6.1 (node_modules) and Sinon to 5.0.8 (and add sinon-test at 2.1.3) and enforce eslint-plugin-qunit linting rules; update custom extensions
- Testing: Add node-static for automating (and accessing out-of-directory contents)
- Testing: Avoid HTML attributes for styling
- Testing: Add npm `test` script
- Testing: Comment out unused jQuery SVG test
- Testing: Add test1 and svgutils_performance_test to all tests page
- Testing: Due apparently to Path having not been a formal class, the test was calling it without `new`; refactored now with sufficient mock data to take into account it is a class
- npm: Update devDeps
- npm: Add html modules and config build to test script
2018-05-25 20:03:14 +08:00
Brett Zamir ae2394f086 (INCOMPLETE: ES6 Module conversion and linting)
- Breaking change: Require `new` with `EmbeddedSVGEdit` (allows us to use `class` internally)
- Breaking change: If `svgcanvas.setUiStrings` must now be called if not using editor in order
    to get strings (for sake of i18n) (and if using path.js alone, must also have its `setUiStrings` called)
- Breaking change (ext-overview-window): Avoid global `overviewWindowGlobals`
- Breaking change (ext-imagelib): Change to object-based encoding for namespacing of
    messages (though keep stringifying/parsing ourselves until we remove IE9 support)
- Breaking change: Rename `jquery.js` to `jquery.min.js`
- Breaking change: Remove `scoped` attribute from `style`; it is now deprecated and
    obsolete; also move to head (after other stylesheets)
- Enhancement: Make SpinButton plugin independent of SVGEdit via
    generic state object for tool_scale
- Enhancement: Remove now unused Python l10n scripts (#238)
- Enhancement: ES6 Modules (including jQuery plugins but not jQuery)
- Enhancement: Further JSDoc (incomplete)
- Enhancement (Optimization): Compress images using imageoptim (and add
    npm script) (per #215)
- Fix: i18nize path.js strings and canvas notifications
- Fix: Attempt i18n for ext-markers
- Refactoring (ext-storage): Move locale info to own file imported by the extension (toward modularity; still should be split into separate files by language and *dynamically* imported, but we'll wait for better `import` support to refactor this)
- Refactoring: For imagelib, add local jQuery copy (using old 1.4.4 as had
    been using from server)
- Refactoring: For MathJax, add local copy (using old 2.3 as had been using from
    server); server had not been working
- Refactoring: Remove `use strict` (implicit in modules)
- Refactoring: Remove trailing whitespace, fix some code within comments
- Refactoring: Expect `jQuery` global rather than `$` for better modularity
    (also to adapt line later once available via `import`)
- Refactoring: Prefer `const` (and then `let`)
- Refactoring: Add block scope keywords closer to first block in which they appear
- Refactoring: Use ES6 `class`
- Refactoring `$.isArray` -> `Array.isArray` and avoid some other jQuery core methods
    with simple VanillaJS replacements
- Refactoring: Use abbreviated object property syntax
- Refactoring: Object destructuring
- Refactoring: Remove `uiStrings` contents in svg-editor.js (obtains from locale)
- Refactoring: Add favicon to embedded API file
- Refactoring: Use arrow functions for brief functions (incomplete)
- Refactoring: Use `Array.prototype.includes`/`String.prototype.includes`;
    `String.prototype.startsWith`, `String.prototype.trim`
- Refactoring: Remove now unnecessary svgutils do/while resetting of variables
- Refactoring: Use shorthand methods for object literals (avoid ": function")
- Refactoring: Avoid quoting object property keys where unnecessary
- Refactoring: Just do truthy/falsey check for lengths in place of comparison to 0
- Refactoring (Testing): Avoid jQuery usage within most test files (defer script,
    also in preparation for future switch to ES6 modules for tests)
- Refactoring: Make jpicker variable declaration indent bearable
- Refactoring (Linting): Finish svgcanvas.js
- Docs: Mention in comment no longer an entry file as before
- Docs: Migrate old config, extensions, and FAQ docs
- Licensing: Indicate MIT is license type of rgbcolor; rename/add license file name for
    jgraduate and screencast to reflect type (Apache 2.0); rename file to reflect it
    contains license information (of type MIT) for Raphael icons
2018-05-22 18:02:57 +08:00
Brett Zamir 52353c6321 - Further convert tabs -> 2 spaces in JS code comments (except in test performance
file where used for alignment though use tab escape within JS), CSS
    (including comments), PHP, SVG, JSON, XUL
- Remove extra spaces in svgcanvas.js, ext-connector.js
2018-05-18 14:41:43 +08:00
Brett Zamir dc6ab72480 - Update Opera and jQuery links
- Use `https://` (fix #172), including in prompt for URL and relevant code comments (where available and naturally not on namespaces)
- Comment out broken link in svg-editor.html
- Trailing space
2018-05-18 13:48:47 +08:00
codedread 4043c6e537 Change all tab indentations to 2sp indentation. Addresses issue #37 2018-05-17 21:02:30 -07:00
Neil Fraser f9fb7f47ae Residual linting
{object} -> {Object}
Remove extra semicolons.
Use jQuery’s .empty().
Make nodelist loops O(n) rather than O(n^2).
Specify radix in parseInt to prevent guessing octal.
2018-05-17 11:57:28 -07:00
Brett Zamir eba9dee54c - Linting (ESLint): Finish `editor/svg-editor.js`; unfinished: `editor/svgcanvas.js`
- Fix: Restore save alert
2018-05-16 16:03:43 +08:00
Brett Zamir 340915be4e - Linting (ESLint): Finish extensions and most files in editor/; unfinished: `editor/svg-editor.js`, `editor/svgcanvas.js`
- Linting (ESLint): Fix ignore file paths
- History `elem` fix
2018-05-16 12:08:41 +08:00
Igin edb8a75402 fix #222 Browsers block data URI (#224)
* fix #222 Browsers block data URI

* add spaces and blank lines
2018-04-12 11:00:52 -07:00
KB Jørgensen 02c8721c2d Implemented a clipboard that works across tabs and windows. 2018-01-18 14:02:03 +01:00
Teemu Koivisto 6ee97e0d3f Fix broken saving of svg in Chrome >=60 2017-11-27 19:49:34 +02:00
KB Jørgensen aafcbb694e Log errors from extensions to the browser console. 2016-11-21 15:45:43 +01:00
KB Jørgensen f9b7ae97e5 Also trigger the svgEditorReady event when opened through an iframe. 2016-08-01 09:48:00 +02:00
Flint O'Brien 53cfe68afa Merge pull request #107 from gec/createLayerFix
Fixed Layers in svgcanvas. Moved Layer class. HistoryRecordingservice
2016-05-02 12:02:42 -04:00
Jeff Schiller fb5e2c78ec Merge pull request #85 from magnebra/text_input_update
Change the text input bindings to catch more input events
2016-05-02 07:53:41 -07:00
Jeff Schiller 1120d61544 Merge pull request #96 from iuyiuy/patch-1
Trigger the svgEditorReady after the canvas is ready.
2016-05-02 07:49:42 -07:00
Flint O'Brien 899853c963 Fixed Layers in svgcanvas. Moved Layer class. New HistoryRecordingservice.
Canvas was referencing drawing.all_layers and drawing.current_layer.
Both variables now represent Layer instead of group element and should
be considered private.
Moved Layer class to layer.js
New HistoryRecordingService added to help with moving Layer code out of
Canvas. Started using it in Canvas.mergLayer
2016-05-01 22:58:41 -04:00
Flint O'Brien ebcf3d9c47 Update layers panel on programatic call to createLayer.
Add class=“layer” to each layer element. This happens when calling
createLayer() or any call to identifyLayers(). This happens with new
drawings and when opening legacy drawings, so it’s fully backwards
compatible.
svg-editor.js elementChanged() looks for g.layer as an addition test
for calling populateLayers() which updates the layers panel.
Addition tests for class=“layer” added to draw_test.html.
Fixed Firefox exception in draw_test.html.
2016-04-29 16:13:35 -04:00
iuyiuy 2fe15e4d3f Trigger the svgEditorReady after the canvas is ready. 2016-03-23 11:40:42 +01:00
Magne Bratseth 1f57536546 Add config options for text 2016-03-15 08:43:24 +01:00
Jeff Schiller 2a062f6b01 Merge pull request #86 from Saurbaum/return
Images drawn using an extension always spawn the URL dialog
2016-03-14 09:19:31 -07:00
Ian Newborn 0c035f8aa2 Removed debugger; 2016-03-14 09:12:47 +00:00
Ian Newborn 8f904c05dd Prevented Editor opening image browser if not in image mode 2016-03-14 09:12:23 +00:00
Magne Bratseth d03d50dc3b Remove binding of change - 'input' is sufficient 2016-03-14 08:01:42 +01:00
Magne Bratseth 9fdb305fb5 Change the text input bindings to catch more input events 2016-03-11 12:06:10 +01:00
Magne Bratseth fc269cf045 Make sure font size is set to display when text is selected 2016-03-11 11:04:11 +01:00
Magne Bratseth 1c77772740 Sizing the font-size elements leave them disabled and not shown later on 2016-03-11 10:34:05 +01:00
Jeff Schiller 6715e62146 Merge pull request #7 from ibrierley/master
Fix for import svg image leading to unattached dragtool
2016-01-31 23:27:01 -08:00
Jordan cac6202e58 #59 Remove double-bind of keypresses Z and Y
Patch for Issue #59. https://github.com/SVG-Edit/svgedit/issues/59
2016-01-19 17:00:59 -08:00
Francesco Strappini ce009a4581 Spacing like the code around 2015-09-27 09:01:04 +02:00
Francesco Strappini 1f11691c60 Added class support 2015-09-24 16:15:34 +02:00
ibrierley ea129f009e formatting 2015-07-16 19:28:20 +02:00
ibrierley 4d745dc05b Fix for importing svg files where grabber just selects nothing as it doesnt know the svg to select 2015-07-16 15:45:48 +02:00
portablejim a62f7c1c5a Make context menu group option work. 2015-06-16 18:17:52 +10:00
Brett Zamir 6f7651299c Some additional JSLint; update jsPDF and SVG plugin; handle canvg for image export within svgcanvas and provide new "datauri" to "exported" event.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2875 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-06-01 21:29:54 +00:00
Brett Zamir 8bda8fe16d Ensure loading... message closes upon completion or error
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2865 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 23:20:43 +00:00
Brett Zamir d792d60808 Update JSLint global declarations
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2862 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 11:01:11 +00:00
Brett Zamir abc9cd6ffb Move embedapi.html code which is not part of the API into embedapi-dom.js; demo export PDF in embedded editor; add new exportPDF method to canvas (and exposed to embedded editor) which can support JSON-able data URI string response, removing PDF exporting from rasterExport; JSLint; move dependency checking code for canvg and jsPDF to utilities; simplify Utils calls; allow for custom PDF export handler (but not yet implemented in server-based extensions); import PDF todo
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2860 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 10:21:29 +00:00
Brett Zamir 3fdb8f4377 Avoid window.name security errors and make export window name configurable through config.exportWindowType (new|same) based on configurable canvas name
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2855 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 07:22:57 +00:00
Brett Zamir 5bddabcec3 Switch to minified and complete distribution version of jsPDF; allow data URL to work in Firefox as well as Chrome instead of blob URL; rmv global saveAs requirement
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2854 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 06:43:37 +00:00
Brett Zamir 25a8d9a851 Fix callEnsure all dependencies available for canvg-using extensions (server_moinsave, server_opensave)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2853 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 03:47:10 +00:00
Brett Zamir 18c9fd0932 Ensure all dependencies available for canvg-using extensions (server_moinsave, server_opensave)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2852 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 03:45:31 +00:00
Brett Zamir 9bda441c77 Abstract conditional script loading and allow jsPDF to load as needed (as with canvg); update jsPDF
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2847 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 02:34:37 +00:00
Brett Zamir 4ffd994c49 Spacing
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2846 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-22 01:30:42 +00:00
Brett Zamir bf8c5308f2 Fix exportImage behavior if multiple setCustomHandlers calls are made
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2843 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-15 05:16:39 +00:00
Brett Zamir 978315f944 Allow override of jsPDF saveAs function (jsPDF work not complete however); apply fix for issue #1209 on push buttons; fix comment
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2839 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-05-08 03:47:14 +00:00
Brett Zamir df057b9736 Quick fix for small icon view and top toolbar
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2826 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-17 00:25:02 +00:00
Brett Zamir 582e71cb1b Minor: Spacing
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2825 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-09 22:47:39 +00:00
Brett Zamir 936d7d3aa4 Support external (embedded) export invocation; utilize export in embedded demo
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2822 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-09 06:53:08 +00:00
Brett Zamir 856d1971c2 Remove paramurl parameter as it encouraged improper encoding of a URL within the SVG Edit URL
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2815 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-09 04:26:34 +00:00
Brett Zamir d84a4465d2 Minor clean-up
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2813 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-09 03:44:19 +00:00
Brett Zamir 04d522b43b Properly allow for ext-grid showGrid default setting
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2805 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-09 02:25:25 +00:00
Brett Zamir 297f10489f explain colorPickerCSS default behavior in comments
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2802 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-09 01:33:11 +00:00
Brett Zamir 35ab5a9862 Fix spacing
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2800 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 13:49:58 +00:00
Brett Zamir 75928e9b63 Revert to using point regardless of base unit (with comment)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2798 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 11:27:05 +00:00
Brett Zamir b1ea39db46 Provide values for px, pc, em, ex and utilize switch for divisor determination in jsPDF in order to utilize the user's current base unit type in PDF exports. Accurate conversion formulas?
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2797 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 11:01:46 +00:00
Brett Zamir 667de19147 Set document title as PDF property
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2796 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 08:18:47 +00:00
Brett Zamir 1f95988b29 Make PDF export orientation dependent on width vs. height, based on "pt", and using the dimensions of the canvas (Todo: provide alternative of predefined jsPDF options like a4, legal, etc.)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2795 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 08:10:26 +00:00
Brett Zamir 50d0b1fb67 Add jsPDF(with SVG plugin)-based PDF export (courtesy of https://github.com/brettz9/jsPDF forked from https://github.com/MrRio/jsPDF => https://github.com/ahwolf/jsPDF ); provides data: URL where blob conversion is supported, and a blob URL otherwise.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2792 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 05:13:54 +00:00
Brett Zamir 0d34fcfa7d Properly-formed URLs will not have spaces, so no need to replace; no need for "/" escaping unless within HTML doc; properly encode loadingImage window text; support loading of (properly URL encoded) non-base64 "data:image/svg+xml;utf8,"-style data URIs
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2782 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-08 01:31:22 +00:00
Brett Zamir 91a627d53d Remove 2.7-deprecated pngsave option
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2780 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-07 23:31:00 +00:00
Brett Zamir 614895baf0 Uniform spelling for "Todo" throughout code
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2760 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-04-07 04:13:01 +00:00
Brett Zamir 5439b4dc73 accept float values in case ever any added to menu
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2732 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-03-16 03:32:12 +00:00
Brett Zamir 1e2e6529d2 Critical privacy/data integrity fix: Move cross-domain capable message listener into own extension (ext-xdomain-messaging.js) and do not include by default (the extension now won't work anyways without an allowedOrigins config first being set (in config.js) for security reasons (and not via URL)); add allowedOrigins config and demo use in config-sample.js; JSLint; update embedapi.html to supply the xdomain extension in case running xdomain (again, allowedOrigins must be supplied in the local copy of config.js for this to work); modify embedapi.js to allow reuse of cross-domain API with same-domain usage, but without the intermediate JSON parsing which could lose some non-JSONable arguments or response.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2714 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-22 04:08:24 +00:00
Brett Zamir bb75f34ec3 Require extensions to begin with "ext-" and end with ".js" to prevent URL-prompted loading of other files within the extPath.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2712 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-19 05:26:46 +00:00
Brett Zamir 48f6dd42ca Simplify storage checking/access
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2711 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-19 04:36:49 +00:00
Brett Zamir dc1bf5d88c Safer encoding of cookies; ensure emptyStorageOnDecline only works with explicit decline (and as before, with config so set); add cookie removal to emptyStorageOnDecline behavior
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2709 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-19 01:37:21 +00:00
Brett Zamir cb02aad1f7 Mention locale editor methods in svg-editor.js
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2708 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-19 00:46:52 +00:00
Brett Zamir 51dcf01415 Minor: Avoid internal use of svgEditor, fix comment
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2706 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-18 23:57:49 +00:00
Brett Zamir e463b43220 1. Reference config.js in the editor (and remove encouragement for adding extensions to HTML) but ignore config.js in SVN (let user configure) but supply config-sample.js to indicate config/pref/extension possibilities;
2. Move ext-overview_window.js to default but overridable list of extensions (as with other extensions);
3. Allow extensions to avoid problems if failing to return an object (in svgcanvas.js);
4. Support new langReady callback to ensure extension always called when locale info is ready (and always load locale, even English);
5. Move localStorage storing to a new (i18n-ized and available-by-default) storage extension which adds a dialog asking user for whether to store prefs and/or SVG content; $.pref() now falls back to checking defaultPrefs (which may have been expanded at runtime to include URL or storage settings); use new config "forceStorage" to get old (bad) behavior
6. Remove initial cap from "Editor" to reflect singleton nature of object (as compared to JSLint conventions for initial cap constructors);
7. Begin a little JSDoc, clearer grouping of properties/methods; JSLint/clean-up
8. Omit values for lang and iconsize to be successfully auto-detected; 9. Document "save_notice_done" and "export_notice_done" within list of prefs; document "showlayers" and "no_save_warning" as config
10. Add "preventAllURLConfig" and "preventURLContentLoading" config for URL security; 
11. Add "lockExtensions" and "noDefaultExtensions" config for URL behavior re: extension loading
12. Document "showGrid", and new "noStorageOnLoad" and "emptyStorageOnDecline" extension-related config
13. Change setConfig to allow a second object with "overwrite" and "allowInitialUserOverride" properties and to behave accordingly (with URL config acting with overwrite=false to act under lower priority given security concern), along with checking "preventAllURLConfig" and "lockExtensions" config.
14. Remove any dupe extensions
15. Strip all path config from URL setting in addition to extPath (imgPath, langPath, jGraduatePath)
16. Support select+checkbox type dialog (used for storage ext.)
17. Ensure clickSelect is public so can be properly used by ext-connector.js
18. Reinstate 'in' checks just to be safe
19. Fix broken linkControlPoints() and addSubPath() functions
20. Fix problem when position returned by extension object was too high (e.g., if too few other extensions were included).

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2705 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-18 15:06:27 +00:00
Brett Zamir d63ed88e25 Rename PNG files accordingly
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2687 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-11 02:03:54 +00:00
Brett Zamir 74810573b2 Change group to group_elements (though keep duplicate group under old name in case it is supposed to have a different function)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2686 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-11 01:58:57 +00:00
Brett Zamir f378e667fb Further documenting of $.pref
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2684 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-11 00:05:59 +00:00
Brett Zamir cc780f39e6 Document $.pref
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2683 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-11 00:05:17 +00:00
Brett Zamir 05dc118abe JSLint (minor)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2682 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 13:50:55 +00:00
Brett Zamir 645ab15976 Add missing 'e'
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2681 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 13:46:19 +00:00
Brett Zamir 6e5905370d Add e.returnValue in addEventListener('beforeunload') for sake of Firefox
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2680 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 13:45:48 +00:00
Brett Zamir 6a9cf9551a Finish most of svg-editor.js JSLint
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2678 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 13:14:38 +00:00
Brett Zamir 2b9e299240 Ensure panning extension can be over-ridden via URL
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2676 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 11:39:33 +00:00
Brett Zamir 5352fe0a64 JSLint (including avoiding global)
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2675 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 10:53:51 +00:00
Brett Zamir ba5aaeb1f0 JSLint
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2674 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 10:21:55 +00:00
Brett Zamir 6d4ec994f0 Clarify exportImage option in comments
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2672 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 05:54:17 +00:00
Brett Zamir 7295eece09 Potentially breaking change: Prevent setting of extPath via URL and prevent setting of cross-domain or cross-folder extensions via URL, i.e., if the extensions string possesses the character ":", "/", or, to be extra safe, "\", (issue #4 of mailing list post "Agenda for resolving security issues"). extPath and extensions can still be meaningfully set freely via setConfig calls, e.g., "svgCanvas.setConfig({extPath: ..., extensions: ...});" if made before Editor.init() is called in svg-editor.js (which is called on a jQuery ready (i.e., DOMContentLoaded) event). To avoid modifying svg-editor.html, one could build an extension which loaded its own scripts as done by the simple extFunc() function in svg-editor.js, but this would occur a little later (Should we export extFunc() for this usage?).
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2671 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-10 05:33:05 +00:00
Brett Zamir bc3f7923e0 Very minor clean-up
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2668 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-02-04 04:08:24 +00:00
Brett Zamir 515de36d65 Check for urldata.extPath!
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2657 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-01-31 12:22:20 +00:00
Brett Zamir 51ed2f6106 JSLint
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2653 eee81c28-f429-11dd-99c0-75d572ba1ddd
2014-01-31 10:55:18 +00:00