1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-23 07:09:43 +02:00

New toolbar styling and layout controls

Built to work with forthcoming feature set that requires display of more options.
This commit is contained in:
Harvey Kandola 2019-05-21 17:05:57 +01:00
parent 08794f8d5f
commit de273a38ed
19 changed files with 580 additions and 289 deletions

View file

@ -0,0 +1,84 @@
// 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 { computed } from '@ember/object';
import Component from '@ember/component';
export default Component.extend({
tagName: 'button',
classNames: [],
classNameBindings: ['calcClass'],
attributeBindings: ['calcAttrs:data-dismiss', 'submitAttrs:type'],
label: '',
icon: '',
color: '',
light: false,
themed: false,
dismiss: false,
truncate: false,
stretch: false,
uppercase: true,
iconClass: '',
hasIcon: computed('iconClass', function() {
return this.iconClass.trim() != '';
}),
calcClass: computed(function() {
// Prepare icon class name
this.iconClass = this.icon;
// Prepare button class name
let bc = 'button';
if (this.themed) {
bc += 'theme';
} else {
bc += '-' + this.color;
}
if (this.light) {
bc += '-light';
}
if (!this.uppercase) {
bc += ' text-case-normal';
}
if (this.truncate) {
bc += ' text-truncate';
}
if (this.stretch) {
bc += ' max-width-100 text-left';
}
return bc;
}),
calcAttrs: computed(function() {
if (this.dismiss) {
return 'modal';
}
return null;
}),
submitAttrs: computed(function() {
return this.submit ? "submit": null;
}),
click(e) {
if (!_.isUndefined(this.onClick)) {
e.preventDefault();
this.onClick(e);
}
}
});

View file

@ -0,0 +1,17 @@
// 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 Component from '@ember/component';
export default Component.extend({
tagName: 'div',
classNames: ['divider'],
});

View file

@ -0,0 +1,55 @@
// 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 { computed } from '@ember/object';
import Component from '@ember/component';
export default Component.extend({
classNames: [],
classNameBindings: ['calcClass'],
label: '',
color: '',
arrow: true,
iconClass: '',
calcClass: computed(function() {
// Prepare icon class name
this.iconClass = this.get('constants').Icon.TriangleSmallDown;
// Prepare button class name
let bc = 'dropdown';
if (!this.themed) {
bc += ' dropdown-' + this.color;
}
return bc;
}),
calcAttrs: computed(function() {
if (this.dismiss) {
return 'modal';
}
return null;
}),
submitAttrs: computed(function() {
return this.submit ? "submit": null;
}),
click(e) {
if (!_.isUndefined(this.onClick)) {
e.preventDefault();
this.onClick(e);
}
}
});

View file

