1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-22 14:49:42 +02:00

Provide view density switcher for spaces & space view

Closes #218
This commit is contained in:
McMatts 2019-03-13 15:17:15 +00:00
parent b89a297c70
commit 9a41e82aa3
5 changed files with 105 additions and 41 deletions

View file

@ -20,6 +20,7 @@ export default Component.extend({
showMoveDialog: false, showMoveDialog: false,
selectedDocuments: A([]), selectedDocuments: A([]),
selectedCaption: 'document', selectedCaption: 'document',
viewDensity: "1",
showAdd: computed('permissions.documentAdd', 'documents', function() { showAdd: computed('permissions.documentAdd', 'documents', function() {
return this.get('documents.length') === 0 && this.get('permissions.documentAdd'); return this.get('documents.length') === 0 && this.get('permissions.documentAdd');
@ -48,6 +49,11 @@ export default Component.extend({
if (!_.isNull(sortOrder) && !_.isUndefined(sortOrder)) { if (!_.isNull(sortOrder) && !_.isUndefined(sortOrder)) {
this.send('onSetSort', sortOrder); this.send('onSetSort', sortOrder);
} }
let viewDensity = this.get('localStorage').getSessionItem('space.density');
if (!_.isNull(viewDensity) && !_.isUndefined(viewDensity)) {
this.set('viewDensity', viewDensity);
}
}, },
actions: { actions: {
@ -85,6 +91,11 @@ export default Component.extend({
this.get('onFiltered')(this.get('documents')); this.get('onFiltered')(this.get('documents'));
}, },
onSwitchView(v) {
this.set('viewDensity', v);
this.get('localStorage').storeSessionItem('space.density', v);
},
onShowDeleteDocuments() { onShowDeleteDocuments() {
this.set('showDeleteDialog', true); this.set('showDeleteDialog', true);
}, },

View file

@ -9,8 +9,27 @@
// //
// https://documize.com // https://documize.com
import { inject as service } from '@ember/service';
import AuthMixin from '../../mixins/auth'; import AuthMixin from '../../mixins/auth';
import Component from '@ember/component'; import Component from '@ember/component';
export default Component.extend(AuthMixin, { export default Component.extend(AuthMixin, {
localStorage: service(),
viewDensity: "1",
didReceiveAttrs() {
this._super(...arguments);
let viewDensity = this.get('localStorage').getSessionItem('spaces.density');
if (!_.isNull(viewDensity) && !_.isUndefined(viewDensity)) {
this.set('viewDensity', viewDensity);
}
},
actions: {
onSwitchView(v) {
this.set('viewDensity', v);
this.get('localStorage').storeSessionItem('spaces.density', v);
}
}
}); });

View file

@ -1,6 +1,15 @@
<div class="view-space"> <div class="view-space">
<div class="text-right"> <div class="text-right">
{{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}}
{{ui/ui-toolbar-icon icon=constants.Icon.Blocks color=constants.Color.Gray tooltip="Complete"
selected=(eq viewDensity "1") onClick=(action "onSwitchView" "1")}}
{{ui/ui-toolbar-icon icon=constants.Icon.All color=constants.Color.Gray tooltip="Comfort"
selected=(eq viewDensity "2") onClick=(action "onSwitchView" "2")}}
{{ui/ui-toolbar-label label="—" color=constants.Color.Gray tooltip="Compact"
selected=(eq viewDensity "3") onClick=(action "onSwitchView" "3")}}
{{/ui/ui-toolbar}}
{{#ui/ui-button {{#ui/ui-button
light=false light=false
outline=true outline=true
@ -59,8 +68,11 @@
<li class="document {{if document.selected "selected"}}" id="document-{{document.id}}"> <li class="document {{if document.selected "selected"}}" id="document-{{document.id}}">
{{#link-to "document.index" space.id space.slug document.id document.slug class="info"}} {{#link-to "document.index" space.id space.slug document.id document.slug class="info"}}
<div class="name">{{ document.name }}</div> <div class="name">{{ document.name }}</div>
{{#if (not-eq viewDensity "3")}}
<div class="desc">{{ document.excerpt }}</div> <div class="desc">{{ document.excerpt }}</div>
{{/if}}
{{/link-to}} {{/link-to}}
{{#if (eq viewDensity "1")}}
<div class="meta"> <div class="meta">
<div class="lifecycle"> <div class="lifecycle">
<div class="{{if (eq document.lifecycle constants.Lifecycle.Draft) "draft"}} <div class="{{if (eq document.lifecycle constants.Lifecycle.Draft) "draft"}}
@ -72,6 +84,7 @@
{{folder/document-categories categories=document.category}} {{folder/document-categories categories=document.category}}
{{folder/document-tags documentTags=document.tags}} {{folder/document-tags documentTags=document.tags}}
</div> </div>
{{/if}}
{{#if hasDocumentActions}} {{#if hasDocumentActions}}
<div class="checkbox" {{action "selectDocument" document.id}}> <div class="checkbox" {{action "selectDocument" document.id}}>

View file

@ -18,4 +18,4 @@
{{layout/page-desc desc=desc}} {{layout/page-desc desc=desc}}
</div> </div>
</div> </div>
{{ui/ui-spacer size=300}} {{ui/ui-spacer size=200}}

View file

@ -1,4 +1,18 @@
<div class="view-spaces"> <div class="view-spaces">
<div class="text-right">
{{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}}
{{ui/ui-toolbar-icon icon=constants.Icon.Blocks color=constants.Color.Gray tooltip="Complete"
selected=(eq viewDensity "1") onClick=(action "onSwitchView" "1")}}
{{ui/ui-toolbar-icon icon=constants.Icon.All color=constants.Color.Gray tooltip="Comfort"
selected=(eq viewDensity "2") onClick=(action "onSwitchView" "2")}}
{{ui/ui-toolbar-label label="—" color=constants.Color.Gray tooltip="Compact"
selected=(eq viewDensity "3") onClick=(action "onSwitchView" "3")}}
{{/ui/ui-toolbar}}
</div>
{{ui/ui-spacer size=200}}
<ul class="list"> <ul class="list">
{{#each spaces as |space|}} {{#each spaces as |space|}}
{{#link-to "folder.index" space.id space.slug}} {{#link-to "folder.index" space.id space.slug}}
@ -12,7 +26,10 @@
{{/if}} {{/if}}
{{space.name}} {{space.name}}
</div> </div>
{{#if (not-eq viewDensity "3")}}
<div class="desc">{{space.desc}}&nbsp;</div> <div class="desc">{{space.desc}}&nbsp;</div>
{{/if}}
{{#if (eq viewDensity "1")}}
<div class="meta"> <div class="meta">
{{!-- {{#if (eq space.spaceType constants.SpaceType.Public)}} {{!-- {{#if (eq space.spaceType constants.SpaceType.Public)}}
<i class={{concat "dicon " constants.Icon.World}}> <i class={{concat "dicon " constants.Icon.World}}>
@ -33,7 +50,9 @@
{{spaces/space-label labels=labels labelId=space.labelId}} {{spaces/space-label labels=labels labelId=space.labelId}}
{{/if}} {{/if}}
</div> </div>
{{/if}}
</div> </div>
{{#if (eq viewDensity "1")}}
<div class="stats"> <div class="stats">
<div class="stat"> <div class="stat">
<div class="number">{{space.countContent}}</div> <div class="number">{{space.countContent}}</div>
@ -44,8 +63,10 @@
<div class="label">categories</div> <div class="label">categories</div>
</div> </div>
</div> </div>
{{/if}}
</li> </li>
{{/link-to}} {{/link-to}}
{{/each}} {{/each}}
</ul> </ul>
</div> </div>