1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-02 03:55:24 +02:00

Show jump list to other space documents

Closes #219

Jump to documents within space when viewing a document.
This commit is contained in:
McMatts 2019-05-24 15:08:54 +01:00
parent bc9dab72f2
commit c65eb97948
26 changed files with 341 additions and 235 deletions

View file

@ -0,0 +1,36 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. 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 <sales@documize.com>.
//
// 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);
}
}
});

View file

@ -39,7 +39,7 @@ export default Component.extend({
let bc = 'button';
if (this.themed) {
bc += 'theme';
bc += '-theme';
} else {
bc += '-' + this.color;
}

View file

@ -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',

View file

@ -1,9 +1,7 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#link-to "folder.index" folder.id folder.slug}}
{{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=folder.name}}
{{/link-to}}
<Document::DocumentsList @space={{folder}} @docId=document.id />
</div>
<div class="zone-2" />
<div class="zone-3">

View file

@ -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);
},

View file

@ -1,9 +1,10 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#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}}
</div>
<div class="zone-2" />
<div class="zone-3" />

View file

@ -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);
});
});
},
},
}
});

View file

@ -1,9 +1,10 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#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}}
</div>
<div class="zone-2" />
<div class="zone-3" />

View file

@ -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);
},

View file

@ -1,9 +1,10 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#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}}
</div>
<div class="zone-2" />
<div class="zone-3" />

View file

@ -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'}});
},

View file

@ -1,9 +1,10 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#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}}
</div>
</Layout::MasterToolbar>
@ -12,7 +13,7 @@
<div class="sidebar-content">
<div class="section">
<div class="title">about</div>
<div class="text"></div>
<div class="text">Manage reusable snippets of content for this space</div>
</div>
</div>
</Layout::Grid::Sidebar>
@ -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")}}
</Layout::Grid::Content>
</Layout::Grid::Container>

View file

@ -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);
}
}

View file

@ -1,9 +1,10 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#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}}
</div>
<div class="zone-2" />
<div class="zone-3">

View file

@ -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);
},

View file

@ -1,9 +1,10 @@
<Layout::MasterNavigation />
<Layout::MasterToolbar>
<div class="zone-1">
{{#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}}
</div>
</Layout::MasterToolbar>

View file

@ -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

View file

@ -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";
}

View file

@ -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);

View file

@ -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}}

View file

@ -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"}}
<ul class="menu">
{{#each docs as |doc|}}
{{#if (not-eq doc.id docId)}}
{{#link-to "document.index" doc.spaceId doc.spaceId doc.id doc.slug class="item"}}{{doc.name}}{{/link-to}}
{{/if}}
{{/each}}
</ul>
{{/attach-popover}}
{{/ui/ui-toolbar-icon}}
{{/if}}
{{/ui/ui-toolbar}}