mirror of
https://github.com/documize/community.git
synced 2025-07-23 23:29:42 +02:00
Move space label to main view from sidebar
Solves long-standing debate about removing meta from sidebar, and keeping sidebat for navigation/filtering.
This commit is contained in:
parent
e6e5f75ee7
commit
0bfde82040
7 changed files with 55 additions and 22 deletions
|
@ -28,7 +28,6 @@ export default Component.extend(AuthMixin, {
|
||||||
return this.get('permissions.spaceOwner') || this.get('permissions.spaceManage');
|
return this.get('permissions.spaceOwner') || this.get('permissions.spaceManage');
|
||||||
}),
|
}),
|
||||||
selectedFilter: '',
|
selectedFilter: '',
|
||||||
spaceLabel: null,
|
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
|
@ -56,7 +55,6 @@ export default Component.extend(AuthMixin, {
|
||||||
|
|
||||||
this.set('categories', categories);
|
this.set('categories', categories);
|
||||||
this.set('categoryLinkName', categories.length > 0 ? 'Manage' : 'Add');
|
this.set('categoryLinkName', categories.length > 0 ? 'Manage' : 'Add');
|
||||||
this.set('spaceLabel', _.find(this.get('labels'), {id: this.get('space.labelId')}));
|
|
||||||
|
|
||||||
schedule('afterRender', () => {
|
schedule('afterRender', () => {
|
||||||
if (this.get('categoryFilter') !== '') {
|
if (this.get('categoryFilter') !== '') {
|
||||||
|
@ -120,6 +118,16 @@ export default Component.extend(AuthMixin, {
|
||||||
filtered = this.get('documentsLive');
|
filtered = this.get('documentsLive');
|
||||||
this.set('categoryFilter', '');
|
this.set('categoryFilter', '');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'add':
|
||||||
|
filtered = this.get('recentAdd');
|
||||||
|
this.set('categoryFilter', '');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'update':
|
||||||
|
filtered = this.get('recentUpdate');
|
||||||
|
this.set('categoryFilter', '');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
categories.forEach((cat)=> {
|
categories.forEach((cat)=> {
|
||||||
|
|
|
@ -14,12 +14,4 @@ import Component from '@ember/component';
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
tagName: 'div',
|
tagName: 'div',
|
||||||
classNames: ['master-container'],
|
classNames: ['master-container'],
|
||||||
|
|
||||||
didInsertElement() {
|
|
||||||
this._super(...arguments);
|
|
||||||
},
|
|
||||||
|
|
||||||
willDestroyElement() {
|
|
||||||
this._super(...arguments);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -67,4 +67,15 @@ export default Model.extend({
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
addRecent: computed('created', function() {
|
||||||
|
let after = moment().subtract(7, 'days');
|
||||||
|
return moment(this.get('created')).isSameOrAfter(after);
|
||||||
|
}),
|
||||||
|
|
||||||
|
updateRecent: computed('created', function() {
|
||||||
|
let after = moment().subtract(7, 'days');
|
||||||
|
return moment(this.get('revised')).isSameOrAfter(after) &&
|
||||||
|
moment(this.get('created')).isBefore(after);
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
|
|
||||||
import { Promise as EmberPromise, hash } from 'rsvp';
|
import { Promise as EmberPromise, hash } from 'rsvp';
|
||||||
import { inject as service } from '@ember/service';
|
import { inject as service } from '@ember/service';
|
||||||
import Route from '@ember/routing/route';
|
|
||||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||||
|
import Route from '@ember/routing/route';
|
||||||
|
|
||||||
export default Route.extend(AuthenticatedRouteMixin, {
|
export default Route.extend(AuthenticatedRouteMixin, {
|
||||||
categoryService: service('category'),
|
categoryService: service('category'),
|
||||||
|
@ -37,22 +37,25 @@ export default Route.extend(AuthenticatedRouteMixin, {
|
||||||
let folders = this.modelFor('folder').folders;
|
let folders = this.modelFor('folder').folders;
|
||||||
folders.forEach(f => {
|
folders.forEach(f => {
|
||||||
f.set('selected', false);
|
f.set('selected', false);
|
||||||
})
|
});
|
||||||
|
|
||||||
let documents = this.modelFor('folder').documents;
|
let documents = this.modelFor('folder').documents;
|
||||||
documents.forEach(d => {
|
documents.forEach(d => {
|
||||||
d.set('selected', false);
|
d.set('selected', false);
|
||||||
})
|
});
|
||||||
|
|
||||||
return hash({
|
return hash({
|
||||||
folder: this.modelFor('folder').folder,
|
folder: this.modelFor('folder').folder,
|
||||||
permissions: this.modelFor('folder').permissions,
|
permissions: this.modelFor('folder').permissions,
|
||||||
|
label: _.find(this.modelFor('folder').labels, {id: this.modelFor('folder').folder.get('labelId')}),
|
||||||
labels: this.modelFor('folder').labels,
|
labels: this.modelFor('folder').labels,
|
||||||
folders: folders,
|
folders: folders,
|
||||||
documents: documents,
|
documents: documents,
|
||||||
documentsDraft: _.filter(documents, function(d) { return d.get('lifecycle') === constants.Lifecycle.Draft; }),
|
documentsDraft: _.filter(documents, function(d) { return d.get('lifecycle') === constants.Lifecycle.Draft; }),
|
||||||
documentsLive: _.filter(documents, function(d) { return d.get('lifecycle') === constants.Lifecycle.Live; }),
|
documentsLive: _.filter(documents, function(d) { return d.get('lifecycle') === constants.Lifecycle.Live; }),
|
||||||
templates: this.modelFor('folder').templates,
|
templates: this.modelFor('folder').templates,
|
||||||
|
recentAdd: _.filter(documents, function(d) { return d.get('addRecent'); }),
|
||||||
|
recentUpdate: _.filter(documents, function(d) { return d.get('updateRecent'); }),
|
||||||
showStartDocument: false,
|
showStartDocument: false,
|
||||||
rootDocCount: 0,
|
rootDocCount: 0,
|
||||||
categories: this.get('categories'),
|
categories: this.get('categories'),
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
documents=model.documents
|
documents=model.documents
|
||||||
documentsDraft=model.documentsDraft
|
documentsDraft=model.documentsDraft
|
||||||
documentsLive=model.documentsLive
|
documentsLive=model.documentsLive
|
||||||
|
recentAdd=model.recentAdd
|
||||||
|
recentUpdate=model.recentUpdate
|
||||||
categories=model.categories
|
categories=model.categories
|
||||||
categorySummary=model.categorySummary
|
categorySummary=model.categorySummary
|
||||||
categoryMembers=model.categoryMembers
|
categoryMembers=model.categoryMembers
|
||||||
|
@ -20,6 +22,11 @@
|
||||||
{{#layout/master-content}}
|
{{#layout/master-content}}
|
||||||
<div class="grid-container-6-4">
|
<div class="grid-container-6-4">
|
||||||
<div class="grid-cell-1">
|
<div class="grid-cell-1">
|
||||||
|
{{#if (eq model.folder.labelId "")}}
|
||||||
|
<div class="space-label">Unclassified</div>
|
||||||
|
{{else}}
|
||||||
|
<div class="space-label" style={{{model.label.bgColor}}}>{{model.label.name}}</div>
|
||||||
|
{{/if}}
|
||||||
{{layout/logo-heading
|
{{layout/logo-heading
|
||||||
title=model.folder.name
|
title=model.folder.name
|
||||||
desc=model.folder.desc
|
desc=model.folder.desc
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
.space-label {
|
||||||
|
@include border-radius(3px);
|
||||||
|
@extend .no-select;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 10px 0 13px 0;
|
||||||
|
padding: 0.3rem 0.7rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
background-color: map-get($gray-shades, 600);
|
||||||
|
color: map-get($gray-shades, 100);
|
||||||
|
}
|
||||||
|
|
||||||
.view-space {
|
.view-space {
|
||||||
> .documents {
|
> .documents {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
@ -5,6 +17,7 @@
|
||||||
|
|
||||||
> .document {
|
> .document {
|
||||||
@include card();
|
@include card();
|
||||||
|
box-shadow: none;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
margin: 0 0 2rem 0;
|
margin: 0 0 2rem 0;
|
||||||
padding: 15px 20px;
|
padding: 15px 20px;
|
||||||
|
|
|
@ -1,14 +1,5 @@
|
||||||
{{ui/ui-spacer size=300}}
|
{{ui/ui-spacer size=300}}
|
||||||
|
|
||||||
<div class="title">label</div>
|
|
||||||
{{#if (eq space.labelId "")}}
|
|
||||||
<div class="label">Unclassified</div>
|
|
||||||
{{else}}
|
|
||||||
<div class="label" style={{{spaceLabel.bgColor}}}>{{spaceLabel.name}}</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{ui/ui-spacer size=200}}
|
|
||||||
|
|
||||||
<div class="title">filter</div>
|
<div class="title">filter</div>
|
||||||
<div class="list">
|
<div class="list">
|
||||||
<div class="item {{if (eq selectedFilter "space") "selected"}}" {{action "onDocumentFilter" "space" space.id}}>
|
<div class="item {{if (eq selectedFilter "space") "selected"}}" {{action "onDocumentFilter" "space" space.id}}>
|
||||||
|
@ -39,6 +30,14 @@
|
||||||
<div class="name">Live ({{documentsLive.length}})</div>
|
<div class="name">Live ({{documentsLive.length}})</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
<div class="item {{if (eq selectedFilter "add") "selected"}}" {{action "onDocumentFilter" "add" space.id}}>
|
||||||
|
<i class={{concat "dicon " constants.Icon.Filter}} />
|
||||||
|
<div class="name">Added recently ({{recentAdd.length}})</div>
|
||||||
|
</div>
|
||||||
|
<div class="item {{if (eq selectedFilter "update") "selected"}}" {{action "onDocumentFilter" "update" space.id}}>
|
||||||
|
<i class={{concat "dicon " constants.Icon.Filter}} />
|
||||||
|
<div class="name">Updated recently ({{recentUpdate.length}})</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ui/ui-spacer size=200}}
|
{{ui/ui-spacer size=200}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue