mirror of
https://github.com/documize/community.git
synced 2025-07-20 13:49:42 +02:00
Apply changes backported from Enterprise edition
This commit is contained in:
parent
3d0a3cecf9
commit
5757b2d36e
24 changed files with 1474 additions and 1378 deletions
|
@ -99,8 +99,8 @@ Documize supports the following (evergreen) browsers:
|
||||||
|
|
||||||
Documize is built with the following technologies:
|
Documize is built with the following technologies:
|
||||||
|
|
||||||
- EmberJS (v3.1.2)
|
- EmberJS (v3.5.1)
|
||||||
- Go (v1.11.2)
|
- Go (v1.11.4)
|
||||||
|
|
||||||
## Authentication Options
|
## Authentication Options
|
||||||
|
|
||||||
|
|
2250
embed/bindata.go
2250
embed/bindata.go
File diff suppressed because one or more lines are too long
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
import { A } from '@ember/array';
|
import { A } from '@ember/array';
|
||||||
import { computed } from '@ember/object';
|
import { computed } from '@ember/object';
|
||||||
|
import { notEmpty } from '@ember/object/computed';
|
||||||
import { inject as service } from '@ember/service';
|
import { inject as service } from '@ember/service';
|
||||||
import Modals from '../../mixins/modal';
|
import Modals from '../../mixins/modal';
|
||||||
import Component from '@ember/component';
|
import Component from '@ember/component';
|
||||||
|
@ -22,7 +23,7 @@ export default Component.extend(Modals, {
|
||||||
router: service(),
|
router: service(),
|
||||||
selectedCategories: A([]),
|
selectedCategories: A([]),
|
||||||
tagz: A([]),
|
tagz: A([]),
|
||||||
|
userChanges: notEmpty('contributorMsg'),
|
||||||
unassigned: computed('selectedCategories', 'tagz', function() {
|
unassigned: computed('selectedCategories', 'tagz', function() {
|
||||||
return this.get('selectedCategories').length === 0 && this.get('tagz').length === 0;
|
return this.get('selectedCategories').length === 0 && this.get('tagz').length === 0;
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -33,6 +33,14 @@ export default Component.extend(ModalMixin, AuthMixin, Notifier, {
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}),
|
}),
|
||||||
|
showActivity: computed('permissions', function() {
|
||||||
|
if (this.get('appMeta.edition') !== this.get('constants').Product.EnterpriseEdition) return false;
|
||||||
|
if (!this.get('session.authenticated')) return false;
|
||||||
|
if (!this.get('session.viewUsers')) return false;
|
||||||
|
if (this.get('permissions.spaceView')) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}),
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
|
|
41
gui/app/components/document/sidebar-meta.js
Normal file
41
gui/app/components/document/sidebar-meta.js
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// 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 { A } from '@ember/array';
|
||||||
|
import { computed } from '@ember/object';
|
||||||
|
import { notEmpty } from '@ember/object/computed';
|
||||||
|
import { inject as service } from '@ember/service';
|
||||||
|
import Modals from '../../mixins/modal';
|
||||||
|
import Component from '@ember/component';
|
||||||
|
|
||||||
|
export default Component.extend(Modals, {
|
||||||
|
documentService: service('document'),
|
||||||
|
sessionService: service('session'),
|
||||||
|
router: service(),
|
||||||
|
userChanges: notEmpty('contributorMsg'),
|
||||||
|
unassigned: computed('selectedCategories', 'tagz', function() {
|
||||||
|
return this.get('selectedCategories').length === 0 && this.get('tagz').length === 0;
|
||||||
|
}),
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
onEditStatus() {
|
||||||
|
if (!this.get('permissions.documentEdit')) return;
|
||||||
|
|
||||||
|
this.get('router').transitionTo('document.settings', {queryParams: {tab: 'general'}});
|
||||||
|
},
|
||||||
|
|
||||||
|
onSelectVersion(version) {
|
||||||
|
let space = this.get('space');
|
||||||
|
|
||||||
|
this.get('router').transitionTo('document', space.get('id'), space.get('slug'), version.documentId, this.get('document.slug'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
|
@ -198,6 +198,7 @@ let constants = EmberObject.extend({
|
||||||
AddUser: 'dicon-add-27',
|
AddUser: 'dicon-add-27',
|
||||||
All: 'dicon-menu-8',
|
All: 'dicon-menu-8',
|
||||||
Announce: 'dicon-notification',
|
Announce: 'dicon-notification',
|
||||||
|
Archive: 'dicon-box',
|
||||||
ArrowUp: 'dicon-arrow-up-2',
|
ArrowUp: 'dicon-arrow-up-2',
|
||||||
ArrowDown: 'dicon-arrow-down-2',
|
ArrowDown: 'dicon-arrow-down-2',
|
||||||
ArrowLeft: 'dicon-arrow-left-2',
|
ArrowLeft: 'dicon-arrow-left-2',
|
||||||
|
@ -207,7 +208,7 @@ let constants = EmberObject.extend({
|
||||||
ArrowSmallLeft: 'dicon-small-left',
|
ArrowSmallLeft: 'dicon-small-left',
|
||||||
ArrowSmallRight: 'dicon-small-right',
|
ArrowSmallRight: 'dicon-small-right',
|
||||||
Attachment: 'dicon-attachment',
|
Attachment: 'dicon-attachment',
|
||||||
BarChart: 'dicon-chart-bar-2',
|
BarChart: 'dicon-chart-bar-33',
|
||||||
Blocks: 'dicon-menu-6',
|
Blocks: 'dicon-menu-6',
|
||||||
Bookmark: 'dicon-bookmark',
|
Bookmark: 'dicon-bookmark',
|
||||||
BookmarkSolid: 'dicon-bookmark-2',
|
BookmarkSolid: 'dicon-bookmark-2',
|
||||||
|
@ -246,6 +247,7 @@ let constants = EmberObject.extend({
|
||||||
Search: 'dicon-magnifier',
|
Search: 'dicon-magnifier',
|
||||||
Send: 'dicon-send',
|
Send: 'dicon-send',
|
||||||
Settings: 'dicon-settings-gear',
|
Settings: 'dicon-settings-gear',
|
||||||
|
Split: 'dicon-split-37',
|
||||||
Tag: 'dicon-delete-key',
|
Tag: 'dicon-delete-key',
|
||||||
TickSmall: 'dicon-d-check',
|
TickSmall: 'dicon-d-check',
|
||||||
Tick: 'dicon-check',
|
Tick: 'dicon-check',
|
||||||
|
@ -256,6 +258,7 @@ let constants = EmberObject.extend({
|
||||||
TriangleSmallDown: 'dicon-small-triangle-down',
|
TriangleSmallDown: 'dicon-small-triangle-down',
|
||||||
TriangleSmallLeft: 'dicon-small-triangle-left',
|
TriangleSmallLeft: 'dicon-small-triangle-left',
|
||||||
TriangleSmallRight: 'dicon-small-triangle-right',
|
TriangleSmallRight: 'dicon-small-triangle-right',
|
||||||
|
Unarchive: 'dicon-download',
|
||||||
Unlocked: 'dicon-unlocked',
|
Unlocked: 'dicon-unlocked',
|
||||||
World: 'dicon-globe',
|
World: 'dicon-globe',
|
||||||
},
|
},
|
||||||
|
@ -270,6 +273,7 @@ let constants = EmberObject.extend({
|
||||||
Label: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
|
Label: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
|
||||||
Add: 'Add',
|
Add: 'Add',
|
||||||
Activate: "Activate",
|
Activate: "Activate",
|
||||||
|
Approve: 'Approve',
|
||||||
Authenticate: 'Authenticate',
|
Authenticate: 'Authenticate',
|
||||||
Cancel: 'Cancel',
|
Cancel: 'Cancel',
|
||||||
Close: 'Close',
|
Close: 'Close',
|
||||||
|
@ -282,7 +286,9 @@ let constants = EmberObject.extend({
|
||||||
Join: 'Join',
|
Join: 'Join',
|
||||||
Leave: 'Leave',
|
Leave: 'Leave',
|
||||||
Next: 'Next',
|
Next: 'Next',
|
||||||
|
OK: 'OK',
|
||||||
Publish: 'Publish',
|
Publish: 'Publish',
|
||||||
|
Reject: 'Reject',
|
||||||
Remove: 'Remove',
|
Remove: 'Remove',
|
||||||
Reset: 'Reset',
|
Reset: 'Reset',
|
||||||
Restore: 'Restore',
|
Restore: 'Restore',
|
||||||
|
@ -291,7 +297,8 @@ let constants = EmberObject.extend({
|
||||||
SignIn: 'Sign In',
|
SignIn: 'Sign In',
|
||||||
Unassigned: 'Unassigned',
|
Unassigned: 'Unassigned',
|
||||||
Update: 'Update',
|
Update: 'Update',
|
||||||
Upload: 'Upload'
|
Upload: 'Upload',
|
||||||
|
Version: 'Version'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ export default Controller.extend(Notifier, {
|
||||||
router: service(),
|
router: service(),
|
||||||
sidebarTab: 'toc',
|
sidebarTab: 'toc',
|
||||||
queryParams: ['currentPageId', 'source'],
|
queryParams: ['currentPageId', 'source'],
|
||||||
|
contributionStatus: '',
|
||||||
|
approvalStatus: '',
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
onSidebarChange(tab) {
|
onSidebarChange(tab) {
|
||||||
|
|
|
@ -19,6 +19,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
|
||||||
linkService: service('link'),
|
linkService: service('link'),
|
||||||
folderService: service('folder'),
|
folderService: service('folder'),
|
||||||
userService: service('user'),
|
userService: service('user'),
|
||||||
|
contributionStatus: '',
|
||||||
|
approvalStatus: '',
|
||||||
|
|
||||||
beforeModel(transition) {
|
beforeModel(transition) {
|
||||||
// Note the source that sent user to this document.
|
// Note the source that sent user to this document.
|
||||||
|
|
|
@ -1,8 +1,20 @@
|
||||||
{{#layout/master-sidebar}}
|
{{#layout/master-sidebar}}
|
||||||
{{ui/ui-spacer size=200}}
|
{{ui/ui-spacer size=100}}
|
||||||
|
|
||||||
<div class="section">
|
<div class="section">
|
||||||
{{ui/ui-spacer size=100}}
|
{{document/sidebar-meta
|
||||||
|
tab=tab
|
||||||
|
roles=roles
|
||||||
|
pages=pages
|
||||||
|
space=folder
|
||||||
|
spaces=folders
|
||||||
|
document=document
|
||||||
|
versions=versions
|
||||||
|
permissions=permissions
|
||||||
|
contributionStatus=contributionStatus
|
||||||
|
approvalStatus=approvalStatus}}
|
||||||
|
|
||||||
|
{{ui/ui-spacer size=300}}
|
||||||
|
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
{{#ui/ui-toolbar dark=true light=true raised=true large=false bordered=true}}
|
{{#ui/ui-toolbar dark=true light=true raised=true large=false bordered=true}}
|
||||||
|
@ -40,14 +52,10 @@
|
||||||
{{#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">
|
||||||
{{document/document-meta
|
{{#link-to "folder.index" folder.id folder.slug class="no-print"}}
|
||||||
tab=tab
|
{{ui/ui-button light=true color=constants.Color.Yellow uppercase=false
|
||||||
roles=roles
|
icon=constants.Icon.ArrowLeft label=folder.name}}
|
||||||
space=folder
|
{{/link-to}}
|
||||||
spaces=folders
|
|
||||||
document=document
|
|
||||||
versions=versions
|
|
||||||
permissions=permissions}}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid-cell-2 grid-cell-right">
|
<div class="grid-cell-2 grid-cell-right">
|
||||||
|
@ -66,7 +74,37 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ui/ui-spacer size=400}}
|
{{document/document-meta
|
||||||
|
tab=tab
|
||||||
|
roles=roles
|
||||||
|
pages=pages
|
||||||
|
space=folder
|
||||||
|
spaces=folders
|
||||||
|
document=document
|
||||||
|
versions=versions
|
||||||
|
permissions=permissions
|
||||||
|
contributionStatus=contributionStatus
|
||||||
|
approvalStatus=approvalStatus}}
|
||||||
|
|
||||||
|
{{#if contributionStatus}}
|
||||||
|
{{ui/ui-spacer size=200}}
|
||||||
|
<div class="document-meta">
|
||||||
|
<div class="label-workflow-status">
|
||||||
|
{{contributionStatus}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
{{#if approvalStatus}}
|
||||||
|
{{ui/ui-spacer size=200}}
|
||||||
|
<div class="document-meta">
|
||||||
|
<div class="label-workflow-status">
|
||||||
|
{{approvalStatus}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{ui/ui-spacer size=300}}
|
||||||
|
|
||||||
<div class="document-meta {{if permissions.documentEdit "cursor-pointer"}}" {{action "onEditMeta"}}>
|
<div class="document-meta {{if permissions.documentEdit "cursor-pointer"}}" {{action "onEditMeta"}}>
|
||||||
<div class="document-heading">
|
<div class="document-heading">
|
||||||
|
|
|
@ -32,7 +32,7 @@ export default Route.extend(AuthenticatedRouteMixin, {
|
||||||
|
|
||||||
this.set('revisions', revisions);
|
this.set('revisions', revisions);
|
||||||
|
|
||||||
resolve(revisions)
|
resolve(revisions);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,10 +28,9 @@
|
||||||
</div>
|
</div>
|
||||||
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
|
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
|
||||||
<div class="item {{if (eq tab "archived") "selected"}}" {{action "onTab" "archived"}}>
|
<div class="item {{if (eq tab "archived") "selected"}}" {{action "onTab" "archived"}}>
|
||||||
<i class={{concat "dicon " constants.Icon.ListBullet}} />
|
<i class={{concat "dicon " constants.Icon.Archive}} />
|
||||||
<div class="name">Archived Content</div>
|
<div class="name">Archived Content</div>
|
||||||
</div>
|
</div>
|
||||||
<li class="tab tab-vertical {{if (eq tab "archived") "selected"}}" {{action "onTab" "archived"}}>Archived</li>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if model.permissions.spaceOwner}}
|
{{#if model.permissions.spaceOwner}}
|
||||||
<div class="item {{if (eq tab "deletion") "selected"}}" {{action "onTab" "deletion"}}>
|
<div class="item {{if (eq tab "deletion") "selected"}}" {{action "onTab" "deletion"}}>
|
||||||
|
|
|
@ -29,6 +29,10 @@ export default Router.map(function () {
|
||||||
path: 'analytics'
|
path: 'analytics'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.route('activity', {
|
||||||
|
path: 'activity'
|
||||||
|
});
|
||||||
|
|
||||||
this.route(
|
this.route(
|
||||||
'folder',
|
'folder',
|
||||||
{
|
{
|
||||||
|
@ -59,6 +63,9 @@ export default Router.map(function () {
|
||||||
this.route('revisions', {
|
this.route('revisions', {
|
||||||
path: 'revisions'
|
path: 'revisions'
|
||||||
});
|
});
|
||||||
|
this.route('activity', {
|
||||||
|
path: 'activity'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
> .bookmarks, > .login {
|
> .bookmarks, > .login, > .invalid-plan {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
>.dicon {
|
>.dicon {
|
||||||
|
@ -78,6 +78,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .invalid-plan {
|
||||||
|
>.dicon {
|
||||||
|
color: map-get($yellow-shades, 600) !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
> .user-gravatar-container {
|
> .user-gravatar-container {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin: 0 10px 0 0;
|
margin: 0 10px 0 0;
|
||||||
|
@ -176,19 +182,20 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> .bookmarks, > .login {
|
> .bookmarks, > .login, > .invalid-plan {
|
||||||
|
display: block;
|
||||||
|
|
||||||
>.dicon {
|
>.dicon {
|
||||||
display: block;
|
|
||||||
color: $color-white;
|
color: $color-white;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
padding: 20px 0;
|
padding: 10px 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> .user-gravatar-container {
|
> .user-gravatar-container {
|
||||||
display: block;
|
display: block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin: 0 0 15px 4px;
|
margin: 10px 0 15px 4px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
> .user-gravatar {
|
> .user-gravatar {
|
||||||
|
@ -273,7 +280,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
> .user-gravatar-container {
|
> .user-gravatar-container {
|
||||||
margin: 0 0 15px 8px;
|
margin: 10px 0 15px 8px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
> .user-gravatar {
|
> .user-gravatar {
|
||||||
|
|
|
@ -101,5 +101,3 @@
|
||||||
padding: 0 7px;
|
padding: 0 7px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -207,11 +207,39 @@
|
||||||
|
|
||||||
> .archive-admin {
|
> .archive-admin {
|
||||||
> .list {
|
> .list {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
> .item {
|
> .item {
|
||||||
margin: 15px 0;
|
@include card();
|
||||||
padding: 15px 0;
|
list-style-type: none;
|
||||||
font-size: 1.2rem;
|
margin: 0 0 2rem 0;
|
||||||
color: $theme-500;
|
padding: 15px 20px;
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
> .info {
|
||||||
|
padding: 0;
|
||||||
|
align-self: self-start;
|
||||||
|
justify-self: self-start;
|
||||||
|
|
||||||
|
> .name {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
font-weight: 700;
|
||||||
|
color: map-get($gray-shades, 800);
|
||||||
|
}
|
||||||
|
|
||||||
|
> .desc {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
margin-top: 0.4rem;
|
||||||
|
color: $color-black-light-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .actions {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -287,10 +315,13 @@
|
||||||
|
|
||||||
> .deactivation-zone {
|
> .deactivation-zone {
|
||||||
@include border-radius(3px);
|
@include border-radius(3px);
|
||||||
border: 1px solid map-get($red-shades, 600);
|
border: 1px solid map-get($yellow-shades, 600);
|
||||||
margin: 30px 0;
|
margin: 30px 0;
|
||||||
padding: 20px 20px;
|
padding: 20px 20px;
|
||||||
background-color: map-get($red-shades, 100);
|
background-color: map-get($yellow-shades, 100);
|
||||||
color: $color-black-light-1;
|
|
||||||
|
> p {
|
||||||
|
color: map-get($yellow-shades, 800);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> .label-approval {
|
> .label-open {
|
||||||
@include border-radius(3px);
|
@include border-radius(3px);
|
||||||
@extend .no-select;
|
@extend .no-select;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -56,6 +56,32 @@
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .label-protected {
|
||||||
|
@include border-radius(3px);
|
||||||
|
@extend .no-select;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 5px 5px 5px 0;
|
||||||
|
padding: 0.3rem 0.7rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
background-color: map-get($green-shades, 700);
|
||||||
|
color: map-get($green-shades, 100);
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .label-locked {
|
||||||
|
@include border-radius(3px);
|
||||||
|
@extend .no-select;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 5px 5px 5px 0;
|
||||||
|
padding: 0.3rem 0.7rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
background-color: map-get($red-shades, 700);
|
||||||
|
color: map-get($red-shades, 300);
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
> .label-draft {
|
> .label-draft {
|
||||||
@include border-radius(3px);
|
@include border-radius(3px);
|
||||||
@extend .no-select;
|
@extend .no-select;
|
||||||
|
@ -108,6 +134,15 @@
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .label-workflow-status {
|
||||||
|
@extend .no-select;
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: map-get($gray-shades, 700);
|
||||||
|
}
|
||||||
|
|
||||||
> .document-heading {
|
> .document-heading {
|
||||||
.name {
|
.name {
|
||||||
color: map-get($gray-shades, 900);
|
color: map-get($gray-shades, 900);
|
||||||
|
@ -116,7 +151,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.desc {
|
.desc {
|
||||||
color: map-get($gray-shades, 700);
|
color: map-get($gray-shades, 800);
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,151 +1,118 @@
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<div class="view-customize">
|
|
||||||
<h1 class="admin-heading">Product Billing & Subscription</h1>
|
|
||||||
<h2 class="sub-heading">Active subscription details</h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="view-customize">
|
<div class="view-customize">
|
||||||
<form class="my-5 ">
|
{{#if (eq subscription.status 0)}}
|
||||||
<div class="form-group row">
|
<h3 class="color-red-600">Enjoy the Documize free plan!</h3>
|
||||||
<label for="sub-name" class="col-sm-4 col-form-label"></label>
|
<a href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
||||||
<div class="col-sm-7">
|
{{ui/ui-button color=constants.Color.Yellow light=true label="Upgrade Now"}}
|
||||||
{{#if (eq subscription.status 0)}}
|
</a>
|
||||||
<h3 class="text-danger">Enjoy the Documize free plan!</h3>
|
{{/if}}
|
||||||
<a class="btn btn-success" href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">upgrade now ⟶</a>
|
{{#if (eq subscription.status 1)}}
|
||||||
{{/if}}
|
<h3 class="color-green-600">Nice, you have an active product subscription!</h3>
|
||||||
{{#if (eq subscription.status 1)}}
|
<a href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
||||||
<h3 class="text-success">Nice, you have an active product subscription!</h3>
|
{{ui/ui-button color=constants.Color.Yellow light=true label="Change Plan"}}
|
||||||
<a class="btn btn-success" href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
</a>
|
||||||
change plan ⟶
|
{{/if}}
|
||||||
</a>
|
{{#if (eq subscription.status 2)}}
|
||||||
{{/if}}
|
<h3 class="color-red-600">Hmm, your product subscription has expired</h3>
|
||||||
{{#if (eq subscription.status 2)}}
|
<a href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
||||||
<h3 class="text-danger">Hmm, your product subscription has expired</h3>
|
{{ui/ui-button color=constants.Color.Yellow light=true label="Renew"}}
|
||||||
<a class="btn btn-success" href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
</a>
|
||||||
renew ⟶
|
{{/if}}
|
||||||
</a>
|
{{#if (eq subscription.status 3)}}
|
||||||
{{/if}}
|
<h3 class="color-red-600">Hmm, {{subscription.activeUsers}} active user count exceeds permitted {{subscription.seats}} user limit</h3>
|
||||||
{{#if (eq subscription.status 3)}}
|
<a href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
||||||
<h3 class="text-danger">Hmm, {{subscription.activeUsers}} active user count exceeds permitted {{subscription.seats}} user limit</h3>
|
{{ui/ui-button color=constants.Color.Yellow light=true label="Upgrade"}}
|
||||||
<a class="btn btn-success" href="https://documize.com/checkout?ref=app&l={{appMeta.location}}&id={{subscription.id}}&o={{appMeta.orgId}}&u={{subscription.seats}}&a={{subscription.activeUsers}}&e={{subscription.email}}">
|
</a>
|
||||||
upgrade ⟶
|
{{/if}}
|
||||||
</a>
|
{{#if (eq subscription.status 4)}}
|
||||||
{{/if}}
|
<h3 class="color-red-600">Hmm, your product subscription is not valid</h3>
|
||||||
{{#if (eq subscription.status 4)}}
|
<a href="https://documize.com/pricing?ref=app">
|
||||||
<h3 class="text-danger">Hmm, your product subscription is not valid</h3>
|
{{ui/ui-button color=constants.Color.Yellow light=true label="Upgrade"}}
|
||||||
<a class="btn btn-success" href="https://documize.com/pricing?ref=app">upgrade ⟶</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<br>
|
{{ui/ui-spacer size=400}}
|
||||||
<br>
|
|
||||||
</div>
|
<form>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="sub-id">Customer ID</label>
|
||||||
|
{{input id="sub-id" type="text" value=subscription.id class="form-control" readonly=true}}
|
||||||
|
<small class="form-text text-muted">Quote this ID when contacting us</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-id" class="col-sm-4 col-form-label">Customer ID</label>
|
<label for="sub-name">Customer Name</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-name" type="text" value=subscription.name class="form-control" readonly=true}}
|
||||||
{{input id="sub-id" type="text" value=subscription.id class="form-control" readonly=true}}
|
<small class="form-text text-muted">The business or personal name of our customer</small>
|
||||||
<small class="form-text text-muted">Quote this ID when contacting us</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-name" class="col-sm-4 col-form-label">Customer Name</label>
|
<label for="sub-email">Contact Email</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-email" type="email" value=subscription.email class="form-control" readonly=true}}
|
||||||
{{input id="sub-name" type="text" value=subscription.name class="form-control" readonly=true}}
|
<small class="form-text text-muted">Where we will send product update and billing notices</small>
|
||||||
<small class="form-text text-muted">The business or personal name of our customer</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-email" class="col-sm-4 col-form-label">Contact Email</label>
|
<label for="sub-seats">Maximum Users</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-seats" type="number" value=subscription.seats class="form-control" readonly=true}}
|
||||||
{{input id="sub-email" type="email" value=subscription.email class="form-control" readonly=true}}
|
<small class="form-text text-muted">Your user pack size — you have {{subscription.activeUsers}} active users at the moment</small>
|
||||||
<small class="form-text text-muted">Where we will send product update and billing notices</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group row">
|
|
||||||
<label for="sub-seats" class="col-sm-4 col-form-label">Maximum Users</label>
|
|
||||||
<div class="col-sm-7">
|
|
||||||
{{input id="sub-seats" type="number" value=subscription.seats class="form-control" readonly=true}}
|
|
||||||
<small class="form-text text-muted">Your user pack size — you have {{subscription.activeUsers}} active users at the moment</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if (eq appMeta.location "selfhost")}}
|
{{#if (eq appMeta.location "selfhost")}}
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-start" class="col-sm-4 col-form-label">Start Date</label>
|
<label for="sub-start">Start Date</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-start" type="text" value=(formatted-date subscription.start) class="form-control" readonly=true}}
|
||||||
{{input id="sub-start" type="text" value=(formatted-date subscription.start) class="form-control" readonly=true}}
|
<small class="form-text text-muted">When you (re)signed up</small>
|
||||||
<small class="form-text text-muted">When you (re)signed up</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-end" class="col-sm-4 col-form-label">Renewal Date</label>
|
<label for="sub-end">Renewal Date</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-end" type="text" value=(formatted-date subscription.end) class="form-control" readonly=true}}
|
||||||
{{input id="sub-end" type="text" value=(formatted-date subscription.end) class="form-control" readonly=true}}
|
<small class="form-text text-muted">The renewal date of your annual subscription</small>
|
||||||
<small class="form-text text-muted">The renewal date of your annual subscription</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-price" class="col-sm-4 col-form-label">Annual Billing</label>
|
<label for="sub-price">Annual Billing</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-price" type="text" value=(formatted-price subscription.price) class="form-control" readonly=true}}
|
||||||
{{input id="sub-price" type="text" value=(formatted-price subscription.price) class="form-control" readonly=true}}
|
<small class="form-text text-muted">What you pay each year</small>
|
||||||
<small class="form-text text-muted">What you pay each year</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-start" class="col-sm-4 col-form-label">Start of Billing</label>
|
<label for="sub-start">Start of Billing</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-start" type="text" value=(formatted-date subscription.start) class="form-control" readonly=true}}
|
||||||
{{input id="sub-start" type="text" value=(formatted-date subscription.start) class="form-control" readonly=true}}
|
<small class="form-text text-muted">When we first charged your credit card — charged every 30 days thereafter</small>
|
||||||
<small class="form-text text-muted">When we first charged your credit card — charged every 30 days thereafter</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-price" class="col-sm-4 col-form-label">Monthly Amount</label>
|
<label for="sub-price">Monthly Amount</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-price" type="text" value=(formatted-price subscription.price) class="form-control" readonly=true}}
|
||||||
{{input id="sub-price" type="text" value=(formatted-price subscription.price) class="form-control" readonly=true}}
|
<small class="form-text text-muted">What you pay us each month</small>
|
||||||
<small class="form-text text-muted">What you pay us each month</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if subscription.trial}}
|
{{#if subscription.trial}}
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-trial" class="col-sm-4 col-form-label">Trial?</label>
|
<label for="sub-trial">Trial?</label>
|
||||||
<div class="col-sm-7">
|
{{input id="sub-trial" type="text" value="Yes" class="form-control" readonly=true}}
|
||||||
{{input id="sub-trial" type="text" value="Yes" class="form-control" readonly=true}}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if (eq appMeta.location "selfhost")}}
|
{{#if (eq appMeta.location "selfhost")}}
|
||||||
<div class="form-group row">
|
<div class="form-group">
|
||||||
<label for="sub-license" class="col-sm-4 col-form-label">Activation Key</label>
|
<label for="sub-license">Activation Key</label>
|
||||||
<div class="col-sm-7">
|
{{textarea id="sub-license" value=license rows="10" class=(if licenseError "form-control is-invalid" "form-control")}}
|
||||||
{{focus-textarea id="sub-license" value=license rows="10" class=(if licenseError "form-control is-invalid" "form-control")}}
|
<small class="form-text text-muted">The activation key you received after sign-up</small>
|
||||||
<small class="form-text text-muted">The activation key you received after sign-up</small>
|
|
||||||
<div class="btn btn-secondary mt-3" {{action "saveLicense"}}>Activate</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{ui/ui-button color=constants.Color.Green light=true label="Activate" onClick=(action "saveLicense")}}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
|
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
|
||||||
{{#if (eq appMeta.location "cloud")}}
|
{{#if (eq appMeta.location "cloud")}}
|
||||||
<div class="row">
|
{{ui/ui-spacer size=400}}
|
||||||
<div class="col-sm-4"></div>
|
<div class="view-customize">
|
||||||
<div class="col-sm-7">
|
<div class="deactivation-zone">
|
||||||
<div class="view-customize">
|
<p>Let us know if you would like to close your account or cancel your subscription.</p>
|
||||||
<div class="deactivation-zone">
|
<p>Requests can take up to 24 hours to process.</p>
|
||||||
<p>Let us know if you would like to close your account or cancel your subscription.</p>
|
<p><span class="bold-700">WARNING: </span>All data will be deleted so please download a complete backup of all your data.</p>
|
||||||
<p><span class="bold-700">WARNING: </span>All data will be deleted so please download a complete backup of all your data.</p>
|
|
||||||
<p>Requests can take up to 24 hours to process.</p>
|
{{#link-to "customize.backup"}}
|
||||||
{{#link-to "customize.backup" class="btn btn-success"}}PERFORM BACKUP{{/link-to}}
|
{{ui/ui-button color=constants.Color.Gray light=true label="Run Backup"}}
|
||||||
<div class="button-gap" />
|
{{/link-to}}
|
||||||
<button class="btn btn-danger" {{action "onRequestClosure"}}>CLOSE ACCOUNT</button>
|
{{ui/ui-button-gap}}
|
||||||
</div>
|
{{ui/ui-button color=constants.Color.Red light=true label="Close Account" onClick=(action "onRequestClosure")}}
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -165,8 +132,9 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Cancel</button>
|
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
||||||
<button type="button" class="btn btn-danger" onclick={{action "onDeactivate"}}>Close Account</button>
|
{{ui/ui-button-gap}}
|
||||||
|
{{ui/ui-button color=constants.Color.Red light=true label="Close Account" onClick=(action "onDeactivate")}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -181,7 +149,7 @@
|
||||||
<p>If you haven"t already, please run a backup to download all your data.</p>
|
<p>If you haven"t already, please run a backup to download all your data.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">ok</button>
|
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.OK dismiss=true}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
|
{{ui/ui-spacer size=300}}
|
||||||
|
|
||||||
<div class="document-meta">
|
<div class="document-meta">
|
||||||
{{#link-to "folder.index" space.id space.slug class="no-print"}}
|
|
||||||
{{ui/ui-button light=true color=constants.Color.Yellow uppercase=false
|
|
||||||
icon=constants.Icon.ArrowLeft label=space.name}}
|
|
||||||
{{/link-to}}
|
|
||||||
|
|
||||||
{{ui/ui-spacer size=300}}
|
|
||||||
|
|
||||||
<div class="title {{if permissions.documentEdit "cursor-pointer"}}" {{action "onEditCategory"}}>CATEGORY / TAG</div>
|
<div class="title {{if permissions.documentEdit "cursor-pointer"}}" {{action "onEditCategory"}}>CATEGORY / TAG</div>
|
||||||
{{#each selectedCategories as |cat|}}
|
{{#each selectedCategories as |cat|}}
|
||||||
<div class="meta-label">
|
<div class="meta-label">
|
||||||
|
@ -31,26 +26,4 @@
|
||||||
<div class="empty">Unassigned</div>
|
<div class="empty">Unassigned</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{ui/ui-spacer size=200}}
|
|
||||||
|
|
||||||
<div class="title">STATUS</div>
|
|
||||||
<div class="{{if (eq document.lifecycle constants.Lifecycle.Draft) "label-draft"}}
|
|
||||||
{{if (eq document.lifecycle constants.Lifecycle.Live) "label-live"}}
|
|
||||||
{{if (eq document.lifecycle constants.Lifecycle.Archived) "label-archived"}}">
|
|
||||||
{{document.lifecycleLabel}}
|
|
||||||
{{#attach-tooltip showDelay=1000}}Lifecycle: Draft · Live · Archived{{/attach-tooltip}}
|
|
||||||
</div>
|
|
||||||
<div class="label-approval">
|
|
||||||
{{#if (eq document.protection constants.ProtectionType.None)}}OPEN{{/if}}
|
|
||||||
{{#if (eq document.protection constants.ProtectionType.Review)}}PROTECTED{{/if}}
|
|
||||||
{{#if (eq document.protection constants.ProtectionType.Lock)}}LOCKED{{/if}}
|
|
||||||
{{#attach-tooltip showDelay=1000}}Change Control: Open · Protected · Locked{{/attach-tooltip}}
|
|
||||||
</div>
|
|
||||||
{{#if document.template}}
|
|
||||||
<div class="label-template">
|
|
||||||
Template
|
|
||||||
{{#attach-tooltip showDelay=1000}}This is a template{{/attach-tooltip}}
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -13,6 +13,11 @@
|
||||||
tooltip="Save as template" onClick=(action "onShowTemplateModal")}}
|
tooltip="Save as template" onClick=(action "onShowTemplateModal")}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if showActivity}}
|
||||||
|
{{ui/ui-toolbar-icon icon=constants.Icon.Pulse color=constants.Color.Gray
|
||||||
|
tooltip="See content activity" linkTo="document.activity"}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if showRevisions}}
|
{{#if showRevisions}}
|
||||||
{{ui/ui-toolbar-icon icon=constants.Icon.TimeBack color=constants.Color.Gray
|
{{ui/ui-toolbar-icon icon=constants.Icon.TimeBack color=constants.Color.Gray
|
||||||
tooltip="Revisions and rollback" linkTo="document.revisions"}}
|
tooltip="Revisions and rollback" linkTo="document.revisions"}}
|
||||||
|
@ -56,6 +61,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
||||||
|
{{ui/ui-button-gap}}
|
||||||
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Delete onClick=(action "onSaveTemplate")}}
|
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Delete onClick=(action "onSaveTemplate")}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -71,6 +77,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
||||||
|
{{ui/ui-button-gap}}
|
||||||
{{ui/ui-button color=constants.Color.Red light=true label=constants.Label.Delete onClick=(action "onDocumentDelete")}}
|
{{ui/ui-button color=constants.Color.Red light=true label=constants.Label.Delete onClick=(action "onDocumentDelete")}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,17 +3,17 @@
|
||||||
desc="Assign one or more categories to help organize content within this space"
|
desc="Assign one or more categories to help organize content within this space"
|
||||||
icon=constants.Icon.Category}}
|
icon=constants.Icon.Category}}
|
||||||
|
|
||||||
{{ui/ui-list-picker items=categories nameField="category" singleSelect=false}}
|
{{#if categories}}
|
||||||
|
{{ui/ui-list-picker items=categories nameField="category" singleSelect=false}}
|
||||||
|
|
||||||
{{#unless categories}}
|
{{ui/ui-spacer size=300}}
|
||||||
|
|
||||||
|
{{ui/ui-button
|
||||||
|
color=constants.Color.Green
|
||||||
|
icon=constants.Icon.Category
|
||||||
|
label=constants.Label.Save
|
||||||
|
light=true
|
||||||
|
onClick=(action "onSave")}}
|
||||||
|
{{else}}
|
||||||
<p class="color-green-700">This space has no categories yet</p>
|
<p class="color-green-700">This space has no categories yet</p>
|
||||||
{{/unless}}
|
{{/if}}
|
||||||
|
|
||||||
{{ui/ui-spacer size=300}}
|
|
||||||
|
|
||||||
{{ui/ui-button
|
|
||||||
color=constants.Color.Green
|
|
||||||
icon=constants.Icon.Category
|
|
||||||
label=constants.Label.Save
|
|
||||||
light=true
|
|
||||||
onClick=(action "onSave")}}
|
|
||||||
|
|
59
gui/app/templates/components/document/sidebar-meta.hbs
Normal file
59
gui/app/templates/components/document/sidebar-meta.hbs
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
<div class="document-meta">
|
||||||
|
<div class="title">VERSION</div>
|
||||||
|
{{#if (gt versions.length 0)}}
|
||||||
|
{{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
|
||||||
|
{{ui/ui-toolbar-label label=document.versionId color=constants.Color.Gray}}
|
||||||
|
{{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}}
|
||||||
|
<div class="menu">
|
||||||
|
<li class="item header">Select document version</li>
|
||||||
|
{{#each versions as |version|}}
|
||||||
|
<a class="item" href="#" {{action "onSelectVersion" version}}>{{version.versionId}}</a>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
{{/attach-popover}}
|
||||||
|
{{/ui/ui-toolbar}}
|
||||||
|
{{else}}
|
||||||
|
{{#if permissions.spaceManage}}
|
||||||
|
{{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}}
|
||||||
|
{{ui/ui-toolbar-icon icon=constants.Icon.Plus color=constants.Color.Gray linkTo="document.settings"}}
|
||||||
|
{{/ui/ui-toolbar}}
|
||||||
|
{{else}}
|
||||||
|
<div class="empty">Not versioned</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{ui/ui-spacer size=200}}
|
||||||
|
|
||||||
|
<div class="title {{if permissions.documentEdit "cursor-pointer"}}" {{action "onEditStatus"}}>STATUS</div>
|
||||||
|
<div class="{{if (eq document.lifecycle constants.Lifecycle.Draft) "label-draft"}}
|
||||||
|
{{if (eq document.lifecycle constants.Lifecycle.Live) "label-live"}}
|
||||||
|
{{if (eq document.lifecycle constants.Lifecycle.Archived) "label-archived"}}">
|
||||||
|
{{document.lifecycleLabel}}
|
||||||
|
{{#attach-tooltip showDelay=1000}}Lifecycle: Draft · Live · Archived{{/attach-tooltip}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if (eq document.protection constants.ProtectionType.None)}}
|
||||||
|
<div class="label-open">
|
||||||
|
OPEN
|
||||||
|
{{#attach-tooltip showDelay=1000}}Change Control: Open · Protected · Locked{{/attach-tooltip}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq document.protection constants.ProtectionType.Review)}}
|
||||||
|
<div class="label-protected">
|
||||||
|
PROTECTED
|
||||||
|
{{#attach-tooltip showDelay=1000}}Change Control: Open · Protected · Locked{{/attach-tooltip}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq document.protection constants.ProtectionType.Lock)}}
|
||||||
|
<div class="label-locked">
|
||||||
|
LOCKED
|
||||||
|
{{#attach-tooltip showDelay=1000}}Change Control: Open · Protected · Locked{{/attach-tooltip}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{#if document.template}}
|
||||||
|
<div class="label-template">
|
||||||
|
Template
|
||||||
|
{{#attach-tooltip showDelay=1000}}This is a template{{/attach-tooltip}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
|
@ -195,11 +195,9 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
{{ui/ui-button color=constants.Color.Gray light=true
|
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
|
||||||
label=constants.Label.Close dismiss=true}}
|
|
||||||
{{ui/ui-button-gap}}
|
{{ui/ui-button-gap}}
|
||||||
{{ui/ui-button color=constants.Color.Green light=true
|
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Invite onClick=(action "onSpaceInvite")}}
|
||||||
label=constants.Label.Invite onClick=(action "onSpaceInvite")}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
|
||||||
|
{{ui/ui-button-gap}}
|
||||||
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Add onClick=(action "onAddEmptyDoc")}}
|
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Add onClick=(action "onAddEmptyDoc")}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -36,6 +36,14 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="meta">
|
<div class="meta">
|
||||||
|
{{#if session.isAdmin}}
|
||||||
|
{{#unless appMeta.valid}}
|
||||||
|
<div class="invalid-plan" {{action "onBilling"}}>
|
||||||
|
<i class={{concat "dicon " constants.Icon.Handshake}} />
|
||||||
|
{{#attach-tooltip}}Invalid product plan{{/attach-tooltip}}
|
||||||
|
</div>
|
||||||
|
{{/unless}}
|
||||||
|
{{/if}}
|
||||||
{{#if session.authenticated}}
|
{{#if session.authenticated}}
|
||||||
{{#if hasPins}}
|
{{#if hasPins}}
|
||||||
<div class="bookmarks" id="user-pins-button">
|
<div class="bookmarks" id="user-pins-button">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue