Skip to content

Commit

Permalink
Merge branch 'release-v1.0.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
Michele Tessaro committed May 13, 2021
2 parents 461590d + e827190 commit 2985743
Show file tree
Hide file tree
Showing 12 changed files with 34 additions and 7 deletions.
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
# Changelog


## 1.0.1 (2021-03-23)
## v1.0.2 (2021-05-13)

### Fix

* Fixed use of special chars as page name (fixes #92) [Michele Tessaro]

The use of special characters (like `+`) in the name of a wiki page was
causing am HTTP 404 during diagram save as attachment.

* Fixed use of single quote in image name (fixes #91) [Michele Tessaro]


## v1.0.1 (2021-03-23)

### Fix

Expand Down
13 changes: 10 additions & 3 deletions assets/javascripts/drawioEditor.js
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,12 @@ function editDiagram(image, resource, isDmsf, pageName) {
else
switch(jqXHR.status) {
case 401: msg = Drawio.strings['drawio_http_401']; break;
case 404: msg = Drawio.strings['drawio_http_404']; break;
case 404:
if(isDmsf)
msg = Drawio.strings['drawio_http_404'];
else
msg = Drawio.strings['drawio_save_error'];
break;
case 409: msg = Drawio.strings['drawio_http_409']; break;
case 422: msg = Drawio.strings['drawio_http_422']; break;
case 502: msg = Drawio.strings['drawio_http_502']; break;
Expand Down Expand Up @@ -276,7 +281,7 @@ function editDiagram(image, resource, isDmsf, pageName) {
*/
function saveAttachment(resource, imageData, type, pageName) {
var pageUrl = window.location.pathname;
var encodedPageName = new RegExp('/wiki/'+encodeURIComponent(pageName)+'$', 'i');
var encodedPageName = new RegExp('/wiki/'+encodeURI(pageName).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')+'$', 'i');

// pageName !== "" means it's a wiki page
if(pageName !== "" && !pageUrl.match(encodedPageName))
Expand All @@ -297,7 +302,9 @@ function editDiagram(image, resource, isDmsf, pageName) {

function updateDiagramReference(pageBody) {
// Build a pattern like attachName(_\d+)?\.*
var resourcePattern = escapeRegExp(resource).replace(/(_\d+)?(\\\.\w+)?$/, '(_\\d+)?($2)?')
var resourcePattern = escapeRegExp(resource).replace(/^(.*?)(_\d+)?(\\\.\w+)?$/, function(m,p1,p2,p3) {
return p1.replace(/_/g, '.')+'(_\\d+)?('+p3+')?';
})
// Build pattern to match the drawio_attach macro with resource pattern
var macroRegExp = escapeRegExp('{{drawio_attach(')+resourcePattern+'(\\s*,.*)?'+escapeRegExp(')}}');
// Replace old attachment name with the new name
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-da.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Drawio.strings['drawio_http_404' ] = 'Tjek om WebDAV i DMSF modulet er slåe
Drawio.strings['drawio_http_409' ] = 'Tjek om folderen eksisterer i DMSF og kan tilgås';
Drawio.strings['drawio_http_422' ] = 'Diagrammet er for stort: forøg størrelsen på vedhæftede filer i Redmine-indstillingerne';
Drawio.strings['drawio_http_502' ] = 'Tjek om WebDAV i DMSF modulet er slået til og er i læse/skrive-mode';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = 'Diagram-navn';
Drawio.strings['drawio_cke_diagType' ] = 'Diagram-format';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-de.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Drawio.strings['drawio_http_404' ] = 'Stelle sicher, dass WebDAV für das DM
Drawio.strings['drawio_http_409' ] = 'Stelle sicher, dass der DMSF Ordner existiert und erreichbar ist';
Drawio.strings['drawio_http_422' ] = 'Diagrammgröße ist zu hoch: Erhöhe die Größe für Anhänge in den Redmine Einstellungen';
Drawio.strings['drawio_http_502' ] = 'Stelle sicher, dass WebDAV für das DMSF Modul mit Lese/Schreibrechten aktiviert ist';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = 'Diagramm Name';
Drawio.strings['drawio_cke_diagType' ] = 'Diagramm Format';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-en.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Drawio.strings['drawio_http_404' ] = 'Make sure WebDAV capabilities of DMSF
Drawio.strings['drawio_http_409' ] = 'Make sure the DMSF folder exists and is accessible';
Drawio.strings['drawio_http_422' ] = 'Diagram size too big: increase the attachment size in Redmine settings';
Drawio.strings['drawio_http_502' ] = 'Make sure WebDAV capabilities of DMSF module is enabled in Read/Write mode';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = 'Diagram name';
Drawio.strings['drawio_cke_diagType' ] = 'Diagram format';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-it.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Drawio.strings['drawio_http_404' ] = 'Assicurarsi che le funzionalità WebDA
Drawio.strings['drawio_http_409' ] = 'Assicurarsi che la cartella nel gestore documentale esista e sia accessibile';
Drawio.strings['drawio_http_422' ] = 'Diagramma troppo grande: aumentare la dimensione degli allegati nelle impostazioni di Redmine';
Drawio.strings['drawio_http_502' ] = 'Assicurarsi che le funzionalità WebDAV del modulo DMSF siano abilitate in modalità di lettura/scrittura';
Drawio.strings['drawiosave_error' ] = 'Errore durante il salvataggio dell\'allegato';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = 'Nome diagramma';
Drawio.strings['drawio_cke_diagType' ] = 'Formato';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-ja.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Drawio.strings['drawio_http_404' ] = 'DMSFプラグインのWebDAV機能が
Drawio.strings['drawio_http_409' ] = 'DMSFフォルダが存在し、アクセス可能であることを確認してください。';
Drawio.strings['drawio_http_422' ] = 'ダイアグラムのファイルサイズが大きすぎます。Redmineの設定から添付ファイルサイズの上限を引き上げて下さい。';
Drawio.strings['drawio_http_502' ] = 'DMSFプラグインのWebDAVアクセス制御が読み書き可能になっていることを確認してください。';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = 'ダイアグラム名';
Drawio.strings['drawio_cke_diagType' ] = 'ダイアグラムの形式';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-ru.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Drawio.strings['drawio_http_404' ] = 'Убедитесь, что WebDAV дл
Drawio.strings['drawio_http_409' ] = 'Убедитесь, что DMSF папка существует и доступна';
Drawio.strings['drawio_http_422' ] = 'Размер диаграммы слишком большой: увеличьте максимальный размер вложений в настройках Redmine';
Drawio.strings['drawio_http_502' ] = 'Убедитесь, что WebDAV для модуля DMSF включен в режиме чтения/записи';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = 'Название диаграммы';
Drawio.strings['drawio_cke_diagType' ] = 'Формат диаграммы';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-zh-tw.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Drawio.strings['drawio_http_404' ] = '請確認文件總管模組的 WebDAV
Drawio.strings['drawio_http_409' ] = '請確認文件總管資料夾已經存在且可以被存取';
Drawio.strings['drawio_http_422' ] = '流程圖檔案太大,請在 Redmine/網站管理/設定/檔案 調整附件大小限制';
Drawio.strings['drawio_http_502' ] = '請確認文件總管模組的 WebDAV 已啟用可讀/寫模式';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = '流程圖名稱';
Drawio.strings['drawio_cke_diagType' ] = '流程圖格式';
Expand Down
1 change: 1 addition & 0 deletions assets/javascripts/lang/drawio_jstoolbar-zh.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Drawio.strings['drawio_http_404' ] = '请确保 DMSF 的 WebDAV 功能已启
Drawio.strings['drawio_http_409' ] = '请确保 DMSF 文件夹已创建并可被访问';
Drawio.strings['drawio_http_422' ] = '图形尺寸过大:请在 Redmine 的设置中扩大附件容量';
Drawio.strings['drawio_http_502' ] = '请确保 DMSF 的 WebDAV 功能已启用读/写模式';
Drawio.strings['drawiosave_error' ] = 'Error while saving the attachment';
// CKEditor plugin messages
Drawio.strings['drawio_cke_diagName' ] = '图形名称';
Drawio.strings['drawio_cke_diagType' ] = '图形格式';
Expand Down
2 changes: 1 addition & 1 deletion init.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
name 'Redmine Drawio plugin'
author 'Michele Tessaro'
description 'Wiki macro plugin for inserting drawio diagrams into Wiki pages and Issues'
version '1.0.1'
version '1.0.2'
url 'https://github.com/mikitex70/redmine_drawio'
author_url 'https://github.com/mikitex70'

Expand Down
4 changes: 2 additions & 2 deletions lib/redmine_drawio/macros.rb
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ def png?(diagramName)
def strip_non_filename_chars(filename)
# Replace directory separator from \ to /
filename = filename.gsub(/\\/, '/')
return filename.gsub(/[\x00:*?"<>|,;]/, '_') if Gem.win_platform?
return filename.gsub(/[\x00:*?"'<>|,;]/, '_') if Gem.win_platform?
# *nix
filename.gsub(/[,;|"]/, '_')
filename.gsub(/[,;|"']/, '_')
end

0 comments on commit 2985743

Please sign in to comment.