瀏覽代碼

6.0.2.12 release

Gaudenz Alder 8 年之前
父節點
當前提交
7e6e255c94

+ 4 - 0
ChangeLog

@@ -1,3 +1,7 @@
+18-JAN-2017: 6.0.2.12
+
+- Adds width, height in advanced export dialog
+
 18-JAN-2017: 6.0.2.11
 
 - Adds crop option for SVG and image export

+ 1 - 1
VERSION

@@ -1 +1 @@
-6.0.2.11
+6.0.2.12

+ 1 - 1
war/cache.manifest

@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 01/18/2017 08:29 AM
+# 01/18/2017 04:49 PM
 
 /app.html
 /index.html?offline=1

+ 2 - 2
war/export2.html

@@ -29,8 +29,8 @@
 		{
 			var graph = new Graph(document.getElementById('graph'));
 			data.border = parseInt(data.border) || 0;
-			data.w = parseInt(data.w) || 0;
-			data.h = parseInt(data.h) || 0;
+			data.w = parseFloat(data.w) || 0;
+			data.h = parseFloat(data.h) || 0;
 			
 			// Parses XML
 			var xmlDoc = mxUtils.parseXml(data.xml);

File diff suppressed because it is too large
+ 16 - 13
war/js/app.min.js


File diff suppressed because it is too large
+ 3 - 3
war/js/atlas-viewer.min.js


File diff suppressed because it is too large
+ 16 - 13
war/js/atlas.min.js


+ 1 - 1
war/js/diagramly/App.js

@@ -1469,7 +1469,7 @@ App.prototype.getThumbnail = function(width, success)
 			this.thumbImageCache = new Object();
 		}
 
