Commit 3959cc596a193b1ceb9d0a359b83018ff1124ca1

Authored by ww
1 parent 97e2aed5

perf: add save button && hidden cell tooltip

... ... @@ -258,7 +258,9 @@ App.DROPBOX_URL = window.DRAWIO_BASE_URL + '/thingskit-drawio/js/dropbox/Dropbox
258 258 /**
259 259 * Sets URL to load the Dropbox dropins JS from.
260 260 */
261   -App.DROPINS_URL = 'https://www.dropbox.com/static/api/2/dropins.js';
  261 +// App.DROPINS_URL = 'https://www.dropbox.com/static/api/2/dropins.js';
  262 +// TODO thingsKit
  263 +App.DROPINS_URL = '';
262 264
263 265 /**
264 266 * OneDrive Client JS (file/folder picker). This is a slightly modified version to allow using accessTokens
... ... @@ -5859,6 +5861,29 @@ App.prototype.updateButtonContainer = function()
5859 5861 }));
5860 5862 this.buttonContainer.appendChild(this.shareButton);
5861 5863
  5864 + // TODO thingsKit 保存按钮
  5865 + this.saveButton = document.createElement('div');
  5866 + this.saveButton.className = 'geBtn gePrimaryBtn';
  5867 + this.saveButton.style.display = 'inline-block';
  5868 + this.saveButton.style.backgroundColor = '#F2931E';
  5869 + this.saveButton.style.borderColor = '#F08705';
  5870 + this.saveButton.style.backgroundImage = 'none';
  5871 + this.saveButton.style.marginTop = '-10px';
  5872 + this.saveButton.style.lineHeight = '28px';
  5873 + this.saveButton.style.minWidth = '0px';
  5874 + this.saveButton.style.cssFloat = 'right';
  5875 + this.saveButton.setAttribute('title', '保存');
  5876 + mxUtils.write(this.saveButton, '保存');
  5877 + mxEvent.addListener(this.saveButton, 'click', mxUtils.bind(this, function()
  5878 + {
  5879 + this.currentFile.ui.actions.get(
  5880 + (this.currentFile.mode == null || !this.currentFile.isEditable())
  5881 + ? 'saveAs'
  5882 + : 'save')
  5883 + .funct();
  5884 + }));
  5885 + this.buttonContainer.appendChild(this.saveButton);
  5886 +
5862 5887
5863 5888 // this.shareButton = document.createElement('div');
5864 5889 // this.shareButton.className = 'geBtn gePrimaryBtn';
... ... @@ -5901,6 +5926,8 @@ App.prototype.updateButtonContainer = function()
5901 5926 {
5902 5927 this.shareButton.parentNode.removeChild(this.shareButton);
5903 5928 this.shareButton = null;
  5929 + this.saveButton.parentNode.removeChild(this.saveButton);
  5930 + this.saveButton = null;
5904 5931 }
5905 5932
5906 5933 //Fetch notifications
... ...
... ... @@ -350,34 +350,52 @@
350 350 }
351 351
352 352 /**
  353 + * @description 实例化echarts
  354 + * @param graph
  355 + */
  356 + Sidebar.prototype.initChartInstance = function (graph) {
  357 + const enumConst = Sidebar.prototype.enumConst
  358 + const allCell = graph.getDefaultParent().children
  359 + const domIdMapping = new Map()
  360 + for (const cell of allCell) {
  361 + const chartInstanceId = graph.getAttributeForCell(cell, enumConst.CHART_CELL_ID)
  362 + if (Sidebar.prototype.isChartCell(cell) && chartInstanceId) {
  363 + const width = graph.getAttributeForCell(cell, enumConst.CHART_CELL_WIDTH)
  364 + const height = graph.getAttributeForCell(cell, enumConst.CHART_CELL_HEIGHT)
  365 + const chartType = graph.getAttributeForCell(cell, enumConst.CHART_TYPE_KEY)
  366 + domIdMapping.set(chartInstanceId, { width, height, chartType })
  367 + }
  368 + }
  369 + const chartsDomList = document.querySelectorAll(`.${ enumConst.CHART_CONTAINER_CLS }`)
  370 + for (const chartDom of chartsDomList) {
  371 + const id = chartDom.getAttribute('id')
  372 + const { width, height, chartType } = domIdMapping.get(id)
  373 + Sidebar.prototype.generatorEChartInstance(id, width, height, chartType)
  374 + }
  375 + }
  376 +
  377 + /**
353 378 * @description 初始化图表
354 379 */
355 380 const openFileHandle = EditorUi.prototype.openFileHandle
356 381 EditorUi.prototype.openFileHandle = function () {
357   - const graph = this.editor.graph
358   - const enumConst = Sidebar.prototype.enumConst
359 382 try {
360 383 openFileHandle.apply(this, arguments)
361 384 } finally {
362   - const allCell = graph.getDefaultParent().children
363   - const domIdMapping = new Map()
364   - for (const cell of allCell) {
365   - const chartInstanceId = graph.getAttributeForCell(cell, enumConst.CHART_CELL_ID)
366   - if (Sidebar.prototype.isChartCell(cell) && chartInstanceId) {
367   - const width = graph.getAttributeForCell(cell, enumConst.CHART_CELL_WIDTH)
368   - const height = graph.getAttributeForCell(cell, enumConst.CHART_CELL_HEIGHT)
369   - const chartType = graph.getAttributeForCell(cell, enumConst.CHART_TYPE_KEY)
370   - domIdMapping.set(chartInstanceId, { width, height, chartType })
371   - }
372   - }
373   - const chartsDomList = document.querySelectorAll(`.${ enumConst.CHART_CONTAINER_CLS }`)
374   - for (const chartDom of chartsDomList) {
375   - const id = chartDom.getAttribute('id')
376   - const { width, height, chartType } = domIdMapping.get(id)
377   - Sidebar.prototype.generatorEChartInstance(id, width, height, chartType)
378   - }
  385 + const graph = this.editor.graph
  386 + Sidebar.prototype.initChartInstance(graph)
379 387 }
380 388 }
381 389
  390 + /**
  391 + * @description 实例化 echarts
  392 + */
  393 + const refresh = Graph.prototype.refresh
  394 + Graph.prototype.refresh = function () {
  395 + refresh.apply(this, arguments)
  396 + if (!arguments.length) {
  397 + Sidebar.prototype.initChartInstance(this)
  398 + }
  399 + }
382 400 })();
383 401
... ...
... ... @@ -1051,7 +1051,8 @@ Graph = function(container, model, renderHint, stylesheet, themes, standalone)
1051 1051 var tooltipHandlerShow = this.tooltipHandler.show;
1052 1052 this.tooltipHandler.show = function()
1053 1053 {
1054   - tooltipHandlerShow.apply(this, arguments);
  1054 + // TODO thingsKit hidde cell tooltip
  1055 + // tooltipHandlerShow.apply(this, arguments);
1055 1056
1056 1057 if (this.div != null)
1057 1058 {
... ...