From 0a95f8cb5f9e122b2bb28495fd918923c3840e6e Mon Sep 17 00:00:00 2001
From: Michele Tessaro
diff --git a/assets/javascripts/drawio_jstoolbar.js b/assets/javascripts/drawio_jstoolbar.js
index 18883ad6..b085b1f7 100644
--- a/assets/javascripts/drawio_jstoolbar.js
+++ b/assets/javascripts/drawio_jstoolbar.js
@@ -210,14 +210,14 @@
if(diagName != '' && size.match(/^\d*$/)) {
// Add/replace file extension
- diagName = diagName.replace(/^(.*?)(?:\.\w{3})?$/, '$1.'+diagType);
-
+ diagName = diagName.replace(/^(.*?)(?:\.\w{3,6})?$/, '$1.'+diagType);
+
var options = [diagName];
if(/^\d+$/.test(size))
options.push('size='+size);
- if(diagType === 'xml') {
+ if(diagType === 'xml' || diagType === 'drawio') {
var tbAutoHide = $("#drawio_tbautohide").is(":checked");
var lightbox = $("#drawio_lightbox").is(":checked");
var zoom = $("#drawio_zoom").is(":checked");
@@ -290,7 +290,9 @@
}
}
- if($('input:radio[name=drawio_diagType]:checked').val() === 'xml')
+ var selectedType = $('input:radio[name=drawio_diagType]:checked').val();
+
+ if(selectedType === 'xml' || selectedType === 'drawio')
$("#drawio_xml_params").show();
}
},
@@ -313,7 +315,7 @@
$("input[name=drawio__P1]").val(filename.replace(/\.[^/.]+$/, "")+"."+this.value);
}
- if(this.value === 'xml')
+ if(this.value === 'xml' || this.value === 'drawio')
$("#drawio_xml_params").show();
else
$("#drawio_xml_params").hide();
diff --git a/lib/redmine_drawio/macros.rb b/lib/redmine_drawio/macros.rb
index 6fa45dca..1b6f50bf 100644
--- a/lib/redmine_drawio/macros.rb
+++ b/lib/redmine_drawio/macros.rb
@@ -30,6 +30,7 @@ module Macros
* png: diagram exported as png+xml (embedded source diagram)
* svg: diagram exported as svg+xml (embedded source diagram)
* xml: classic diagram xml source
+* drawio: same ax xml
Every time a diagram is saved, a new attachment will be created; for now you must
manually delete old attachments (missing Redmine API; version 3.3.0 seems to have included
@@ -55,7 +56,7 @@ module Macros
diagramName = RedmineDrawio::Macros.strip_non_filename_chars(args.first)
return "«Please set a diagram name»".html_safe unless diagramName
- return "«Only png, svg and xml diagram formats are supported»".html_safe unless diagramName =~ /.*(\.(png|svg|xml))?$/i
+ return "«Only png, svg and xml diagram formats are supported»".html_safe unless diagramName =~ /.*(\.(png|svg|xml|drawio))?$/i
return "svg diagrams are disabled by the administrator" unless RedmineDrawio::Macros.svg_enabled? || not(diagramName =~ /.*\.svg$/i)
# defalts
@@ -184,6 +185,7 @@ module Macros
* png: diagram exported as png+xml (embedded source diagram)
* svg: diagram exported as svg+xml (embedded source diagram)
* xml: classic diagram xml source
+* drawio: same ax xml
The diagram name can contain a path. For example:
@@ -212,7 +214,7 @@ module Macros
diagramName = RedmineDrawio::Macros.strip_non_filename_chars(args.first).force_encoding("UTF-8")
return "«Please set a diagram name»".html_safe unless diagramName
- return "«Only png and svg diagram formats are supported»".html_safe unless diagramName =~ /.*(\.(png|svg))?$/i
+ return "«Only png, svg and xml diagram formats are supported»".html_safe unless diagramName =~ /.*(\.(png|svg|xml|drawio))?$/i
return "svg diagrams are disabled by the administrator" unless RedmineDrawio::Macros.svg_enabled? || not(diagramName =~ /.*\.svg$/i)
# Add an extension, if missing
diff --git a/spec/defaultImage.drawio b/spec/defaultImage.drawio
new file mode 100644
index 00000000..af1acccb
--- /dev/null
+++ b/spec/defaultImage.drawio
@@ -0,0 +1,2 @@
+
+