VitaliyFilippov has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/70817


Change subject: Query user for the filename of SVGs inserted via WikiEditor 
button.
......................................................................

Query user for the filename of SVGs inserted via WikiEditor button.

Also don't strip non-ascii chars from the filename (JS regexes
don't support UTF-8 character classes), but strip '/' and ':' -
only these characters yield an error in Title creation for files.
Other characters will be sanitized and the corrected title will
be inserted in the editbox.

Change-Id: I77c2782bdf6b53ed26435b4e02100c19a7116d1d
---
M SVGEdit.i18n.php
M SVGEdit.php
M modules/ext.svgedit.toolbar.js
3 files changed, 23 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/SVGEdit 
refs/changes/17/70817/1

diff --git a/SVGEdit.i18n.php b/SVGEdit.i18n.php
index 3e527a8..ea24519 100644
--- a/SVGEdit.i18n.php
+++ b/SVGEdit.i18n.php
@@ -15,6 +15,7 @@
        'svgedit-editbutton-edit' => 'Edit drawing',
        'svgedit-summary-label' => 'Edit summary',
        'svgedit-summary-default' => '/* Modified in svg-edit */',
+       'svgedit-editor-new-filename' => 'Enter file name: ',
        'svgedit-editor-save-close' => 'Save and close',
        'svgedit-editor-close' => 'Cancel',
        'svgedit-desc' => 'In-browser editing of SVG drawings with 
[http://code.google.com/p/svg-edit/ SVG-Edit]',
@@ -740,6 +741,7 @@
        'svgedit-editbutton-edit' => 'Редактировать рисунок',
        'svgedit-summary-label' => 'Описание изменений',
        'svgedit-summary-default' => '/* Изменено в svg-edit */',
+       'svgedit-editor-new-filename' => 'Введите имя файла: ',
        'svgedit-editor-save-close' => 'Сохранить и закрыть',
        'svgedit-editor-close' => 'Отмена',
        'svgedit-desc' => 'Редактирование SVG-изображений в браузере с помощью 
[http://code.google.com/p/svg-edit/ SVG-Edit]',
diff --git a/SVGEdit.php b/SVGEdit.php
index 91c5764..2e8a09d 100644
--- a/SVGEdit.php
+++ b/SVGEdit.php
@@ -46,6 +46,7 @@
                        'svgedit-summary-default',
                        'svgedit-editor-save-close',
                        'svgedit-editor-close',
+                       'svgedit-editor-new-filename',
                ),
                'dependencies' => array(
                        'jquery.ui.resizable'
diff --git a/modules/ext.svgedit.toolbar.js b/modules/ext.svgedit.toolbar.js
index f08f9aa..ea847f0 100644
--- a/modules/ext.svgedit.toolbar.js
+++ b/modules/ext.svgedit.toolbar.js
@@ -7,7 +7,7 @@
 
        var safeFilename = function(str) {
                // hack hack
-               return str.replace(/[^A-Za-z0-9\- ]/, '').replace(/[\s_]+/, ' 
');
+               return str.replace(/[:\\\/]+/g, '').replace(/[\s_]+/g, ' ');
        };
        var handyDate = function() {
                var now = new Date();
@@ -31,23 +31,26 @@
                        pad2(now.getUTCSeconds());
        };
        var callback = function(context) {
-               var filename = safeFilename(wgTitle) + ' drawing ' + 
handyDate() + '.svg';
-               var form = context.$ui.closest('form');
-               mediaWiki.svgedit.open({
-                       filename: filename,
-                       replace: form[0],
-                       onclose: function(filename) {
-                               if (filename) {
-                                       // Saved! Insert a [[File:foo]]
-                                       
context.$textarea.textSelection('encapsulateSelection', {
-                                               'pre': '[[File:',
-                                               'peri': filename,
-                                               'post': ']]',
-                                               'replace': true
-                                       });
+               var filename = safeFilename(wgTitle) + ' drawing ' + 
handyDate();
+               if (filename = 
prompt(mediaWiki.msg('svgedit-editor-new-filename'), filename)) {
+                       filename = safeFilename(filename + '.svg');
+                       var form = context.$ui.closest('form');
+                       mediaWiki.svgedit.open({
+                               filename: filename,
+                               replace: form[0],
+                               onclose: function(filename) {
+                                       if (filename) {
+                                               // Saved! Insert a [[File:foo]]
+                                               
context.$textarea.textSelection('encapsulateSelection', {
+                                                       'pre': '[[File:',
+                                                       'peri': filename,
+                                                       'post': ']]',
+                                                       'replace': true
+                                               });
+                                       }
                                }
-                       }
-               });
+                       });
+               }
        };
        $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'advanced',

-- 
To view, visit https://gerrit.wikimedia.org/r/70817
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I77c2782bdf6b53ed26435b4e02100c19a7116d1d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/SVGEdit
Gerrit-Branch: master
Gerrit-Owner: VitaliyFilippov <vita...@yourcmc.ru>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to