1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-20 05:39:42 +02:00

Apply changes backported from Enterprise edition

This commit is contained in:
McMatts 2018-12-26 18:13:00 +00:00
parent 3d0a3cecf9
commit 5757b2d36e
24 changed files with 1474 additions and 1378 deletions

View file

@ -99,8 +99,8 @@ Documize supports the following (evergreen) browsers:
Documize is built with the following technologies:
- EmberJS (v3.1.2)
- Go (v1.11.2)
- EmberJS (v3.5.1)
- Go (v1.11.4)
## Authentication Options

File diff suppressed because one or more lines are too long

View file

@ -11,6 +11,7 @@
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';
@ -22,7 +23,7 @@ export default Component.extend(Modals, {
router: service(),
selectedCategories: A([]),
tagz: A([]),
userChanges: notEmpty('contributorMsg'),
unassigned: computed('selectedCategories', 'tagz', function() {
return this.get('selectedCategories').length === 0 && this.get('tagz').length === 0;
}),

View file

@ -33,6 +33,14 @@ export default Component.extend(ModalMixin, AuthMixin, Notifier, {
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() {
this._super(...arguments);

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

View file

@ -198,6 +198,7 @@ let constants = EmberObject.extend({
AddUser: 'dicon-add-27',
All: 'dicon-menu-8',
Announce: 'dicon-notification',
Archive: 'dicon-box',
ArrowUp: 'dicon-arrow-up-2',
ArrowDown: 'dicon-arrow-down-2',
ArrowLeft: 'dicon-arrow-left-2',
@ -207,7 +208,7 @@ let constants = EmberObject.extend({
ArrowSmallLeft: 'dicon-small-left',
ArrowSmallRight: 'dicon-small-right',
Attachment: 'dicon-attachment',
BarChart: 'dicon-chart-bar-2',
BarChart: 'dicon-chart-bar-33',
Blocks: 'dicon-menu-6',
Bookmark: 'dicon-bookmark',
BookmarkSolid: 'dicon-bookmark-2',
@ -246,6 +247,7 @@ let constants = EmberObject.extend({
Search: 'dicon-magnifier',
Send: 'dicon-send',
Settings: 'dicon-settings-gear',
Split: 'dicon-split-37',
Tag: 'dicon-delete-key',
TickSmall: 'dicon-d-check',
Tick: 'dicon-check',
@ -256,6 +258,7 @@ let constants = EmberObject.extend({
TriangleSmallDown: 'dicon-small-triangle-down',
TriangleSmallLeft: 'dicon-small-triangle-left',
TriangleSmallRight: 'dicon-small-triangle-right',
Unarchive: 'dicon-download',
Unlocked: 'dicon-unlocked',
World: 'dicon-globe',
},
@ -270,6 +273,7 @@ let constants = EmberObject.extend({
Label: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Add: 'Add',
Activate: "Activate",
Approve: 'Approve',
Authenticate: 'Authenticate',
Cancel: 'Cancel',
Close: 'Close',
@ -282,7 +286,9 @@ let constants = EmberObject.extend({
Join: 'Join',
Leave: 'Leave',
Next: 'Next',
OK: 'OK',
Publish: 'Publish',
Reject: 'Reject',
Remove: 'Remove',
Reset: 'Reset',
Restore: 'Restore',
@ -291,7 +297,8 @@ let constants = EmberObject.extend({
SignIn: 'Sign In',
Unassigned: 'Unassigned',
Update: 'Update',
Upload: 'Upload'
Upload: 'Upload',
Version: 'Version'
}
});

View file

@ -22,6 +22,8 @@ export default Controller.extend(Notifier, {
router: service(),
sidebarTab: 'toc',
queryParams: ['currentPageId', 'source'],
contributionStatus: '',
approvalStatus: '',
actions: {
onSidebarChange(tab) {

View file

@ -19,6 +19,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
linkService: service('link'),
folderService: service('folder'),
userService: service('user'),
contributionStatus: '',
approvalStatus: '',
beforeModel(transition) {
// Note the source that sent user to this document.

View file

@ -1,8 +1,20 @@
{{#layout/master-sidebar}}
{{ui/ui-spacer size=200}}
{{ui/ui-spacer size=100}}
<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">
{{#ui/ui-toolbar dark=true light=true raised=true large=false bordered=true}}
@ -40,14 +52,10 @@
{{#layout/master-content}}
<div class="grid-container-6-4">
<div class="grid-cell-1">
{{document/document-meta
tab=tab
roles=roles
space=folder
spaces=folders
document=document
versions=versions
permissions=permissions}}
{{#link-to "folder.index" folder.id folder.slug class="no-print"}}
{{ui/ui-button light=true color=constants.Color.Yellow uppercase=false
icon=constants.Icon.ArrowLeft label=folder.name}}
{{/link-to}}
</div>
<div class="grid-cell-2 grid-cell-right">
@ -66,7 +74,37 @@
</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-heading">

View file

@ -32,7 +32,7 @@ export default Route.extend(AuthenticatedRouteMixin, {
this.set('revisions', revisions);
resolve(revisions)
resolve(revisions);
});
});
},

View file

@ -28,10 +28,9 @@
</div>
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
<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>
<li class="tab tab-vertical {{if (eq tab "archived") "selected"}}" {{action "onTab" "archived"}}>Archived</li>
{{/if}}
{{#if model.permissions.spaceOwner}}
<div class="item {{if (eq tab "deletion") "selected"}}" {{action "onTab" "deletion"}}>

View file

@ -29,6 +29,10 @@ export default Router.map(function () {
path: 'analytics'
});
this.route('activity', {
path: 'activity'
});
this.route(
'folder',
{
@ -59,6 +63,9 @@ export default Router.map(function () {
this.route('revisions', {
path: 'revisions'
});
this.route('activity', {
path: 'activity'
});
}
);

View file

@ -67,7 +67,7 @@
cursor: pointer;
}
> .bookmarks, > .login {
> .bookmarks, > .login, > .invalid-plan {
display: inline-block;
>.dicon {
@ -78,6 +78,12 @@
}
}
> .invalid-plan {
>.dicon {
color: map-get($yellow-shades, 600) !important;
}
}
> .user-gravatar-container {
display: inline-block;
margin: 0 10px 0 0;
@ -176,19 +182,20 @@
}
}
> .bookmarks, > .login {
>.dicon {
> .bookmarks, > .login, > .invalid-plan {
display: block;
>.dicon {
color: $color-white;
font-size: 20px;
padding: 20px 0;
padding: 10px 0;
}
}
> .user-gravatar-container {
display: block;
text-align: center;
margin: 0 0 15px 4px;
margin: 10px 0 15px 4px;
padding: 0;
> .user-gravatar {
@ -273,7 +280,7 @@
}
> .user-gravatar-container {
margin: 0 0 15px 8px;
margin: 10px 0 15px 8px;
padding: 0;
> .user-gravatar {

View file

@ -101,5 +101,3 @@
padding: 0 7px;
}
}

View file

@ -207,11 +207,39 @@
> .archive-admin {
> .list {
padding: 0;
margin: 0;
> .item {
margin: 15px 0;
padding: 15px 0;
font-size: 1.2rem;
color: $theme-500;
@include card();
list-style-type: none;
margin: 0 0 2rem 0;
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 {
@include border-radius(3px);
border: 1px solid map-get($red-shades, 600);
border: 1px solid map-get($yellow-shades, 600);
margin: 30px 0;
padding: 20px 20px;
background-color: map-get($red-shades, 100);
color: $color-black-light-1;
background-color: map-get($yellow-shades, 100);
> p {
color: map-get($yellow-shades, 800);
}
}
}

View file

@ -43,7 +43,7 @@
}
}
> .label-approval {
> .label-open {
@include border-radius(3px);
@extend .no-select;
display: inline-block;
@ -56,6 +56,32 @@
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 {
@include border-radius(3px);
@extend .no-select;
@ -108,6 +134,15 @@
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 {
.name {
color: map-get($gray-shades, 900);
@ -116,7 +151,7 @@
}
.desc {
color: map-get($gray-shades, 700);
color: map-get($gray-shades, 800);
font-size: 1.2rem;
font-weight: 500;
}

View file

@ -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">
<form class="my-5 ">
<div class="form-group row">
<label for="sub-name" class="col-sm-4 col-form-label"></label>
<div class="col-sm-7">
{{#if (eq subscription.status 0)}}
<h3 class="text-danger">Enjoy the Documize free plan!</h3>
<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 &xrarr;</a>
<h3 class="color-red-600">Enjoy the Documize free plan!</h3>
<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}}">
{{ui/ui-button color=constants.Color.Yellow light=true label="Upgrade Now"}}
</a>
{{/if}}
{{#if (eq subscription.status 1)}}
<h3 class="text-success">Nice, you have an active product subscription!</h3>
<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}}">
change plan &xrarr;
<h3 class="color-green-600">Nice, you have an active product subscription!</h3>
<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}}">
{{ui/ui-button color=constants.Color.Yellow light=true label="Change Plan"}}
</a>
{{/if}}
{{#if (eq subscription.status 2)}}
<h3 class="text-danger">Hmm, your product subscription has expired</h3>
<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}}">
renew &xrarr;
<h3 class="color-red-600">Hmm, your product subscription has expired</h3>
<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}}">
{{ui/ui-button color=constants.Color.Yellow light=true label="Renew"}}
</a>
{{/if}}
{{#if (eq subscription.status 3)}}
<h3 class="text-danger">Hmm, {{subscription.activeUsers}} active user count exceeds permitted {{subscription.seats}} user limit</h3>
<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 &xrarr;
<h3 class="color-red-600">Hmm, {{subscription.activeUsers}} active user count exceeds permitted {{subscription.seats}} user limit</h3>
<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}}">
{{ui/ui-button color=constants.Color.Yellow light=true label="Upgrade"}}
</a>
{{/if}}
{{#if (eq subscription.status 4)}}
<h3 class="text-danger">Hmm, your product subscription is not valid</h3>
<a class="btn btn-success" href="https://documize.com/pricing?ref=app">upgrade &xrarr;</a>
<h3 class="color-red-600">Hmm, your product subscription is not valid</h3>
<a href="https://documize.com/pricing?ref=app">
{{ui/ui-button color=constants.Color.Yellow light=true label="Upgrade"}}
</a>
{{/if}}
<br>
<br>
</div>
</div>
<div class="form-group row">
<label for="sub-id" class="col-sm-4 col-form-label">Customer ID</label>
<div class="col-sm-7">
{{ui/ui-spacer size=400}}
<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">
<label for="sub-name" class="col-sm-4 col-form-label">Customer Name</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-name">Customer Name</label>
{{input id="sub-name" type="text" value=subscription.name class="form-control" readonly=true}}
<small class="form-text text-muted">The business or personal name of our customer</small>
</div>
</div>
<div class="form-group row">
<label for="sub-email" class="col-sm-4 col-form-label">Contact Email</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-email">Contact Email</label>
{{input id="sub-email" type="email" value=subscription.email class="form-control" readonly=true}}
<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">
<div class="form-group">
<label for="sub-seats">Maximum Users</label>
{{input id="sub-seats" type="number" value=subscription.seats class="form-control" readonly=true}}
<small class="form-text text-muted">Your user pack size &mdash; you have {{subscription.activeUsers}} active users at the moment</small>
</div>
</div>
{{#if (eq appMeta.location "selfhost")}}
<div class="form-group row">
<label for="sub-start" class="col-sm-4 col-form-label">Start Date</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-start">Start Date</label>
{{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>
</div>
</div>
<div class="form-group row">
<label for="sub-end" class="col-sm-4 col-form-label">Renewal Date</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-end">Renewal Date</label>
{{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>
</div>
</div>
<div class="form-group row">
<label for="sub-price" class="col-sm-4 col-form-label">Annual Billing</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-price">Annual Billing</label>
{{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>
</div>
</div>
{{else}}
<div class="form-group row">
<label for="sub-start" class="col-sm-4 col-form-label">Start of Billing</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-start">Start of Billing</label>
{{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 &mdash; charged every 30 days thereafter</small>
</div>
</div>
<div class="form-group row">
<label for="sub-price" class="col-sm-4 col-form-label">Monthly Amount</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-price">Monthly Amount</label>
{{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>
</div>
</div>
{{/if}}
{{#if subscription.trial}}
<div class="form-group row">
<label for="sub-trial" class="col-sm-4 col-form-label">Trial?</label>
<div class="col-sm-7">
<div class="form-group">
<label for="sub-trial">Trial?</label>
{{input id="sub-trial" type="text" value="Yes" class="form-control" readonly=true}}
</div>
</div>
{{/if}}
{{#if (eq appMeta.location "selfhost")}}
<div class="form-group row">
<label for="sub-license" class="col-sm-4 col-form-label">Activation Key</label>
<div class="col-sm-7">
{{focus-textarea id="sub-license" value=license rows="10" class=(if licenseError "form-control is-invalid" "form-control")}}
<div class="form-group">
<label for="sub-license">Activation Key</label>
{{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>
<div class="btn btn-secondary mt-3" {{action "saveLicense"}}>Activate</div>
</div>
</div>
{{/if}}
{{ui/ui-button color=constants.Color.Green light=true label="Activate" onClick=(action "saveLicense")}}
</form>
</div>
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
{{#if (eq appMeta.location "cloud")}}
<div class="row">
<div class="col-sm-4"></div>
<div class="col-sm-7">
{{ui/ui-spacer size=400}}
<div class="view-customize">
<div class="deactivation-zone">
<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>Requests can take up to 24 hours to process.</p>
{{#link-to "customize.backup" class="btn btn-success"}}PERFORM BACKUP{{/link-to}}
<div class="button-gap" />
<button class="btn btn-danger" {{action "onRequestClosure"}}>CLOSE ACCOUNT</button>
</div>
</div>
<p><span class="bold-700">WARNING: </span>All data will be deleted so please download a complete backup of all your data.</p>
{{#link-to "customize.backup"}}
{{ui/ui-button color=constants.Color.Gray light=true label="Run Backup"}}
{{/link-to}}
{{ui/ui-button-gap}}
{{ui/ui-button color=constants.Color.Red light=true label="Close Account" onClick=(action "onRequestClosure")}}
</div>
</div>
{{/if}}
@ -165,8 +132,9 @@
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-danger" onclick={{action "onDeactivate"}}>Close Account</button>
{{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="Close Account" onClick=(action "onDeactivate")}}
</div>
</div>
</div>
@ -181,7 +149,7 @@
<p>If you haven"t already, please run a backup to download all your data.</p>
</div>
<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>

View file

@ -1,11 +1,6 @@
<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="document-meta">
<div class="title {{if permissions.documentEdit "cursor-pointer"}}" {{action "onEditCategory"}}>CATEGORY / TAG</div>
{{#each selectedCategories as |cat|}}
<div class="meta-label">
@ -31,26 +26,4 @@
<div class="empty">Unassigned</div>
{{/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 &middot; Live &middot; 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 &middot; Protected &middot; 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>

View file

@ -13,6 +13,11 @@
tooltip="Save as template" onClick=(action "onShowTemplateModal")}}
{{/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}}
{{ui/ui-toolbar-icon icon=constants.Icon.TimeBack color=constants.Color.Gray
tooltip="Revisions and rollback" linkTo="document.revisions"}}
@ -56,6 +61,7 @@
</div>
<div class="modal-footer">
{{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")}}
</div>
</div>
@ -71,6 +77,7 @@
</div>
<div class="modal-footer">
{{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")}}
</div>
</div>

View file

@ -3,12 +3,9 @@
desc="Assign one or more categories to help organize content within this space"
icon=constants.Icon.Category}}
{{#if categories}}
{{ui/ui-list-picker items=categories nameField="category" singleSelect=false}}
{{#unless categories}}
<p class="color-green-700">This space has no categories yet</p>
{{/unless}}
{{ui/ui-spacer size=300}}
{{ui/ui-button
@ -17,3 +14,6 @@
label=constants.Label.Save
light=true
onClick=(action "onSave")}}
{{else}}
<p class="color-green-700">This space has no categories yet</p>
{{/if}}

View 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 &middot; Live &middot; Archived{{/attach-tooltip}}
</div>
{{#if (eq document.protection constants.ProtectionType.None)}}
<div class="label-open">
OPEN
{{#attach-tooltip showDelay=1000}}Change Control: Open &middot; Protected &middot; Locked{{/attach-tooltip}}
</div>
{{/if}}
{{#if (eq document.protection constants.ProtectionType.Review)}}
<div class="label-protected">
PROTECTED
{{#attach-tooltip showDelay=1000}}Change Control: Open &middot; Protected &middot; Locked{{/attach-tooltip}}
</div>
{{/if}}
{{#if (eq document.protection constants.ProtectionType.Lock)}}
<div class="label-locked">
LOCKED
{{#attach-tooltip showDelay=1000}}Change Control: Open &middot; Protected &middot; 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>

View file

@ -195,11 +195,9 @@
</form>
</div>
<div class="modal-footer">
{{ui/ui-button color=constants.Color.Gray light=true
label=constants.Label.Close dismiss=true}}
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Close dismiss=true}}
{{ui/ui-button-gap}}
{{ui/ui-button color=constants.Color.Green light=true
label=constants.Label.Invite onClick=(action "onSpaceInvite")}}
{{ui/ui-button color=constants.Color.Green light=true label=constants.Label.Invite onClick=(action "onSpaceInvite")}}
</div>
</div>
</div>

View file

@ -46,6 +46,7 @@
</div>
<div class="modal-footer">
{{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")}}
</div>
</div>

View file

@ -36,6 +36,14 @@
</div>
<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 hasPins}}
<div class="bookmarks" id="user-pins-button">