Refactor ZenWorkspaces to use _createNewTabForWorkspace method for preparing new workspace

This commit is contained in:
Mauro Balades
2024-07-14 00:31:09 +02:00
parent 8521a2d044
commit 8dd9b01048
5 changed files with 120 additions and 35 deletions

View File

@@ -102,6 +102,16 @@ var ZenWorkspaces = {
// Workspaces dialog UI management
openSaveDialog() {
let parentPanel = document.getElementById("PanelUI-zen-workspaces-multiview");
PanelUI.showSubView("PanelUI-zen-workspaces-create", parentPanel);
},
cancelWorkspaceCreation() {
let parentPanel = document.getElementById("PanelUI-zen-workspaces-multiview");
parentPanel.goBack();
},
async _propagateWorkspaceData() {
let currentContainer = document.getElementById("PanelUI-zen-workspaces-current-info");
let workspaceList = document.getElementById("PanelUI-zen-workspaces-list");
@@ -190,6 +200,10 @@ var ZenWorkspaces = {
// Workspaces management
get _workspaceInput() {
return document.getElementById("PanelUI-zen-workspaces-create-input");
},
_prepareNewWorkspace(window) {
document.documentElement.setAttribute("zen-workspace-id", window.uuid);
this._createNewTabForWorkspace(window);
@@ -200,6 +214,25 @@ var ZenWorkspaces = {
tab.setAttribute("zen-workspace-id", window.uuid);
},
async saveWorkspaceFromInput() {
let workspaceName = this._workspaceInput.value;
if (!workspaceName) {
return;
}
this._workspaceInput.value = "";
await this.createAndSaveWorkspace(workspaceName);
document.getElementById("PanelUI-zen-workspaces").hidePopup(true);
},
onWorkspaceNameChange(event) {
let button = document.getElementById("PanelUI-zen-workspaces-create-save");
if (this._workspaceInput.value === "") {
button.setAttribute("disabled", "true");
return;
}
button.removeAttribute("disabled");
},
async changeWorkspace(window) {
if (!this.workspaceEnabled) {
return;

View File

@@ -76,25 +76,39 @@
</vbox>
</panelview>
<panel id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left">
<vbox>
<vbox>
<hbox>
<h3 data-l10n-id="zen-panel-ui-current-window-text"></h3>
<hbox class="translations-panel-beta" role="image" aria-label="Beta">
<image class="translations-panel-beta-icon"></image>
<panel type="arrow" role="alertdialog" orient="vertical" id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left">
<panelmultiview id="PanelUI-zen-workspaces-multiview" mainViewId="PanelUI-zen-workspaces-view">
<panelview id="PanelUI-zen-workspaces-view" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
<vbox>
<hbox>
<h3 data-l10n-id="zen-panel-ui-current-window-text"></h3>
<hbox class="translations-panel-beta" role="image" aria-label="Beta">
<image class="translations-panel-beta-icon"></image>
</hbox>
<toolbarbutton id="PanelUI-zen-workspaces-new" oncommand="ZenWorkspaces.openSaveDialog();" class="subviewbutton">
<image></image>
</toolbarbutton>
</hbox>
</hbox>
<html:div id="PanelUI-zen-workspaces-current-info">
</html:div>
</vbox>
<vbox>
<h3 data-l10n-id="zen-panel-ui-workspaces-text"></h3>
<html:div id="PanelUI-zen-workspaces-list">
</html:div>
</vbox>
<toolbarbutton id="PanelUI-zen-workspaces-new" oncommand="ZenWorkspaces.createAndSaveWorkspace();" class="subviewbutton">
<image></image>
</toolbarbutton>
</vbox>
<html:div id="PanelUI-zen-workspaces-current-info">
</html:div>
</vbox>
<vbox>
<h3 data-l10n-id="zen-panel-ui-workspaces-text"></h3>
<html:div id="PanelUI-zen-workspaces-list">
</html:div>
</vbox>
</panelview>
<panelview id="PanelUI-zen-workspaces-create" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
<vbox>
<h1 data-l10n-id="zen-panel-ui-workspaces-create-text"></h1>
<html:input autofocus="true" id="PanelUI-zen-workspaces-create-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceNameChange(this);" />
</vbox>
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-create-footer">
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-create-save" oncommand="ZenWorkspaces.saveWorkspaceFromInput();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-save">
</button>
<button id="PanelUI-zen-workspaces-create-cancel" oncommand="ZenWorkspaces.cancelWorkspaceCreation();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-cancel">
</button>
</html:moz-button-group>
</panelview>
</panelmultiview>
</panel>