From c65eb97948c9b66f723952b55b130c4fd3e9f196 Mon Sep 17 00:00:00 2001 From: McMatts Date: Fri, 24 May 2019 15:08:54 +0100 Subject: [PATCH] Show jump list to other space documents Closes #219 Jump to documents within space when viewing a document. --- gui/app/components/document/documents-list.js | 36 ++ gui/app/components/ui/ui-toolbar-button.js | 2 +- gui/app/constants/constants.js | 1 + gui/app/pods/document/index/template.hbs | 4 +- gui/app/pods/document/revisions/controller.js | 4 + gui/app/pods/document/revisions/template.hbs | 7 +- gui/app/pods/document/section/controller.js | 3 +- gui/app/pods/document/section/template.hbs | 7 +- gui/app/pods/document/settings/controller.js | 4 + gui/app/pods/document/settings/template.hbs | 7 +- gui/app/pods/folder/block/controller.js | 4 + gui/app/pods/folder/block/template.hbs | 11 +- gui/app/pods/folder/index/controller.js | 17 +- gui/app/pods/folder/index/template.hbs | 7 +- gui/app/pods/folder/settings/controller.js | 4 + gui/app/pods/folder/settings/template.hbs | 7 +- gui/app/pods/folders/template.hbs | 4 +- gui/app/styles/core/icon-ui.scss | 408 +++++++++--------- gui/app/styles/core/ui/ui-toolbar.scss | 14 +- .../components/document/document-toolbar.hbs | 2 +- .../components/document/documents-list.hbs | 17 + gui/public/assets/font/dmzui.eot | Bin 16768 -> 17156 bytes gui/public/assets/font/dmzui.svg | 6 + gui/public/assets/font/dmzui.ttf | Bin 16612 -> 17000 bytes gui/public/assets/font/dmzui.woff | Bin 8816 -> 8920 bytes gui/public/assets/font/dmzui.woff2 | Bin 7272 -> 7348 bytes 26 files changed, 341 insertions(+), 235 deletions(-) create mode 100644 gui/app/components/document/documents-list.js create mode 100644 gui/app/templates/components/document/documents-list.hbs diff --git a/gui/app/components/document/documents-list.js b/gui/app/components/document/documents-list.js new file mode 100644 index 00000000..55c91fa6 --- /dev/null +++ b/gui/app/components/document/documents-list.js @@ -0,0 +1,36 @@ +// Copyright 2016 Documize Inc. . All rights reserved. +// +// This software (Documize Community Edition) is licensed under +// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html +// +// You can operate outside the AGPL restrictions by purchasing +// Documize Enterprise Edition and obtaining a commercial license +// by contacting . +// +// https://documize.com + +import { inject as service } from '@ember/service'; +import AuthMixin from '../../mixins/auth'; +import Component from '@ember/component'; + +export default Component.extend(AuthMixin, { + router: service(), + documentSvc: service('document'), + docs: null, + space: null, + + didReceiveAttrs() { + this._super(...arguments); + + this.get('documentSvc').getAllBySpace(this.get('space.id')).then((docs) => { + this.set('docs', docs); + this.classNames = ['dicon', this.get('constants').Icon.ArrowSmallDown]; + }); + }, + + actions: { + onSpace() { + this.router.transitionTo('folder.index', this.space.id, this.space.slug); + } + } +}); diff --git a/gui/app/components/ui/ui-toolbar-button.js b/gui/app/components/ui/ui-toolbar-button.js index c0faaf31..b77dea58 100644 --- a/gui/app/components/ui/ui-toolbar-button.js +++ b/gui/app/components/ui/ui-toolbar-button.js @@ -39,7 +39,7 @@ export default Component.extend({ let bc = 'button'; if (this.themed) { - bc += 'theme'; + bc += '-theme'; } else { bc += '-' + this.color; } diff --git a/gui/app/constants/constants.js b/gui/app/constants/constants.js index af7d2c1c..c5e2428c 100644 --- a/gui/app/constants/constants.js +++ b/gui/app/constants/constants.js @@ -238,6 +238,7 @@ let constants = EmberObject.extend({ Link: 'dicon-link', ListBullet: 'dicon-list-bullet-2', Locked: 'dicon-lock', + MoreHorizontal: 'dicon-menu-5', NotAllowed: 'dicon-ban', PDF: 'dicon-pdf', Print: 'dicon-print', diff --git a/gui/app/pods/document/index/template.hbs b/gui/app/pods/document/index/template.hbs index 35e8f0fe..8e451538 100644 --- a/gui/app/pods/document/index/template.hbs +++ b/gui/app/pods/document/index/template.hbs @@ -1,9 +1,7 @@
- {{#link-to "folder.index" folder.id folder.slug}} - {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=folder.name}} - {{/link-to}} +
diff --git a/gui/app/pods/document/revisions/controller.js b/gui/app/pods/document/revisions/controller.js index 622b106b..dfa861bb 100644 --- a/gui/app/pods/document/revisions/controller.js +++ b/gui/app/pods/document/revisions/controller.js @@ -19,6 +19,10 @@ export default Controller.extend(Notifier, { selectedRevision: null, actions: { + onBack() { + this.get('router').transitionTo('document.index'); + }, + onRevision(revision) { this.set('selectedRevision', revision); }, diff --git a/gui/app/pods/document/revisions/template.hbs b/gui/app/pods/document/revisions/template.hbs index e418f847..c58ed5d1 100644 --- a/gui/app/pods/document/revisions/template.hbs +++ b/gui/app/pods/document/revisions/template.hbs @@ -1,9 +1,10 @@
- {{#link-to "document.index"}} - {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=document.name}} - {{/link-to}} + {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=false + icon=constants.Icon.ArrowLeft label=document.name onClick=(action "onBack")}} + {{/ui/ui-toolbar}}
diff --git a/gui/app/pods/document/section/controller.js b/gui/app/pods/document/section/controller.js index b7a39b97..76c5804d 100644 --- a/gui/app/pods/document/section/controller.js +++ b/gui/app/pods/document/section/controller.js @@ -13,6 +13,7 @@ import { inject as service } from '@ember/service'; import Controller from '@ember/controller'; export default Controller.extend({ + router: service(), documentService: service('document'), actions: { @@ -56,6 +57,6 @@ export default Controller.extend({ this.set('attachments', files); }); }); - }, + }, } }); diff --git a/gui/app/pods/document/section/template.hbs b/gui/app/pods/document/section/template.hbs index 3e4fa997..08ba7656 100644 --- a/gui/app/pods/document/section/template.hbs +++ b/gui/app/pods/document/section/template.hbs @@ -1,9 +1,10 @@
- {{#link-to "document.index" model.folder.id model.folder.slug model.document.id model.document.slug}} - {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=model.document.name}} - {{/link-to}} + {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=false + icon=constants.Icon.ArrowLeft label=model.document.name onClick=(action "onCancel")}} + {{/ui/ui-toolbar}}
diff --git a/gui/app/pods/document/settings/controller.js b/gui/app/pods/document/settings/controller.js index 7b4c992a..a8bee9fe 100644 --- a/gui/app/pods/document/settings/controller.js +++ b/gui/app/pods/document/settings/controller.js @@ -23,6 +23,10 @@ export default Controller.extend(Notifier, { tab: 'general', actions: { + onBack() { + this.get('router').transitionTo('document.index'); + }, + onTab(view) { this.set('tab', view); }, diff --git a/gui/app/pods/document/settings/template.hbs b/gui/app/pods/document/settings/template.hbs index c40d4ce9..547c1d15 100644 --- a/gui/app/pods/document/settings/template.hbs +++ b/gui/app/pods/document/settings/template.hbs @@ -1,9 +1,10 @@
- {{#link-to "document.index"}} - {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=model.document.name}} - {{/link-to}} + {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=false + icon=constants.Icon.ArrowLeft label=model.document.name onClick=(action "onBack")}} + {{/ui/ui-toolbar}}
diff --git a/gui/app/pods/folder/block/controller.js b/gui/app/pods/folder/block/controller.js index e5b4ad12..c192409e 100644 --- a/gui/app/pods/folder/block/controller.js +++ b/gui/app/pods/folder/block/controller.js @@ -18,6 +18,10 @@ export default Controller.extend(Notifier, { sectionSvc: service('section'), actions: { + onBack() { + this.get('router').transitionTo('folder.settings'); + }, + onCancel( /*page*/ ) { this.get('router').transitionTo('folder.settings', {queryParams: {tab: 'blocks'}}); }, diff --git a/gui/app/pods/folder/block/template.hbs b/gui/app/pods/folder/block/template.hbs index ba520661..75f88313 100644 --- a/gui/app/pods/folder/block/template.hbs +++ b/gui/app/pods/folder/block/template.hbs @@ -1,9 +1,10 @@
- {{#link-to "folder.settings"}} - {{ui/ui-button color=constants.Color.Gray outline=true uppercase=false icon=constants.Icon.ArrowLeft label=model.folder.name}} - {{/link-to}} + {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=false + icon=constants.Icon.ArrowLeft label=model.space.name onClick=(action "onBack")}} + {{/ui/ui-toolbar}}
@@ -12,7 +13,7 @@ @@ -23,7 +24,7 @@ desc="Content blocks provide re-usable content that can be inserted into any document" icon=constants.Icon.Integrations}} - {{document/block-editor document=model.document folder=model.folder block=model.block + {{document/block-editor document=model.document folder=model.space block=model.block onCancel=(action "onCancel") onAction=(action "onAction")}} diff --git a/gui/app/pods/folder/index/controller.js b/gui/app/pods/folder/index/controller.js index 452a2e0e..bfa6d356 100644 --- a/gui/app/pods/folder/index/controller.js +++ b/gui/app/pods/folder/index/controller.js @@ -15,6 +15,7 @@ import NotifierMixin from '../../../mixins/notifier'; import Controller from '@ember/controller'; export default Controller.extend(NotifierMixin, { + router: service(), documentService: service('document'), folderService: service('folder'), localStorage: service('localStorage'), @@ -25,7 +26,7 @@ export default Controller.extend(NotifierMixin, { filteredDocs: null, // eslint-disable-next-line ember/avoid-leaking-state-in-ember-objects sortBy: { - name: true, + name: true, created: false, updated: false, asc: true, @@ -33,6 +34,10 @@ export default Controller.extend(NotifierMixin, { }, actions: { + onBack() { + this.get('router').transitionTo('folders'); + }, + onRefresh() { this.get('target._routerMicrolib').refresh(); }, @@ -93,25 +98,25 @@ export default Controller.extend(NotifierMixin, { if (_.isNull(docs)) return; - if (sortBy.name) { + if (sortBy.name) { docs = docs.sortBy('name'); ls.storeSessionItem('space.sortBy', 'name'); } - if (sortBy.created) { + if (sortBy.created) { docs = docs.sortBy('created'); ls.storeSessionItem('space.sortBy', 'created'); } - if (sortBy.updated) { + if (sortBy.updated) { docs = docs.sortBy('revised'); ls.storeSessionItem('space.sortBy', 'updated'); } - if (sortBy.desc) { + if (sortBy.desc) { docs = docs.reverseObjects(); ls.storeSessionItem('space.sortOrder', 'desc'); } else { ls.storeSessionItem('space.sortOrder', 'asc'); } - + this.set('filteredDocs', docs); } } diff --git a/gui/app/pods/folder/index/template.hbs b/gui/app/pods/folder/index/template.hbs index b994f65f..b7af8aad 100644 --- a/gui/app/pods/folder/index/template.hbs +++ b/gui/app/pods/folder/index/template.hbs @@ -1,9 +1,10 @@
- {{#link-to "folders"}} - {{ui/ui-button themed=true uppercase=true icon=constants.Icon.ArrowLeft label=constants.Label.Spaces}} - {{/link-to}} + {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=true + icon=constants.Icon.ArrowLeft label=constants.Label.Spaces onClick=(action "onBack")}} + {{/ui/ui-toolbar}}
diff --git a/gui/app/pods/folder/settings/controller.js b/gui/app/pods/folder/settings/controller.js index 393d3c3d..84c31555 100644 --- a/gui/app/pods/folder/settings/controller.js +++ b/gui/app/pods/folder/settings/controller.js @@ -22,6 +22,10 @@ export default Controller.extend(NotifierMixin, { tab: 'general', actions: { + onBack() { + this.get('router').transitionTo('folder.index'); + }, + onTab(view) { this.set('tab', view); }, diff --git a/gui/app/pods/folder/settings/template.hbs b/gui/app/pods/folder/settings/template.hbs index 7e3068d4..c25a1bc2 100644 --- a/gui/app/pods/folder/settings/template.hbs +++ b/gui/app/pods/folder/settings/template.hbs @@ -1,9 +1,10 @@
- {{#link-to "folder.index"}} - {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=model.folder.name}} - {{/link-to}} + {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=false + icon=constants.Icon.ArrowLeft label=model.folder.name onClick=(action "onBack")}} + {{/ui/ui-toolbar}}
diff --git a/gui/app/pods/folders/template.hbs b/gui/app/pods/folders/template.hbs index fe42d51a..4e5c8bfd 100644 --- a/gui/app/pods/folders/template.hbs +++ b/gui/app/pods/folders/template.hbs @@ -7,8 +7,8 @@ {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} {{#if session.isEditor}} {{ui/ui-toolbar-button icon=constants.Icon.Plus color=constants.Color.Green - label=constants.Label.Space - onClick=(action "onShowModal")}} + label=constants.Label.Space onClick=(action "onShowModal")}} + {{ui/ui-toolbar-divider}} {{/if}} {{#if session.isAdmin}} {{ui/ui-toolbar-icon icon=constants.Icon.Settings color=constants.Color.Green diff --git a/gui/app/styles/core/icon-ui.scss b/gui/app/styles/core/icon-ui.scss index 5fdb44d5..ed1d46ff 100644 --- a/gui/app/styles/core/icon-ui.scss +++ b/gui/app/styles/core/icon-ui.scss @@ -160,269 +160,277 @@ icons -------------------------*/ .dicon-delete-key::before { - content: "\ea02"; - } + content: "\ea02"; +} - .dicon-i-remove::before { - content: "\ea03"; - } +.dicon-i-remove::before { + content: "\ea03"; +} - .dicon-bin::before { - content: "\ea04"; - } +.dicon-bin::before { + content: "\ea04"; +} - .dicon-attachment::before { - content: "\ea06"; - } +.dicon-attachment::before { + content: "\ea06"; +} - .dicon-pen-2::before { - content: "\ea08"; - } +.dicon-pen-2::before { + content: "\ea08"; +} - .dicon-settings-gear::before { - content: "\ea0c"; - } +.dicon-settings-gear::before { + content: "\ea0c"; +} - .dicon-small-down::before { - content: "\ea11"; - } +.dicon-small-down::before { + content: "\ea11"; +} - .dicon-small-left::before { - content: "\ea12"; - } +.dicon-small-left::before { + content: "\ea12"; +} - .dicon-small-right::before { - content: "\ea13"; - } +.dicon-small-right::before { + content: "\ea13"; +} - .dicon-small-up::before { - content: "\ea14"; - } +.dicon-small-up::before { + content: "\ea14"; +} - .dicon-small-triangle-down::before { - content: "\ea15"; - } +.dicon-small-triangle-down::before { + content: "\ea15"; +} - .dicon-small-triangle-left::before { - content: "\ea16"; - } +.dicon-small-triangle-left::before { + content: "\ea16"; +} - .dicon-small-triangle-right::before { - content: "\ea17"; - } +.dicon-small-triangle-right::before { + content: "\ea17"; +} - .dicon-small-triangle-up::before { - content: "\ea18"; - } +.dicon-small-triangle-up::before { + content: "\ea18"; +} - .dicon-arrow-down-2::before { - content: "\ea19"; - } +.dicon-arrow-down-2::before { + content: "\ea19"; +} - .dicon-arrow-left-2::before { - content: "\ea1a"; - } +.dicon-arrow-left-2::before { + content: "\ea1a"; +} - .dicon-arrow-right-2::before { - content: "\ea1b"; - } +.dicon-arrow-right-2::before { + content: "\ea1b"; +} - .dicon-arrow-up-2::before { - content: "\ea1c"; - } +.dicon-arrow-up-2::before { + content: "\ea1c"; +} - .dicon-chart-bar-33::before { - content: "\ea1d"; - } +.dicon-chart-bar-33::before { + content: "\ea1d"; +} - .dicon-geometry::before { - content: "\ea1e"; - } +.dicon-geometry::before { + content: "\ea1e"; +} - .dicon-bookmark::before { - content: "\ea1f"; - } +.dicon-bookmark::before { + content: "\ea1f"; +} - .dicon-bookmark-delete::before { - content: "\ea20"; - } +.dicon-bookmark-delete::before { + content: "\ea20"; +} - .dicon-bookmark-add::before { - content: "\ea22"; - } +.dicon-bookmark-add::before { + content: "\ea22"; +} - .dicon-pdf::before { - content: "\ea23"; - } +.dicon-pdf::before { + content: "\ea23"; +} - .dicon-print::before { - content: "\ea24"; - } +.dicon-print::before { + content: "\ea24"; +} - .dicon-list-bullet-2::before { - content: "\ea25"; - } +.dicon-list-bullet-2::before { + content: "\ea25"; +} - .dicon-magnifier::before { - content: "\ea26"; - } +.dicon-magnifier::before { + content: "\ea26"; +} - .dicon-b-chat::before { - content: "\ea27"; - } +.dicon-b-chat::before { + content: "\ea27"; +} - .dicon-filter-tool::before { - content: "\ea28"; - } +.dicon-filter-tool::before { + content: "\ea28"; +} - .dicon-grid-interface::before { - content: "\ea29"; - } +.dicon-grid-interface::before { + content: "\ea29"; +} - .dicon-lock::before { - content: "\ea2a"; - } +.dicon-lock::before { + content: "\ea2a"; +} - .dicon-unlocked::before { - content: "\ea2b"; - } +.dicon-unlocked::before { + content: "\ea2b"; +} - .dicon-menu-7::before { - content: "\ea2c"; - } +.dicon-menu-7::before { + content: "\ea2c"; +} - .dicon-network-connection::before { - content: "\ea2d"; - } +.dicon-network-connection::before { + content: "\ea2d"; +} - .dicon-e-add::before { - content: "\ea2e"; - } +.dicon-e-add::before { + content: "\ea2e"; +} - .dicon-data-upload::before { - content: "\ea2f"; - } +.dicon-data-upload::before { + content: "\ea2f"; +} - .dicon-upload::before { - content: "\ea30"; - } +.dicon-upload::before { + content: "\ea30"; +} - .dicon-flag::before { - content: "\ea31"; - } +.dicon-flag::before { + content: "\ea31"; +} - .dicon-globe::before { - content: "\ea32"; - } +.dicon-globe::before { + content: "\ea32"; +} - .dicon-single-01::before { - content: "\ea33"; - } +.dicon-single-01::before { + content: "\ea33"; +} - .dicon-multiple-19::before { - content: "\ea34"; - } +.dicon-multiple-19::before { + content: "\ea34"; +} - .dicon-box::before { - content: "\ea35"; - } +.dicon-box::before { + content: "\ea35"; +} - .dicon-time::before { - content: "\ea37"; - } +.dicon-time::before { + content: "\ea37"; +} - .dicon-split-37::before { - content: "\ea38"; - } +.dicon-split-37::before { + content: "\ea38"; +} - .dicon-sort-tool::before { - content: "\ea39"; - } +.dicon-sort-tool::before { + content: "\ea39"; +} - .dicon-button-2::before { - content: "\ea3a"; - } +.dicon-button-2::before { + content: "\ea3a"; +} - .dicon-menu-6::before { - content: "\ea40"; - } +.dicon-menu-6::before { + content: "\ea40"; +} - .dicon-pulse::before { - content: "\ea41"; - } +.dicon-pulse::before { + content: "\ea41"; +} - .dicon-copy::before { - content: "\ea43"; - } +.dicon-copy::before { + content: "\ea43"; +} - .dicon-menu-8::before { - content: "\ea48"; - } +.dicon-menu-8::before { + content: "\ea48"; +} - .dicon-send::before { - content: "\ea49"; - } +.dicon-send::before { + content: "\ea49"; +} - .dicon-email::before { - content: "\ea4a"; - } +.dicon-email::before { + content: "\ea4a"; +} - .dicon-download::before { - content: "\ea4b"; - } +.dicon-download::before { + content: "\ea4b"; +} - .dicon-database::before { - content: "\ea4c"; - } +.dicon-database::before { + content: "\ea4c"; +} - .dicon-notification::before { - content: "\ea4d"; - } +.dicon-notification::before { + content: "\ea4d"; +} - .dicon-handshake::before { - content: "\ea4e"; - } +.dicon-handshake::before { + content: "\ea4e"; +} - .dicon-add-27::before { - content: "\ea4f"; - } +.dicon-add-27::before { + content: "\ea4f"; +} - .dicon-delete-28::before { - content: "\ea50"; - } +.dicon-delete-28::before { + content: "\ea50"; +} - .dicon-i-check::before { - content: "\ea51"; - } +.dicon-i-check::before { + content: "\ea51"; +} - .dicon-shape-rectangle::before { - content: "\ea52"; - } +.dicon-shape-rectangle::before { + content: "\ea52"; +} - .dicon-ban::before { - content: "\ea53"; - } +.dicon-ban::before { + content: "\ea53"; +} - .dicon-check-single::before { - content: "\ea54"; - } +.dicon-check-single::before { + content: "\ea54"; +} - .dicon-check-double::before { - content: "\ea55"; - } +.dicon-check-double::before { + content: "\ea55"; +} - .dicon-check::before { - content: "\ea56"; - } +.dicon-check::before { + content: "\ea56"; +} - .dicon-preview::before { - content: "\ea58"; - } +.dicon-preview::before { + content: "\ea58"; +} - .dicon-link::before { - content: "\ea59"; - } +.dicon-link::before { + content: "\ea59"; +} - .dicon-b-check::before { - content: "\ea5a"; - } +.dicon-b-check::before { + content: "\ea5a"; +} + +.dicon-e-delete::before { + content: "\ea5b"; +} + +.dicon-menu-5::before { + content: "\ea5c"; +} diff --git a/gui/app/styles/core/ui/ui-toolbar.scss b/gui/app/styles/core/ui/ui-toolbar.scss index eedd5873..72b63897 100644 --- a/gui/app/styles/core/ui/ui-toolbar.scss +++ b/gui/app/styles/core/ui/ui-toolbar.scss @@ -115,7 +115,7 @@ white-space: nowrap; text-align: center; padding: 0.375rem 0.75rem; - margin: 0 0.5rem; + // margin: 0 0.5rem; font-weight: 500; font-size: 1rem; border: 1px solid transparent; @@ -147,6 +147,18 @@ } } + .button-theme { + @extend %button; + background-color: $theme-500; + color: $color-white; + + &:hover { + color: $color-white; + border-color: $theme-600; + background-color: $theme-600; + } + } + .button-green { @extend %button; background-color: map-get($green-shades, 600); diff --git a/gui/app/templates/components/document/document-toolbar.hbs b/gui/app/templates/components/document/document-toolbar.hbs index f4a51cdd..c4f92ac0 100644 --- a/gui/app/templates/components/document/document-toolbar.hbs +++ b/gui/app/templates/components/document/document-toolbar.hbs @@ -1,4 +1,4 @@ -{{#ui/ui-toolbar dark=false light=false raised=false large=true bordered=false}} +{{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} {{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}} {{#if permissions.documentEdit}} {{#ui/ui-toolbar-dropdown label="Actions" arrow=true}} diff --git a/gui/app/templates/components/document/documents-list.hbs b/gui/app/templates/components/document/documents-list.hbs new file mode 100644 index 00000000..018fb2cf --- /dev/null +++ b/gui/app/templates/components/document/documents-list.hbs @@ -0,0 +1,17 @@ +{{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}} + {{ui/ui-toolbar-button themed=true uppercase=false + icon=constants.Icon.ArrowLeft label=space.name onClick=(action "onSpace")}} + {{#if docs}} + {{#ui/ui-toolbar-icon icon=constants.Icon.ArrowSmallDown}} + {{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false placement="bottom-middle"}} + + {{/attach-popover}} + {{/ui/ui-toolbar-icon}} + {{/if}} +{{/ui/ui-toolbar}} diff --git a/gui/public/assets/font/dmzui.eot b/gui/public/assets/font/dmzui.eot index 00998dbddc2503d1b25439aa8f30211ea5cfa7e7..ea2447d00019d019f81c663add2e115302a2d40e 100644 GIT binary patch delta 619 zcmZvYPiPZC6vn?dvzgswBdIp#PX#NaNj;>B+NLF~X|YX|)}s_@QzW$8=8&`jqeKr@ zR7w#M${hXIs|OFVco7eJsPtyRg7hF15f7pV1)+$bZ(H>s4*cfLeDBRSZ|3TCy0JjY z7zD~EmQ==APp%9v4b0Dv0dxz%=w!82i+-MY3y2?puQ5}(G##RSj{v^`bcV}LX=+dQ zau3&TGMO?9LJ%9`8Pis-)*E^A=NI;S&%`Qolck4m?p_0|I_Ga!ON|J6}I_rmlegARx!}SxO`eATDNxSCZ@JLVe$0djhbr>)!o8Q7==R z3i>HMrlMOBZPfGokXPViB$Hf)uMZGCsn?uO+#Y(?0 zw)C1|hqxy;I_=Fo^6siHB_kil0S^puEbf53{$$-W;#XP%?nVErqxqeNx3CBs=vLuY zI@X=(JWPpz5b}fcrUj{lltM|tUi<@mv%oTTBY`dqU<9MODYjRyWt9j=^vmp#iRgY( z?T4s6m7};Bl!8bqE847V+Xzm0!arLw{-&RpGU%5Uk!er=clkiC_9pa3??GG2rXZ0e p&4A$!_C*B$@>p)spaPwA-{tOzX3OcAaw<;UQB`O5LPr;O{tMrxbw~gJ delta 346 zcmZo^V{B+#HgmN76eePLi= zjY-d`OxtC5O_qUy;|>FZ(V2|Y#1w(!fgM1#4}jP#11P}6#0WHyVGj_iWaO4qIJ5u% z2sG~r5DVnwCnxrwZDs-L4*<${)00HOCS6J1UCkt_QY@Ww?-e~hyTM;IpO{eTTHitRPW&)WH04M5F Ad;kCd diff --git a/gui/public/assets/font/dmzui.svg b/gui/public/assets/font/dmzui.svg index 38e541e5..5a5e3014 100644 --- a/gui/public/assets/font/dmzui.svg +++ b/gui/public/assets/font/dmzui.svg @@ -208,6 +208,12 @@ + + diff --git a/gui/public/assets/font/dmzui.ttf b/gui/public/assets/font/dmzui.ttf index 36ba2217bda2afa902fc7af61442df72c0859eb7..0c96e1cb452b01d82ad10707e572e7b799962c2e 100644 GIT binary patch delta 658 zcmZvYPiPZS5XQfGZ?n72u8rC>X)44@N-B~nYST($5~WEL_25B*v?;Q-+vbq80V6~Y ziXu`(MA@T%Z{op&EZ&NE@UGxN6a)`NWWj@iAR36Xt$Gk2d~e?TX5P%3w|a>_U7?$a zi&Fqy2T+-9Sk36?h4+By0D<;G{oH(rwmb%U6kse|v#q(!ne+QN_XBIZ#y|*~=N>Wf14Gj=V6Rp9<~&2Ezxy+YNW`{juFn_a`aDuY?ZaQ(k^r*@@E= zs=BXem`?sK+WS(N0DFu;K^=O}J7>YULgMVC7{)V4w z((I8sk!H;Q_jun)WfM*=yWN?}8t%hvL{QmzmRnY+Oo!ZZ{1W$0&Qa8U|<4?0s%;w%Vasm zjf_#7FEFYw8UXpMK+FupIzS9m&7=WV#lWZp6a}f*0n%JxaTbPelXaNo8KWlqFkc2r zvQ0K*`7zmng`1xTsE&cz1VjRX^JWWHHRj1>937jPIL{kxmb4XNVsx3TXWy}Tm;G!e GkYxY^rcU<& diff --git a/gui/public/assets/font/dmzui.woff b/gui/public/assets/font/dmzui.woff index cc72084e1e7ee4d9da3ec0b1ac513b3cdfc13967..3592138da99f343981cce698878c806de10d83d5 100644 GIT binary patch delta 8379 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 a@Aek=-fT7$HkIuE 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