-		// Uses new client-side canvas export for Chrome, Firefox and Opera
+		// Uses client-side canvas export
 		if (this.isExportToCanvas())
 		{
 		   	this.exportToCanvas(mxUtils.bind(this, function(canvas)

+ 3 - 2
war/js/diagramly/EditorUi.js

@@ -104,6 +104,7 @@
 			   		var ctx = canvas.getContext('2d');
 			   		ctx.drawImage(img, 0, 0);
 
+			   		// Works in Chrome, Firefox, Edge and Opera
 					// LATER: Fix security error caused by foreignObjects in Safari for toDataUri (tainted canvas)
 					var result = canvas.toDataURL('image/png');
 					EditorUi.prototype.useCanvasForExport = result != null && result.length > 6;
@@ -7318,8 +7319,8 @@
 		    {
 		    	var data = editorUi.getFileData(true, null, null, null, null, true);
 		    	var bounds = graph.getGraphBounds();
-				var w = Math.ceil(bounds.width * s / graph.view.scale);
-				var h = Math.ceil(bounds.height * s / graph.view.scale);
+				var w = Math.floor(bounds.width * s / graph.view.scale);
+				var h = Math.floor(bounds.height * s / graph.view.scale);
 				
 				if (data.length <= MAX_REQUEST_SIZE && w * h < MAX_AREA)
 				{

File diff suppressed because it is too large
+ 1 - 1
war/js/embed-static.min.js


+ 1 - 1
war/js/mxgraph/Actions.js

@@ -70,7 +70,7 @@ Actions.prototype.init = function()
 	}).isEnabled = isGraphEnabled;
 	this.addAction('save', function() { ui.saveFile(false); }, null, null, 'Ctrl+S').isEnabled = isGraphEnabled;
 	this.addAction('saveAs...', function() { ui.saveFile(true); }, null, null, 'Ctrl+Shift+S').isEnabled = isGraphEnabled;
-	this.addAction('export...', function() { ui.showDialog(new ExportDialog(ui).container, 300, 180, true, true); });
+	this.addAction('export...', function() { ui.showDialog(new ExportDialog(ui).container, 300, 230, true, true); });
 	this.addAction('editDiagram...', function()
 	{
 		var dlg = new EditDiagramDialog(ui);

+ 123 - 3
war/js/mxgraph/Dialogs.js

@@ -1694,6 +1694,12 @@ var EditDiagramDialog = function(editorUi)
 var ExportDialog = function(editorUi)
 {
 	var graph = editorUi.editor.graph;
+	var bounds = graph.getGraphBounds();
+	var scale = graph.view.scale;
+	
+	var width = Math.ceil(bounds.width / scale);
+	var height = Math.ceil(bounds.height / scale);
+
 	var row, td;
 	
 	var table = document.createElement('table');
@@ -1772,7 +1778,7 @@ var ExportDialog = function(editorUi)
 	row.appendChild(td);
 	
 	tbody.appendChild(row);
-
+	
 	row = document.createElement('tr');
 
 	td = document.createElement('td');
@@ -1790,6 +1796,42 @@ var ExportDialog = function(editorUi)
 	td.appendChild(zoomInput);
 	row.appendChild(td);
 
+	tbody.appendChild(row);
+
+	row = document.createElement('tr');
+
+	td = document.createElement('td');
+	td.style.fontSize = '10pt';
+	mxUtils.write(td, mxResources.get('width') + ':');
+	
+	row.appendChild(td);
+	
+	var widthInput = document.createElement('input');
+	widthInput.setAttribute('value', width);
+	widthInput.style.width = '180px';
+
+	td = document.createElement('td');
+	td.appendChild(widthInput);
+	row.appendChild(td);
+
+	tbody.appendChild(row);
+	
+	row = document.createElement('tr');
+	
+	td = document.createElement('td');
+	td.style.fontSize = '10pt';
+	mxUtils.write(td, mxResources.get('height') + ':');
+	
+	row.appendChild(td);
+	
+	var heightInput = document.createElement('input');
+	heightInput.setAttribute('value', height);
+	heightInput.style.width = '180px';
+
+	td = document.createElement('td');
+	td.appendChild(heightInput);
+	row.appendChild(td);
+
 	tbody.appendChild(row);
 	
 	row = document.createElement('tr');
@@ -1850,11 +1892,15 @@ var ExportDialog = function(editorUi)
 		if (imageFormatSelect.value === 'xml')
 		{
 			zoomInput.setAttribute('disabled', 'true');
+			widthInput.setAttribute('disabled', 'true');
+			heightInput.setAttribute('disabled', 'true');
 			borderInput.setAttribute('disabled', 'true');
 		}
 		else
 		{
 			zoomInput.removeAttribute('disabled');
+			widthInput.removeAttribute('disabled');
+			heightInput.removeAttribute('disabled');
 			borderInput.removeAttribute('disabled');
 		}
 		
@@ -1871,11 +1917,85 @@ var ExportDialog = function(editorUi)
 	mxEvent.addListener(imageFormatSelect, 'change', formatChanged);
 	formatChanged();
 
+	function checkValues()
+	{
+		if (widthInput.value * heightInput.value > MAX_AREA || widthInput.value <= 0)
+		{
+			widthInput.style.backgroundColor = 'red';
+		}
+		else
+		{
+			widthInput.style.backgroundColor = '';
+		}
+		
+		if (widthInput.value * heightInput.value > MAX_AREA || heightInput.value <= 0)
+		{
+			heightInput.style.backgroundColor = 'red';
+		}
+		else
+		{
+			heightInput.style.backgroundColor = '';
+		}
+	};
+
 	mxEvent.addListener(zoomInput, 'change', function()
 	{
-		zoomInput.value = Math.max(0, parseInt(zoomInput.value) || 100);
+		var s = Math.max(0, parseFloat(zoomInput.value) || 100) / 100;
+		zoomInput.value = parseFloat((s * 100).toFixed(2));
+		
+		if (width > 0)
+		{
+			widthInput.value = Math.floor(width * s);
+			heightInput.value = Math.floor(height * s);
+		}
+		else
+		{
+			zoomInput.value = '100';
+			widthInput.value = width;
+			heightInput.value = height;
+		}
+		
+		checkValues();
+	});
+
+	mxEvent.addListener(widthInput, 'change', function()
+	{
+		var s = parseInt(widthInput.value) / width;
+		
+		if (s > 0)
+		{
+			zoomInput.value = parseFloat((s * 100).toFixed(2));
+			heightInput.value = Math.floor(height * s);
+		}
+		else
+		{
+			zoomInput.value = '100';
+			widthInput.value = width;
+			heightInput.value = height;
+		}
+		
+		checkValues();
 	});
 
+	mxEvent.addListener(heightInput, 'change', function()
+	{
+		var s = parseInt(heightInput.value) / height;
+		
+		if (s > 0)
+		{
+			zoomInput.value = parseFloat((s * 100).toFixed(2));
+			widthInput.value = Math.floor(width * s);
+		}
+		else
+		{
+			zoomInput.value = '100';
+			widthInput.value = width;
+			heightInput.value = height;
+		}
+		
+		checkValues();
+	});
+	
 	row = document.createElement('tr');
 	td = document.createElement('td');
 	td.setAttribute('align', 'right');
@@ -1892,7 +2012,7 @@ var ExportDialog = function(editorUi)
 		{
 	    	var name = nameInput.value;
 			var format = imageFormatSelect.value;
-	    	var s = Math.max(0, parseInt(zoomInput.value) || 100) / 100;
+	    	var s = Math.max(0, parseFloat(zoomInput.value) || 100) / 100;
 			var b = Math.max(0, parseInt(borderInput.value));
 			var bg = graph.background;
 			

File diff suppressed because it is too large
+ 1 - 1
war/js/reader.min.js


File diff suppressed because it is too large
+ 3 - 3
war/js/viewer.min.js