From 2ab93acca87d965a5c3e41412e017c77a41cb982 Mon Sep 17 00:00:00 2001 From: Kazuki-Nakanishi Date: Fri, 16 Feb 2018 11:54:52 +0900 Subject: [PATCH] Revise the fix for the problem that the last flow tab can be deleted --- editor/js/ui/common/tabs.js | 4 +--- editor/js/ui/workspaces.js | 18 +++++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/editor/js/ui/common/tabs.js b/editor/js/ui/common/tabs.js index 6b266ba59..f66b95421 100644 --- a/editor/js/ui/common/tabs.js +++ b/editor/js/ui/common/tabs.js @@ -333,9 +333,7 @@ RED.tabs = (function() { previousTab: activatePreviousTab, resize: updateTabWidths, count: function() { - var numOfTabs = ul.find("li.red-ui-tab").size(); - var numOfSubflow = ul.find('img[src="red/images/subflow_tab.png"]').size(); - return numOfTabs - numOfSubflow; + return ul.find("li.red-ui-tab").size(); }, contains: function(id) { return ul.find("a[href='#"+id+"']").length > 0; diff --git a/editor/js/ui/workspaces.js b/editor/js/ui/workspaces.js index 5b2e301fe..d274735e4 100644 --- a/editor/js/ui/workspaces.js +++ b/editor/js/ui/workspaces.js @@ -43,7 +43,7 @@ RED.workspaces = (function() { return ws; } function deleteWorkspace(ws) { - if (workspace_tabs.count() == 1) { + if (workspaceTabCount === 1) { return; } removeWorkspace(ws); @@ -65,7 +65,7 @@ RED.workspaces = (function() { buttons: [ { id: "node-dialog-delete", - class: 'leftButton'+((workspace_tabs.count() == 1)?" disabled":""), + class: 'leftButton'+((workspaceTabCount === 1)?" disabled":""), text: RED._("common.label.delete"), //'', click: function() { deleteWorkspace(workspace); @@ -214,6 +214,7 @@ RED.workspaces = (function() { var workspace_tabs; + var workspaceTabCount = 0; function createWorkspaceTabs() { workspace_tabs = RED.tabs.create({ id: "workspace-tabs", @@ -240,18 +241,20 @@ RED.workspaces = (function() { } }, onadd: function(tab) { + workspaceTabCount = tab.type === "tab"?workspaceTabCount+1:workspaceTabCount; $(' ').prependTo("#red-ui-tab-"+(tab.id.replace(".","-"))+" .red-ui-tab-label"); if (tab.disabled) { $("#red-ui-tab-"+(tab.id.replace(".","-"))).addClass('workspace-disabled'); } - RED.menu.setDisabled("menu-item-workspace-delete",workspace_tabs.count() <= 1); - if (workspace_tabs.count() === 1) { + RED.menu.setDisabled("menu-item-workspace-delete",workspaceTabCount <= 1); + if (workspaceTabCount === 1) { showWorkspace(); } }, onremove: function(tab) { - RED.menu.setDisabled("menu-item-workspace-delete",workspace_tabs.count() <= 1); - if (workspace_tabs.count() === 0) { + workspaceTabCount = tab.type === "tab"?workspaceTabCount-1:workspaceTabCount; + RED.menu.setDisabled("menu-item-workspace-delete",workspaceTabCount <= 1); + if (workspaceTabCount === 0) { hideWorkspace(); } }, @@ -266,6 +269,7 @@ RED.workspaces = (function() { addWorkspace(); } }); + workspaceTabCount = 0; } function showWorkspace() { $("#workspace .red-ui-tabs").show() @@ -334,7 +338,7 @@ RED.workspaces = (function() { return workspace_tabs.contains(id); }, count: function() { - return workspace_tabs.count(); + return workspaceTabCount; }, active: function() { return activeWorkspace