@ -15,12 +15,10 @@ export default Component.extend({
classNames: ['dmz-toolbar', 'non-printable'], classNames: ['dmz-toolbar', 'non-printable'],
classNameBindings: classNameBindings:
['raised:dmz-toolbar-raised', ['raised:dmz-toolbar-raised',
'large:dmz-toolbar-large',
'bordered:dmz-toolbar-bordered', 'bordered:dmz-toolbar-bordered',
'light:dmz-toolbar-light', 'light:dmz-toolbar-light',
'dark:dmz-toolbar-dark'], 'dark:dmz-toolbar-dark'],
raised: false, raised: false,
large: false,
bordered: false, bordered: false,
dark: false, dark: false,
light: false, light: false,

View file

@ -1,8 +1,8 @@
<Layout::MasterNavigation /> <Layout::MasterNavigation />
<Layout::MasterToolbar> <Layout::MasterToolbar>
<div class="zone-1"> <div class="zone-1">
{{#link-to "folder.index" folder.id folder.slug class="no-print"}} {{#link-to "folder.index" folder.id folder.slug}}
{{ui/ui-button color=constants.Color.Gray outline=true uppercase=false icon=constants.Icon.ArrowLeft label=folder.name}} {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=folder.name}}
{{/link-to}} {{/link-to}}
</div> </div>
<div class="zone-2" /> <div class="zone-2" />

View file

@ -2,7 +2,7 @@
<Layout::MasterToolbar> <Layout::MasterToolbar>
<div class="zone-1"> <div class="zone-1">
{{#link-to "document.index"}} {{#link-to "document.index"}}
{{ui/ui-button color=constants.Color.Gray outline=true uppercase=false icon=constants.Icon.ArrowLeft label=document.name}} {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=document.name}}
{{/link-to}} {{/link-to}}
</div> </div>
<div class="zone-2" /> <div class="zone-2" />

View file

@ -2,7 +2,7 @@
<Layout::MasterToolbar> <Layout::MasterToolbar>
<div class="zone-1"> <div class="zone-1">
{{#link-to "document.index" model.folder.id model.folder.slug model.document.id model.document.slug}} {{#link-to "document.index" model.folder.id model.folder.slug model.document.id model.document.slug}}
{{ui/ui-button color=constants.Color.Gray outline=true uppercase=false icon=constants.Icon.ArrowLeft label=model.document.name}} {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=model.document.name}}
{{/link-to}} {{/link-to}}
</div> </div>
<div class="zone-2" /> <div class="zone-2" />

View file

@ -2,7 +2,7 @@
<Layout::MasterToolbar> <Layout::MasterToolbar>
<div class="zone-1"> <div class="zone-1">
{{#link-to "document.index"}} {{#link-to "document.index"}}
{{ui/ui-button color=constants.Color.Gray outline=true uppercase=false icon=constants.Icon.ArrowLeft label=model.document.name}} {{ui/ui-button themed=true uppercase=false icon=constants.Icon.ArrowLeft label=model.document.name}}
{{/link-to}} {{/link-to}}
</div> </div>
<div class="zone-2" /> <div class="zone-2" />

View file

@ -2,4 +2,5 @@
@import "spacing.scss"; @import "spacing.scss";
@import "headings.scss"; @import "headings.scss";
@import "layout.scss"; @import "layout.scss";
@import "toolbar.scss";
@import "sidebar.scss"; @import "sidebar.scss";

View file

@ -1,130 +1,3 @@
// *****************************************************************
// Define mobile-first layout for top navigation bar and toolbar.
// *****************************************************************
.master-navigation {
display: block;
height: auto;
width: 100%;
> .navbar {
display: block;
height: 40px;
width: 100%;
background-color: $theme-500;
text-align: center;
padding: 0;
z-index: 999;
> .container {
display: flex;
flex-grow: 1;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
width: 100%;
padding: 0 20px;
> .options {
> .selected {
> .dicon {
color: $color-white !important;
}
}
> .option {
cursor: pointer;
display: inline-block;
> .dicon {
display: inline-block;
color: $theme-300;
font-size: 20px;
padding: 10px 10px;
}
&:hover {
> .dicon {
color: $theme-400 !important;
}
}
}
> a.option {
color: $theme-300;
&:hover {
color: $color-white;
}
}
> .invalid-plan {
> .dicon {
color: map-get($yellow-shades, 600) !important;
}
}
> .user-gravatar-container {
display: inline-block;
margin: 0;
padding: 7px 10px;
vertical-align: top;
> .user-gravatar {
display: inline-block;
cursor: pointer;
position: relative;
width: 26px;
height: 26px;
line-height: 26px;
padding: 0;
border-radius: 50%;
font-size: 0.85rem;
text-align: center;
color: $theme-500;
font-weight: bold;
background-color: $color-white;
@extend .no-select;
}
}
}
}
}
> .toolbar {
display: block;
height: auto;
height: 50px;
width: 100%;
background-color: $color-sidebar;
background-color: $theme-100;
text-align: center;
padding: 0;
z-index: 999;
> .container {
display: flex;
flex-grow: 1;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
width: 100%;
padding: 0 10px;
> div[class^="zone-"], div[class*=" zone-"] {
margin: 0;
padding: 10px 10px;
justify-content: center;
> .label {
font-size: 1rem;
}
}
}
}
}
// ***************************************************************** // *****************************************************************
// Define mobile-first layout for main content zone with a sidebar. // Define mobile-first layout for main content zone with a sidebar.
// ***************************************************************** // *****************************************************************

View file

@ -0,0 +1,124 @@
// *****************************************************************
// Define mobile-first layout for top navigation bar and toolbar.
// *****************************************************************
.master-navigation {
display: block;
height: auto;
width: 100%;
> .navbar {
display: block;
height: 40px;
width: 100%;
background-color: $theme-500;
text-align: center;
padding: 0;
z-index: 999;
> .container {
display: flex;
flex-grow: 1;
flex-direction: row;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
width: 100%;
padding: 0 20px;
> .options {
> .selected {
> .dicon {
color: $color-white !important;
}
}
> .option {
cursor: pointer;
display: inline-block;
> .dicon {
display: inline-block;
color: $theme-300;
font-size: 20px;
padding: 10px 10px;
}
&:hover {
> .dicon {
color: $theme-400 !important;
}
}
}
> a.option {
color: $theme-300;
&:hover {
color: $color-white;
}
}
> .invalid-plan {
> .dicon {
color: map-get($yellow-shades, 600) !important;
}
}
> .user-gravatar-container {
display: inline-block;
margin: 0;
padding: 7px 10px;
vertical-align: top;
> .user-gravatar {
display: inline-block;
cursor: pointer;
position: relative;
width: 26px;
height: 26px;
line-height: 26px;
padding: 0;
border-radius: 50%;
font-size: 0.85rem;
text-align: center;
color: $theme-500;
font-weight: bold;
background-color: $color-white;
@extend .no-select;
}
}
}
}
}
> .toolbar {
display: block;
width: 100%;
background-color: $color-sidebar;
background-color: $theme-100;
padding: 0;
// z-index: 999;
> .container {
height: 50px;
width: 100%;
display: flex;
flex-grow: 1;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 0 15px;
> div[class^="zone-"], > div[class*=" zone-"] {
margin: 0;
// padding: 10px 10px;
align-items: center;
> .label {
font-size: 1rem;
}
}
}
}
}

View file

@ -179,12 +179,12 @@
.dmz-button-theme { .dmz-button-theme {
@extend %dmz-button; @extend %dmz-button;
background-color: $theme-800; background-color: $theme-500;
color: $color-white; color: $color-white;
@include button-shadow(); @include button-shadow();
&:hover { &:hover {
background-color: $theme-600; background-color: $theme-700;
} }
} }
.dmz-button-theme-light { .dmz-button-theme-light {

View file

@ -40,16 +40,16 @@
} }
> .header { > .header {
color: map-get($gray-shades, 800); color: $color-white;
background-color: map-get($gray-shades, 300); background-color: $theme-500;
font-size: 1rem; font-size: 1rem;
font-weight: 600; font-weight: 600;
cursor: auto; cursor: auto;
&:hover { &:hover {
color: map-get($gray-shades, 800); color: $color-white;
background-color: map-get($gray-shades, 300); background-color: $theme-500;
} }
} }
> .divider { > .divider {

View file

@ -1,5 +1,6 @@
%toolbar-shadow { %toolbar-shadow {
box-shadow: 1px 1px 3px 0px map-get($gray-shades, 200); box-shadow: 1px 1px 3px 0px map-get($gray-shades, 200);
box-shadow: none;
} }
.dmz-toolbar { .dmz-toolbar {
@ -7,27 +8,29 @@
flex-basis: auto; flex-basis: auto;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: middle;
border: 1px solid transparent; border: 1px solid transparent;
height: 30px;
width: auto; width: auto;
padding: 6px 10px; padding: 6px 10px;
line-height: 24px;
@extend .no-select; @extend .no-select;
@include border-radius(6px); @include border-radius(4px);
> .dicon { > .dicon {
font-size: 16px; font-size: 20px;
font-weight: 500; color: $theme-500;
color: map-get($gray-shades, 600);
padding: 0 0.5rem; padding: 0 0.5rem;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: map-get($gray-shades, 700); color: $theme-400;
} }
} }
> .divider {
margin: 0 6px;
width: 1px;
background-color: $theme-200;
}
> .icon-selected { > .icon-selected {
color: map-get($yellow-shades, 600); color: map-get($yellow-shades, 600);
} }
@ -68,17 +71,137 @@
color: map-get($green-shades, 600); color: map-get($green-shades, 600);
} }
} }
}
.dmz-toolbar-large { > .dropdown {
height: 40px; display: inline-block;
padding: 9px 10px; cursor: pointer;
line-height: 33px;
> .dicon { &:hover {
font-size: 20px; > .label, > .dicon {
color: $theme-400;
}
}
> .label {
display: inline-block;
font-size: 1rem;
font-weight: 500;
color: $theme-500;
padding: 0 0 0 0.5rem;
vertical-align: text-bottom;
}
> .dicon {
font-size: 20px;
color: $theme-500;
padding: 0 0.3rem 0 0;
vertical-align: bottom;
}
}
> .dropdown-green {
> .label, > .dicon {
color: map-get($green-shades, 500);
&:hover {
color: map-get($green-shades, 600);
}
}
}
> %button {
display: inline-block;
white-space: nowrap;
text-align: center;
padding: 0.375rem 0.75rem;
font-weight: 500; font-weight: 500;
padding: 0 0.5rem; font-size: 1rem;
border: 1px solid transparent;
text-transform: uppercase;
cursor: pointer;
@extend .no-select;
@include border-radius(2px);
outline: none;
background-color: map-get($green-shades, 600);
color: $color-white;
// @include button-shadow();
> .dicon {
font-size: 1rem;
padding: 0.2rem 0.4rem 0 0;
font-weight: 500;
}
> .label {
display: inline-block;
margin: 0;
padding: 0;
}
&:hover {
color: map-get($gray-shades, 800);
border-color: map-get($gray-shades, 500);
}
}
.button-green {
@extend %button;
background-color: map-get($green-shades, 600);
color: $color-white;
&:hover {
background-color: map-get($green-shades, 700);
}
}
.button-green-light {
@extend %button;
background-color: map-get($green-shades, 200);
color: map-get($green-shades, 700);
border: 1px solid map-get($green-shades, 300);
&:hover {
background-color: map-get($green-shades, 300);
}
}
.button-yellow {
@extend %button;
background-color: map-get($yellow-shades, 600);
color: $color-white;
&:hover {
background-color: map-get($yellow-shades, 700);
}
}
.button-yellow-light {
@extend %button;
background-color: map-get($yellow-shades, 200);
color: map-get($yellow-shades, 700);
border: 1px solid map-get($yellow-shades, 300);
&:hover {
background-color: map-get($yellow-shades, 300);
}
}
.button-red {
@extend %button;
background-color: map-get($red-shades, 600);
color: $color-white;
&:hover {
background-color: map-get($red-shades, 700);
}
}
.button-red-light {
@extend %button;
background-color: map-get($red-shades, 100);
color: map-get($red-shades, 700);
border: 1px solid map-get($red-shades, 200);
&:hover {
background-color: map-get($red-shades, 200);
}
} }
} }
@ -88,6 +211,7 @@
.dmz-toolbar-light { .dmz-toolbar-light {
background-color: map-get($gray-shades, 100); background-color: map-get($gray-shades, 100);
background-color: $color-white;
} }
.dmz-toolbar-raised { .dmz-toolbar-raised {

View file

@ -1,14 +1,53 @@
<div class="text-right no-print"> {{#ui/ui-toolbar dark=false light=false raised=false large=true bordered=false}}
{{#ui/ui-toolbar dark=false light=false raised=false large=true bordered=false}} {{#if (or showActivity showRevisions)}}
{{#ui/ui-toolbar-icon icon=constants.Icon.Export color=constants.Color.Gray tooltip="Print, PDF, Export"}} {{#ui/ui-toolbar-dropdown label="History" arrow=true}}
{{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}} {{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}}
<ul class="menu"> <ul class="menu">
<li class="item" {{action "onExport"}}>Export as HTML file</li> {{#if showActivity}}
<li class="item" {{action "onPrintDocument"}}>Print...</li> {{#link-to "document.activity" class="item"}}Activity summary{{/link-to}}
{{/if}}
{{#if showRevisions}}
{{#link-to "document.revisions" class="item"}}Revisions{{/link-to}}
{{/if}}
</ul> </ul>
{{/attach-popover}} {{/attach-popover}}
{{/ui/ui-toolbar-icon}} {{/ui/ui-toolbar-dropdown}}
<Ui::UiToolbarDivider />
{{/if}}
{{#ui/ui-toolbar-dropdown label="Export" arrow=true}}
{{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}}
<ul class="menu">
<li class="item" {{action "onPrintDocument"}}>Send to print...</li>
<li class="item" {{action "onExport"}}>Download HTML file</li>
</ul>
{{/attach-popover}}
{{/ui/ui-toolbar-dropdown}}
<Ui::UiToolbarDivider />
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
{{#if permissions.documentEdit}}
{{#ui/ui-toolbar-icon icon=constants.Icon.UserAssign color=constants.Color.Gray tooltip="Actions & Sharing"}}
{{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}}
<ul class="menu">
<li class="item" {{action "onShowRequestContributionModal"}}>Request contribution</li>
<li class="item" {{action "onShowRequestFeedbackModal"}}>Request feedback</li>
<li class="item" {{action "onShowRequestReadModal"}}>Request read</li>
{{#if (eq document.lifecycle constants.Lifecycle.Draft)}}
<li class="divider"/>
<li class="item" {{action "onShowPublishModal"}}>Request publication</li>
{{/if}}
<li class="divider"/>
<li class="item" {{action "onShareModal"}}>Share via secure external link</li>
</ul>
{{/attach-popover}}
{{/ui/ui-toolbar-icon}}
<Ui::UiToolbarDivider />
{{/if}}
{{/if}}
{{#if (or pinState.isPinned session.authenticated)}}
{{#if pinState.isPinned}} {{#if pinState.isPinned}}
{{ui/ui-toolbar-icon icon=constants.Icon.BookmarkDelete color=constants.Color.Yellow {{ui/ui-toolbar-icon icon=constants.Icon.BookmarkDelete color=constants.Color.Yellow
tooltip="Remove from bookmarks" onClick=(action "onUnpin")}} tooltip="Remove from bookmarks" onClick=(action "onUnpin")}}
@ -16,57 +55,24 @@
{{ui/ui-toolbar-icon icon=constants.Icon.BookmarkAdd color=constants.Color.Gray {{ui/ui-toolbar-icon icon=constants.Icon.BookmarkAdd color=constants.Color.Gray
tooltip="Bookmark" onClick=(action "onPin")}} tooltip="Bookmark" onClick=(action "onPin")}}
{{/if}} {{/if}}
{{#if permissions.documentEdit}}
{{ui/ui-toolbar-icon icon=constants.Icon.Settings color=constants.Color.Gray
tooltip="Rename, Categories, Tag, Status, Workflow" linkTo="document.settings"}}
{{/if}}
{{/ui/ui-toolbar}}
{{#if hasToolbar}}
{{#ui/ui-toolbar dark=false light=true raised=true large=true bordered=true}}
{{#if (eq appMeta.edition constants.Product.EnterpriseEdition)}}
{{#if permissions.documentEdit}}
{{#ui/ui-toolbar-icon icon=constants.Icon.UserAssign color=constants.Color.Gray tooltip="Actions & Sharing"}}
{{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}}
<ul class="menu">
<li class="item" {{action "onShowRequestContributionModal"}}>Request contribution</li>
<li class="item" {{action "onShowRequestFeedbackModal"}}>Request feedback</li>
<li class="item" {{action "onShowRequestReadModal"}}>Request read</li>
{{#if (eq document.lifecycle constants.Lifecycle.Draft)}}
<li class="divider"/>
<li class="item" {{action "onShowPublishModal"}}>Request publication</li>
{{/if}}
<li class="divider"/>
<li class="item" {{action "onShareModal"}}>Share via secure external link</li>
</ul>
{{/attach-popover}}
{{/ui/ui-toolbar-icon}}
{{/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}}
{{ui/ui-toolbar-icon icon=constants.Icon.TimeBack color=constants.Color.Gray
tooltip="Revisions and rollback" linkTo="document.revisions"}}
{{/if}}
{{#if permissions.documentAdd}}
{{ui/ui-toolbar-icon icon=constants.Icon.Copy color=constants.Color.Gray
tooltip="Save as template" onClick=(action "onShowTemplateModal")}}
{{/if}}
{{#if permissions.documentDelete}}
{{ui/ui-toolbar-icon icon=constants.Icon.Delete color=constants.Color.Gray
tooltip="Delete" onClick=(action "onShowDeleteModal")}}
{{/if}}
{{/ui/ui-toolbar}}
{{/if}} {{/if}}
</div>
{{#if permissions.documentAdd}}
{{ui/ui-toolbar-icon icon=constants.Icon.Copy
tooltip="Save as template" onClick=(action "onShowTemplateModal")}}
{{/if}}
{{#if permissions.documentDelete}}
{{ui/ui-toolbar-icon icon=constants.Icon.Delete
tooltip="Delete" onClick=(action "onShowDeleteModal")}}
{{/if}}
{{#if permissions.documentEdit}}
<Ui::UiToolbarDivider />
{{ui/ui-toolbar-icon icon=constants.Icon.Settings color=constants.Color.Green
tooltip="Rename, Categories, Tag, Status, Workflow" linkTo="document.settings"}}
{{/if}}
{{/ui/ui-toolbar}}
<div id="document-template-modal" class="modal" tabindex="-1" role="dialog"> <div id="document-template-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">

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 hasDocuments}} {{#if hasDocuments}}
{{ui/ui-toolbar-icon icon=constants.Icon.Export color=constants.Color.Gray {{ui/ui-toolbar-icon icon=constants.Icon.Export color=constants.Color.Gray
tooltip="Export as HTML" onClick=(action "onShowExport")}} tooltip="Export as HTML" onClick=(action "onShowExport")}}
@ -18,9 +18,8 @@
{{/ui/ui-toolbar}} {{/ui/ui-toolbar}}
{{#if permissions.documentAdd}} {{#if permissions.documentAdd}}
{{#ui/ui-toolbar dark=false light=true raised=true large=false bordered=true}} {{#ui/ui-toolbar dark=false light=false raised=false large=false bordered=false}}
{{ui/ui-toolbar-icon icon=constants.Icon.Plus color=constants.Color.Green}} {{ui/ui-toolbar-button color=constants.Color.Green uppercase=false icon=constants.Icon.Plus label="CONTENT"}}
{{ui/ui-toolbar-label label="CONTENT" color=constants.Color.Green}}
{{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}} {{#attach-popover class="ember-attacher-popper" hideOn="clickout" showOn="click" isShown=false}}
<div class="menu"> <div class="menu">
<a class="item" href="#" {{action "onShowEmptyDocModal"}}>Blank canvas</a> <a class="item" href="#" {{action "onShowEmptyDocModal"}}>Blank canvas</a>
@ -31,88 +30,88 @@
</div> </div>
{{/attach-popover}} {{/attach-popover}}
{{/ui/ui-toolbar}} {{/ui/ui-toolbar}}
{{/if}}
<div id="empty-doc-modal" class="modal" tabindex="-1" role="dialog"> <div id="empty-doc-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header">Blank Canvas</div> <div class="modal-header">Blank Canvas</div>
<div class="modal-body"> <div class="modal-body">
<form onsubmit={{action "onAddEmptyDoc"}}> <form onsubmit={{action "onAddEmptyDoc"}}>
<div class="form-group"> <div class="form-group">
<label for="empty-doc-name">Document Name</label> <label for="empty-doc-name">Document Name</label>
{{input id="empty-doc-name" type="text" value=emptyDocName placeholder="Enter name" class=(if emptyDocNameError "form-control mousetrap is-invalid" "form-control mousetrap") autocomplete="off"}} {{input id="empty-doc-name" type="text" value=emptyDocName placeholder="Enter name" class=(if emptyDocNameError "form-control mousetrap is-invalid" "form-control mousetrap") autocomplete="off"}}
</div> </div>
</form> </form>
</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-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> </div>
</div> </div>
<div id="template-doc-modal" class="modal" tabindex="-1" role="dialog"> </div>
<div class="modal-dialog" role="document"> <div id="template-doc-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-content"> <div class="modal-dialog" role="document">
<div class="modal-header">From Template</div> <div class="modal-content">
<div class="modal-body"> <div class="modal-header">From Template</div>
<form onsubmit={{action "onAddTemplateDoc"}}> <div class="modal-body">
<div class="form-group"> <form onsubmit={{action "onAddTemplateDoc"}}>
<label for="template-doc-name">Document Name</label> <div class="form-group">
{{input id="template-doc-name" type="text" value=templateDocName placeholder="Enter name" class=(if templateDocNameError "form-control mousetrap is-invalid" "form-control mousetrap") autocomplete="off"}} <label for="template-doc-name">Document Name</label>
</div> {{input id="template-doc-name" type="text" value=templateDocName placeholder="Enter name" class=(if templateDocNameError "form-control mousetrap is-invalid" "form-control mousetrap") autocomplete="off"}}
<div class="widget-list-picker"> </div>
<ul class="options"> <div class="widget-list-picker">
{{#each templates as |item|}} <ul class="options">
<li class="option {{if item.selected "selected"}}" {{action "onSelectTemplate" item}}> {{#each templates as |item|}}
<div class="text text-truncate"> <li class="option {{if item.selected "selected"}}" {{action "onSelectTemplate" item}}>
{{item.name}}<br>{{item.excerpt}} <div class="text text-truncate">
</div> {{item.name}}<br>{{item.excerpt}}
{{#if item.selected}} </div>
<i class="dicon {{constants.Icon.Tick}}" /> {{#if item.selected}}
{{/if}} <i class="dicon {{constants.Icon.Tick}}" />
</li> {{/if}}
{{/each}} </li>
</ul>
</div>
</form>
</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 "onAddTemplateDoc")}}
</div>
</div>
</div>
</div>
<div id="import-doc-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">Import Files</div>
<div class="modal-body">
<div class="import-zone">
<button id="import-document-button" type="button" class="dmz-button-yellow-light text-center">
<br>
Click to select files or drag-drop files
<br><br>
.doc, .docx, .md, .markdown
<br><br>
</button>
<div class="import-status">
{{#each importStatus as |status|}}
<p>{{status}}</p>
{{/each}} {{/each}}
</div> </ul>
</div>
</form>
</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 "onAddTemplateDoc")}}
</div>
</div>
</div>
</div>
<div id="import-doc-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">Import Files</div>
<div class="modal-body">
<div class="import-zone">
<button id="import-document-button" type="button" class="dmz-button-yellow-light text-center">
<br>
Click to select files or drag-drop files
<br><br>
.doc, .docx, .md, .markdown
<br><br>
</button>
<div class="import-status">
{{#each importStatus as |status|}}
<p>{{status}}</p>
{{/each}}
</div> </div>
</div> </div>
<div class="modal-footer"> </div>
{{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}} <div class="modal-footer">
</div> {{ui/ui-button color=constants.Color.Gray light=true label=constants.Label.Cancel dismiss=true}}
</div> </div>
</div> </div>
</div> </div>
{{/if}} </div>
<div id="space-export-modal" class="modal" tabindex="-1" role="dialog"> <div id="space-export-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">

View file

@ -0,0 +1,5 @@
{{#if hasIcon}}
<i class="dicon {{iconClass}}"/>
{{/if}}
<div class="label" title={{label}}>{{label}}</div>
{{yield}}

View file

@ -0,0 +1,5 @@
<div class="label" title={{label}}>{{label}}</div>
{{#if this.arrow}}
<i class="dicon {{iconClass}}"/>
{{/if}}
{{yield}}