1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-03 12:35:24 +02:00

Merge pull request #56 from documize/workspace-bar

Workspace bar
This commit is contained in:
Harvey Kandola 2016-11-05 17:51:41 -07:00 committed by GitHub
commit 779a320364
38 changed files with 14562 additions and 744 deletions

2
.gitignore vendored
View file

@ -62,5 +62,3 @@ debug
Dockerfile Dockerfile
container.sh container.sh
make.sh make.sh
embed/bindata_assetfs.go

View file

@ -8,38 +8,38 @@ The mission is to bring software dev inspired features (refactoring, testing, li
## Latest version ## Latest version
v0.28.2 v0.29.0
## OS Support ## OS Support
* Windows - Windows
* Linux - Linux
* OSX - OSX
## Tech stack ## Tech stack
* EmberJS (v2.9.1) - EmberJS (v2.9.1)
* Go (v1.7.3) - Go (v1.7.3)
* MySQL (v5.7.10+) - MySQL (v5.7.10+)
## Documentation ## Documentation
* [Install from binary guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/V16L08ucxwABhZF6/install-documize-from-binary-guide) - [Install from binary guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/V16L08ucxwABhZF6/install-documize-from-binary-guide)
* [Install for development guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/V16LOMucxwABhZF1/install-documize-for-development-guide) - [Install for development guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/V16LOMucxwABhZF1/install-documize-for-development-guide)
* [Configuration guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/VzSL8cVZ4QAB2B4Y/configure-documize-guide) - [Configuration guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/VzSL8cVZ4QAB2B4Y/configure-documize-guide)
## Auth0 Integration ## Auth0 Integration
Documize is compatible with Auth0 identity as a service. Documize is compatible with Auth0 identity as a service.
<a width="150" height="50" href="https://auth0.com/?utm_source=oss&utm_medium=gp&utm_campaign=oss" target="_blank" alt="Single Sign On & Token Based Authentication - Auth0"><img width="150" height="50" alt="JWT Auth for open source projects" src="https://cdn.auth0.com/oss/badges/a0-badge-dark.png"/></a> [![JWT Auth for open source projects](https://cdn.auth0.com/oss/badges/a0-badge-dark.png)](https://auth0.com/?utm_source=oss&utm_medium=gp&utm_campaign=oss)
## Word Conversion to HTML ## Word Conversion to HTML
* [Code for ```wordconvert``` utility](https://github.com/documize/community/tree/master/cmd/wordconvert) - [Code for `wordconvert` utility](https://github.com/documize/community/tree/master/cmd/wordconvert)
## Legal ## Legal
https://documize.com <https://documize.com>
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>. Documize® is a registered trade mark of Documize Inc. 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>. Documize® is a registered trade mark of Documize Inc.

View file

@ -51,7 +51,7 @@ export default Ember.Component.extend(TooltipMixin, NotifierMixin, {
if (windowpos >= 300) { if (windowpos >= 300) {
this.set('showScrollTool', true); this.set('showScrollTool', true);
s.addClass("stuck-tool"); s.addClass("stuck-tool");
s.css('left', parseInt($(".zone-sidebar").css('width')) - 18 + 'px'); s.css('left', parseInt($(".zone-navigation").css('width')) + parseInt($(".zone-sidebar").css('width')) - 18 + 'px');
} else { } else {
this.set('showScrollTool', false); this.set('showScrollTool', false);
s.removeClass("stuck-tool"); s.removeClass("stuck-tool");

View file

@ -14,9 +14,14 @@ import constants from '../../utils/constants';
import TooltipMixin from '../../mixins/tooltip'; import TooltipMixin from '../../mixins/tooltip';
import NotifierMixin from '../../mixins/notifier'; import NotifierMixin from '../../mixins/notifier';
const {
inject: { service }
} = Ember;
export default Ember.Component.extend(TooltipMixin, NotifierMixin, { export default Ember.Component.extend(TooltipMixin, NotifierMixin, {
folderService: Ember.inject.service('folder'), folderService: Ember.inject.service('folder'),
templateService: Ember.inject.service('template'), templateService: Ember.inject.service('template'),
appMeta: service(),
publicFolders: [], publicFolders: [],
protectedFolders: [], protectedFolders: [],
privateFolders: [], privateFolders: [],
@ -108,7 +113,7 @@ export default Ember.Component.extend(TooltipMixin, NotifierMixin, {
if (windowpos >= 300) { if (windowpos >= 300) {
this.set('showScrollTool', true); this.set('showScrollTool', true);
s.addClass("stuck-space-tool"); s.addClass("stuck-space-tool");
s.css('left', parseInt($(".zone-sidebar").css('width')) - 18 + 'px'); s.css('left', parseInt($(".zone-navigation").css('width')) + parseInt($(".zone-sidebar").css('width')) - 17 + 'px');
} else { } else {
this.set('showScrollTool', false); this.set('showScrollTool', false);
s.removeClass("stuck-space-tool"); s.removeClass("stuck-space-tool");
@ -123,7 +128,7 @@ export default Ember.Component.extend(TooltipMixin, NotifierMixin, {
onImport() { onImport() {
this.attrs.onImport(); this.attrs.onImport();
}, },
scrollTop() { scrollTop() {
this.set('showScrollTool', false); this.set('showScrollTool', false);

View file

@ -0,0 +1,15 @@
// 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 Ember from 'ember';
export default Ember.Component.extend({
});

View file

@ -11,20 +11,27 @@
import Ember from 'ember'; import Ember from 'ember';
import netUtil from '../../utils/net'; import netUtil from '../../utils/net';
import TooltipMixin from '../../mixins/tooltip';
const { const {
inject: { service } inject: { service }
} = Ember; } = Ember;
export default Ember.Component.extend({ export default Ember.Component.extend(TooltipMixin, {
folderService: service('folder'), folderService: service('folder'),
folder: null, folder: null,
appMeta: service(), appMeta: service(),
session: service(), session: service(),
view: {
folder: false,
search: false,
settings: false,
profile: false
},
init() { init() {
this._super(...arguments); this._super(...arguments);
if (this.get("session.authenticated")) { if (this.get("session.authenticated")) {
this.get("session.session.content.authenticated.user.accounts").forEach((account) => { this.get("session.session.content.authenticated.user.accounts").forEach((account) => {
// TODO: do not mutate account.active here // TODO: do not mutate account.active here
@ -37,6 +44,23 @@ export default Ember.Component.extend({
if (this.get('folder') === null) { if (this.get('folder') === null) {
this.set("folder", this.get('folderService.currentFolder')); this.set("folder", this.get('folderService.currentFolder'));
} }
let route = this.get('router.currentRouteName');
this.set('view.folder', (is.startWith(route, 'folder')) ? true : false);
this.set('view.settings', (is.startWith(route, 'customize')) ? true : false);
this.set('view.profile', (route === 'profile') ? true : false);
this.set('view.search', (route === 'search') ? true : false);
},
didRender() {
if (this.get('session.isAdmin')) {
this.addTooltip(document.getElementById("workspace-settings"));
}
if (this.get("session.authenticated")) {
this.addTooltip(document.getElementById("workspace-logout"));
} else {
this.addTooltip(document.getElementById("workspace-login"));
}
}, },
actions: { actions: {

View file

@ -12,45 +12,43 @@
import Ember from 'ember'; import Ember from 'ember';
export default Ember.Component.extend({ export default Ember.Component.extend({
results: [], results: [],
resultPhrase: "", resultPhrase: "",
didReceiveAttrs() { didReceiveAttrs() {
let results = this.get('results'); let results = this.get('results');
let temp = _.groupBy(results, 'documentId'); let temp = _.groupBy(results, 'documentId');
let documents = []; let documents = [];
_.each(temp, function(document) { _.each(temp, function (document) {
let refs = []; let refs = [];
if (document.length > 1) { if (document.length > 1) {
refs = document.slice(1); refs = document.slice(1);
} }
_.each(refs, function(ref, index) { _.each(refs, function (ref, index) {
ref.comma = index === refs.length-1 ? "" : ", "; ref.comma = index === refs.length - 1 ? "" : ", ";
}); });
let hasRefs = refs.length > 0; let hasRefs = refs.length > 0;
documents.pushObject( { documents.pushObject({
doc: document[0], doc: document[0],
ref: refs, ref: refs,
hasReferences: hasRefs hasReferences: hasRefs
}); });
}); });
let phrase = 'Nothing found'; let phrase = 'Nothing found';
if (results.length > 0) { if (results.length > 0) {
let places = documents.length === 1 ? "place" : "places"; let references = results.length === 1 ? "reference" : "references";
let references = results.length === 1 ? "secton" : "sections"; let i = results.length;
let i = results.length; phrase = `${i} ${references}`;
let j = documents.length; }
phrase = `${i} ${references} in ${j} ${places}`;
}
this.set('resultPhrase', phrase); this.set('resultPhrase', phrase);
this.set('documents', documents); this.set('documents', documents);
} }
}); });

View file

@ -1,22 +1,19 @@
{{#layout/zone-container}} {{layout/zone-navigation}}
{{layout/zone-navigation}} {{#layout/zone-sidebar}}
{{#layout/zone-sidebar}} {{layout/sidebar-intro title='Settings' message='Documize application settings'}}
{{back-to-home}} <div class="sidebar-menu">
<div class="sidebar-menu"> <ul class="options">
<ul class="options"> {{#link-to 'customize.general' activeClass='selected' class="option" tagName="li"}}General{{/link-to}}
{{#link-to 'customize.general' activeClass='selected' class="option" tagName="li"}}General{{/link-to}} {{#link-to 'customize.folders' activeClass='selected' class="option" tagName="li"}}Spaces{{/link-to}}
{{#link-to 'customize.folders' activeClass='selected' class="option" tagName="li"}}Spaces{{/link-to}} {{#link-to 'customize.users' activeClass='selected' class="option" tagName="li"}}Users{{/link-to}}
{{#link-to 'customize.users' activeClass='selected' class="option" tagName="li"}}Users{{/link-to}} {{#if session.isGlobalAdmin}}
{{#if session.isGlobalAdmin}} {{#link-to 'customize.global' activeClass='selected' class="option" tagName="li"}}Global{{/link-to}}
{{#link-to 'customize.global' activeClass='selected' class="option" tagName="li"}}Global{{/link-to}} {{/if}}
{{/if}} </ul>
</ul> </div>
</div> {{/layout/zone-sidebar}}
{{/layout/zone-sidebar}}
{{#layout/zone-content}} {{#layout/zone-content}}
{{outlet}} {{outlet}}
{{/layout/zone-content}} {{/layout/zone-content}}
{{/layout/zone-container}}

View file

@ -2,4 +2,6 @@
{{user-settings add=(action 'add')}} {{user-settings add=(action 'add')}}
</div> </div>
<div class="clearfix" /> {{settings/user-list users=model onDelete=(action "onDelete") onSave=(action "onSave") onPassword=(action "onPassword")}} <div class="clearfix" />
{{settings/user-list users=model onDelete=(action "onDelete") onSave=(action "onSave") onPassword=(action "onPassword")}}

View file

@ -1,28 +1,17 @@
{{#layout/zone-container}} {{layout/zone-navigation}}
{{layout/zone-navigation}} {{#layout/zone-sidebar}}
{{document/document-sidebar document=model meta=meta folder=folder pages=pages page=page owner=owner isEditor=isEditor onAddSection=(action
'onAddSection') changePageSequence=(action 'onPageSequenceChange') changePageLevel=(action 'onPageLevelChange') gotoPage=(action
'gotoPage')}}
{{/layout/zone-sidebar}}
{{#layout/zone-sidebar}} {{#layout/zone-content}}
{{document/document-sidebar document=model meta=meta folder=folder pages=pages page=page owner=owner isEditor=isEditor {{document/document-toolbar document=model pages=pages folder=folder owner=owner isEditor=isEditor users=users onSaveTemplate=(action
onAddSection=(action 'onAddSection') 'onSaveTemplate') onDocumentChange=(action 'onDocumentChange') onAttachmentUpload=(action 'onAttachmentUpload') onDocumentDelete=(action
changePageSequence=(action 'onPageSequenceChange') 'onDocumentDelete')}}
changePageLevel=(action 'onPageLevelChange')
gotoPage=(action 'gotoPage')}}
{{/layout/zone-sidebar}}
{{#layout/zone-content}} {{document/document-view document=model meta=meta pages=pages attachments=attachments folder=folder
{{document/document-toolbar document=model pages=pages folder=folder owner=owner folders=folders isEditor=isEditor gotoPage=(action 'gotoPage') onAttachmentDeleted=(action 'onAttachmentDeleted') onDeletePage=(action
isEditor=isEditor users=users 'onPageDeleted')}}
onSaveTemplate=(action 'onSaveTemplate') {{/layout/zone-content}}
onDocumentChange=(action 'onDocumentChange')
onAttachmentUpload=(action 'onAttachmentUpload')
onDocumentDelete=(action 'onDocumentDelete')}}
{{document/document-view document=model meta=meta pages=pages attachments=attachments folder=folder folders=folders
isEditor=isEditor
gotoPage=(action 'gotoPage')
onAttachmentDeleted=(action 'onAttachmentDeleted')
onDeletePage=(action 'onPageDeleted')}}
{{/layout/zone-content}}
{{/layout/zone-container}}

View file

@ -1,23 +1,12 @@
{{#layout/zone-container}} {{layout/zone-navigation}}
{{layout/zone-navigation}} {{#layout/zone-sidebar}}
{{folder/folders-list folders=model.folders folder=model.folder onImport=(action 'onImport') onFolderAdd=(action 'onFolderAdd')
showDocument=(action 'showDocument')}}
{{/layout/zone-sidebar}}
{{#layout/zone-sidebar}} {{#layout/zone-content}}
{{folder/folders-list folders=model.folders folder=model.folder {{folder/folder-toolbar folders=model.folders folder=model.folder hasSelectedDocuments=hasSelectedDocuments onDeleteDocument=(action
onImport=(action 'onImport') 'onDeleteDocument') onMoveDocument=(action 'onMoveDocument')}} {{folder/documents-list documents=model.documents folder=model.folder
onFolderAdd=(action 'onFolderAdd') isFolderOwner=isFolderOwner onDocumentsChecked=(action 'onDocumentsChecked') }}
showDocument=(action 'showDocument')}} {{/layout/zone-content}}
{{/layout/zone-sidebar}}
{{#layout/zone-content}}
{{folder/folder-toolbar
folders=model.folders
folder=model.folder
hasSelectedDocuments=hasSelectedDocuments
onDeleteDocument=(action 'onDeleteDocument')
onMoveDocument=(action 'onMoveDocument')}}
{{folder/documents-list documents=model.documents folder=model.folder isFolderOwner=isFolderOwner onDocumentsChecked=(action 'onDocumentsChecked') }}
{{/layout/zone-content}}
{{/layout/zone-container}}

View file

@ -1,34 +1,34 @@
{{#layout/zone-container}} {{layout/zone-navigation}}
{{layout/zone-navigation}} {{#layout/zone-sidebar}}
{{#layout/sidebar-intro message='Rename, delete, share and manage space permissions'}}
{{#link-to 'folders.folder' model.id model.slug}}
<i class="material-icons">arrow_back</i>&nbsp;{{model.name}}
{{/link-to}}
{{/layout/sidebar-intro}}
<div class="sidebar-menu">
<ul class="options">
<li class="option {{if tabGeneral "selected"}}" {{action 'selectTab' 'tabGeneral'}}>General</li>
<li class="option {{if tabShare "selected"}}" {{action 'selectTab' 'tabShare'}}>Share</li>
<li class="option {{if tabPermissions "selected"}}" {{action 'selectTab' 'tabPermissions'}}>Permissions</li>
<li class="option {{if tabDelete "selected"}}" {{action 'selectTab' 'tabDelete'}}>Delete</li>
</ul>
</div>
{{/layout/zone-sidebar}}
{{#layout/zone-sidebar}} {{#layout/zone-content}}
{{back-to-space folder=model}} {{#folder/folder-settings
<div class="sidebar-menu"> tabGeneral=tabGeneral
<ul class="options"> tabShare=tabShare
<li class="option {{if tabGeneral "selected"}}" {{action 'selectTab' 'tabGeneral'}}>General</li> tabPermissions=tabPermissions
<li class="option {{if tabShare "selected"}}" {{action 'selectTab' 'tabShare'}}>Share</li> tabDelete=tabDelete
<li class="option {{if tabPermissions "selected"}}" {{action 'selectTab' 'tabPermissions'}}>Permissions</li> folder=model
<li class="option {{if tabDelete "selected"}}" {{action 'selectTab' 'tabDelete'}}>Delete</li> folders=folders
</ul> permissions=permissions
</div> users=users
{{/layout/zone-sidebar}} onRemove="onRemove"
onRename="onRename"
{{#layout/zone-content}} onShare="onShare"
{{#folder/folder-settings onPermission="onPermission" }}
tabGeneral=tabGeneral {{/folder/folder-settings}}
tabShare=tabShare {{/layout/zone-content}}
tabPermissions=tabPermissions
tabDelete=tabDelete
folder=model
folders=folders
permissions=permissions
users=users
onRemove="onRemove"
onRename="onRename"
onShare="onShare"
onPermission="onPermission" }}
{{/folder/folder-settings}}
{{/layout/zone-content}}
{{/layout/zone-container}}

View file

@ -1,16 +1,12 @@
{{#layout/zone-container}} {{layout/zone-navigation}}
{{layout/zone-navigation}} {{#layout/zone-sidebar}}
{{layout/sidebar-intro title="Profile" message=session.user.fullname}}
<div class="sidebar-menu">
<div class="avatar-large">{{session.user.initials}}</div>
</div>
{{/layout/zone-sidebar}}
{{#layout/zone-sidebar}} {{#layout/zone-content}}
{{back-to-home}} {{user-profile model=model save=(action 'save')}}
<div class="sidebar-menu"> {{/layout/zone-content}}
<div class="avatar-large">{{session.user.initials}}</div>
</div>
{{/layout/zone-sidebar}}
{{#layout/zone-content}}
{{user-profile model=model save=(action 'save')}}
{{/layout/zone-content}}
{{/layout/zone-container}}

View file

@ -1,22 +1,16 @@
{{#layout/zone-container}} {{layout/zone-navigation}}
{{layout/zone-navigation}}
{{#layout/zone-sidebar}}
{{layout/sidebar-intro title="Search" message='Search by: #tags, keywords, "some phrase", this AND that, this OR that'}}
<div class="page-search"> <div class="page-search">
<div class="input-control">
<div id="zone-header" class="zone-header"> {{focus-input type="text" value=filter placeholder='search'}}
<div class="input-control pull-left width-60">
<label>Search</label>
{{focus-input class="input" type="text" value=filter placeholder='#tags, keywords, "some phrase", keyword AND keyword, keyword OR keyword'}}
</div>
<div class="actions pull-right hidden-xs hidden-sm">
{{layout/button-home}}
</div>
<div class="clearfix"></div>
</div> </div>
{{search/search-results results=results}}
</div> </div>
{{/layout/zone-sidebar}}
{{/layout/zone-container}} {{#layout/zone-content}}
<div class="page-search">
{{search/search-results results=results}}
</div>
{{/layout/zone-content}}

View file

@ -1,6 +1,5 @@
<div class=" page-setup container-fluid padding-100 background-color-primary"> <div class=" page-setup container-fluid padding-100 background-color-primary">
<div class="row"> <div class="row">
<div class="col-lg-3 col-md-3 col-sm-3"> <div class="col-lg-3 col-md-3 col-sm-3">
<div> <div>
<img src="/assets/img/setup/logo.png" alt="Documize" class="no-select no-outline margin-top-20" /> <img src="/assets/img/setup/logo.png" alt="Documize" class="no-select no-outline margin-top-20" />
@ -10,6 +9,5 @@
</div> </div>
</div> </div>
{{documize-setup model=model save=(action 'save')}} {{documize-setup model=model save=(action 'save')}}
</div> </div>
</div> </div>

View file

@ -13,93 +13,93 @@ import Ember from 'ember';
import config from './config/environment'; import config from './config/environment';
var Router = Ember.Router.extend({ var Router = Ember.Router.extend({
location: config.locationType location: config.locationType
}); });
export default Router.map(function () { export default Router.map(function () {
this.route('folders', { this.route('folders', {
path: '/' path: '/'
}, function () { }, function () {
this.route('folder', { this.route('folder', {
path: 's/:folder_id/:folder_slug' path: 's/:folder_id/:folder_slug'
}); });
this.route('settings', { this.route('settings', {
path: 's/:folder_id/:folder_slug/settings' path: 's/:folder_id/:folder_slug/settings'
}); });
}); });
this.route('document', { this.route('document', {
path: 's/:folder_id/:folder_slug/d/:document_id/:document_slug' path: 's/:folder_id/:folder_slug/d/:document_id/:document_slug'
}, function () { }, function () {
this.route('edit', { this.route('edit', {
path: 'edit/:page_id' path: 'edit/:page_id'
}); });
this.route('wizard', { this.route('wizard', {
path: 'add' path: 'add'
}); });
}); });
this.route('customize', { this.route('customize', {
path: 'settings' path: 'settings'
}, function () { }, function () {
this.route('general', { this.route('general', {
path: 'general' path: 'general'
}); });
this.route('users', { this.route('users', {
path: 'users' path: 'users'
}); });
this.route('folders', { this.route('folders', {
path: 'folders' path: 'folders'
}); });
this.route('global', { this.route('global', {
path: 'global' path: 'global'
}); });
}); });
this.route('setup', { this.route('setup', {
path: 'setup' path: 'setup'
}); });
this.route('auth', { this.route('auth', {
path: 'auth' path: 'auth'
}, function () { }, function () {
this.route('sso', { this.route('sso', {
path: 'sso/:token' path: 'sso/:token'
}); });
this.route('login', { this.route('login', {
path: 'login' path: 'login'
}); });
this.route('forgot', { this.route('forgot', {
path: 'forgot' path: 'forgot'
}); });
this.route('reset', { this.route('reset', {
path: 'reset/:token' path: 'reset/:token'
}); });
this.route('logout', { this.route('logout', {
path: 'logout' path: 'logout'
}); });
this.route('share', { this.route('share', {
path: 'share/:id/:slug/:serial' path: 'share/:id/:slug/:serial'
}); });
}); });
this.route('profile', { this.route('profile', {
path: 'profile' path: 'profile'
}); });
this.route('search', { this.route('search', {
path: 'search' path: 'search'
}); });
this.route('accounts', { this.route('accounts', {
path: 'accounts' path: 'accounts'
}); });
this.route('widgets', { this.route('widgets', {
path: 'widgets' path: 'widgets'
}); });
this.route('not-found', { this.route('not-found', {
path: '/*wildcard' path: '/*wildcard'
}); });
// this.route('pods', function () {}); // this.route('pods', function () {});
}); });

View file

@ -22,22 +22,6 @@ export default Ember.Route.extend(ApplicationRouteMixin, {
session: service(), session: service(),
beforeModel(transition) { beforeModel(transition) {
// start TODO: ugly hack
let MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
let observer = new MutationObserver(function(/*mutations, observer*/) {
// fired when a mutation occurs
// console.log(mutations, observer);
$("#zone-sidebar").css('height', $(document).height() - $("#zone-navigation").height());
});
observer.observe(document, {
subtree: true,
attributes: false,
childList: true,
characterData: true
});
// end TODO: ugly hack
return this.get('appMeta').boot(transition.targetName).then(data => { return this.get('appMeta').boot(transition.targetName).then(data => {
if (this.get('session.session.authenticator') !== "authenticator:documize" && data.allowAnonymousAccess) { if (this.get('session.session.authenticator') !== "authenticator:documize" && data.allowAnonymousAccess) {
return this.get('session').authenticate('authenticator:anonymous', data); return this.get('session').authenticate('authenticator:anonymous', data);

View file

@ -8,18 +8,23 @@
// by contacting <sales@documize.com>. // by contacting <sales@documize.com>.
// //
// https://documize.com // https://documize.com
@media print { @media print {
.zone-navigation, .zone-header, .zone-sidebar, .non-printable { .non-printable,
.zone-navigation,
.zone-sidebar {
display: none !important; display: none !important;
} }
.document-view { .document-view {
.page-toolbar, .document-summary, .attachment-zone, .document-tags { .attachment-zone,
.document-summary,
.document-tags,
.page-toolbar {
display: none !important; display: none !important;
} }
.print-title, .non-printable-message { .non-printable-message,
.print-title {
display: block !important; display: block !important;
} }
} }

View file

@ -1,21 +1,17 @@
.space-button { .explainer {
width: 100%; text-align: center;
}
.space-name { > .empty-state {
max-width: 90%; margin: 30px 0 0;
text-overflow: ellipsis; font-size: 2rem;
overflow: hidden; color: $color-gray;
white-space: nowrap; font-family: 'open_sanslight';
} }
.back-to-home-button { > .normal-state {
width: 100%; margin: 10px;
} font-size: 2rem;
color: $color-gray;
.back-to-home-name { font-family: 'open_sanslight';
max-width: 90%; }
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
} }

View file

@ -6,7 +6,7 @@
color: $color-gray; color: $color-gray;
margin: 30px 0; margin: 30px 0;
>.items { > .items {
padding: 0; padding: 0;
margin: 0; margin: 0;
text-align: center; text-align: center;
@ -54,44 +54,44 @@
} }
.stuck-toc { .stuck-toc {
position: fixed; position: fixed;
top: 20px; top: 20px;
-webkit-animation: fadein 1s; /* Safari, Chrome and Opera > 12.1 */ -webkit-animation: fadein 1s;
-moz-animation: fadein 1s; /* Firefox < 16 */ -moz-animation: fadein 1s;
-ms-animation: fadein 1s; /* Internet Explorer */ -ms-animation: fadein 1s;
-o-animation: fadein 1s; /* Opera < 12.1 */ -o-animation: fadein 1s;
animation: fadein 1s; animation: fadein 1s;
} }
.section-tool { .section-tool {
position: absolute; position: absolute;
top: 150px; top: 130px;
right: -18px; right: -18px;
z-index: 999; z-index: 999;
} }
.scroll-tool { .scroll-tool {
position: absolute; position: absolute;
top: 150px; top: 130px;
right: -18px; right: -18px;
z-index: 888; z-index: 999;
-webkit-animation: fadein 1s; /* Safari, Chrome and Opera > 12.1 */ -webkit-animation: fadein 1s;
-moz-animation: fadein 1s; /* Firefox < 16 */ -moz-animation: fadein 1s;
-ms-animation: fadein 1s; /* Internet Explorer */ -ms-animation: fadein 1s;
-o-animation: fadein 1s; /* Opera < 12.1 */ -o-animation: fadein 1s;
animation: fadein 1s; animation: fadein 1s;
} }
.stuck-tool { .stuck-tool {
position: fixed !important; position: fixed !important;
top: 150px !important; top: 130px !important;
right: 0; right: 0;
left: 0; left: 0;
-webkit-animation: fadein 1s; /* Safari, Chrome and Opera > 12.1 */ -webkit-animation: fadein 1s;
-moz-animation: fadein 1s; /* Firefox < 16 */ -moz-animation: fadein 1s;
-ms-animation: fadein 1s; /* Internet Explorer */ -ms-animation: fadein 1s;
-o-animation: fadein 1s; /* Opera < 12.1 */ -o-animation: fadein 1s;
animation: fadein 1s; animation: fadein 1s;
} }
.close-action { .close-action {
@ -139,7 +139,7 @@
font-size: 13px; font-size: 13px;
overflow-x: hidden; overflow-x: hidden;
list-style-type: none; list-style-type: none;
margin: 20px 0 0 0; margin: 20px 0 0;
.item { .item {
padding: 4px 0; padding: 4px 0;

View file

@ -1,66 +1,60 @@
.zone-container {
min-height: 500px; //ensure dropdowns render in viewport
}
.zone-navigation { .zone-navigation {
background-color: $color-primary; position: fixed;
color: $color-white;
padding: 0;
margin: 0; margin: 0;
width: 100%; padding: 0;
font-size: 1rem; width: 60px;
padding: 10px 40px 10px 40px; min-height: 100%;
height: 100%;
background-color: $color-primary;
z-index: 999;
overflow-x: hidden;
.content { > .top-zone,
> .title { > .bottom-zone {
padding-left: 15px; position: absolute;
font-size: 1rem; padding: 0;
display: inline-block; width: 100%;
vertical-align: middle;
color: $color-white; > li {
text-decoration: none; cursor: pointer;
margin: 0;
padding: 20px 0;
width: 100%;
text-align: center;
} }
> .name {
padding-right: 15px; .selected {
font-size: 1rem; // background-color: $color-link;
display: inline-block;
vertical-align: middle;
}
> .login {
padding: 0;
font-size: 1rem;
display: inline-block;
> a { > a {
color: $color-white;
text-decoration: none;
}
}
> .search {
padding-left: 15px;
font-size: 1rem;
display: inline-block;
vertical-align: middle;
margin-top: 5px;
> a {
color: $color-white;
text-decoration: none;
> .material-icons { > .material-icons {
font-size: 1.5rem; opacity: 1;
color: $color-white;
} }
} }
} }
} }
.header-button { > .top-zone {
display: inline-block; top: 0;
// padding-top: 10px;
}
> .bottom-zone {
bottom: 0;
padding-bottom: 10px;
}
.filled-tool {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
width: 35px; width: 35px;
height: 35px; height: 35px;
line-height: 35px; line-height: 35px;
margin: 0 0 0 12px;
padding: 0; padding: 0;
border-radius: 50%; border-radius: 50%;
transition: .3s; transition: 0.3s;
cursor: pointer; cursor: pointer;
vertical-align: middle; vertical-align: middle;
background-color: $color-white; background-color: $color-white;
@ -89,25 +83,20 @@
font-family: open_sansregular; font-family: open_sansregular;
} }
} }
}
.zone-header { .icon-tool {
background-color: $color-header; position: relative;
padding: 30px 40px 30px 40px; vertical-align: middle;
> .info { text-align: center;
padding: 20px 0 20px 0; font-size: 2rem;
> .title { @include ease-in;
color: $color-off-black; opacity: 0.5;
font-size: 1.2rem; color: $color-white;
&:hover {
opacity: 1;
color: $color-white;
} }
> .message {
color: $color-gray;
font-size: 1rem;
margin: 10px 0 0 5px;
}
}
> .actions {
padding: 20px 0 20px 0;
} }
} }
@ -115,20 +104,35 @@
background-color: $color-header; background-color: $color-header;
height: 100%; height: 100%;
min-height: 100%; min-height: 100%;
padding: 40px 40px 0 40px; padding: 30px 40px 0;
float: left; position: fixed;
margin: 0;
z-index: 888;
margin-left: 60px;
.zone-sidebar-title {
color: $color-primary;
font-size: 1.3rem;
font-weight: bold;
margin-bottom: 10px;
> a > .material-icons,
> .material-icons {
font-size: 1rem;
vertical-align: middle;
}
}
.zone-sidebar-info {
color: $color-gray;
font-size: 1rem;
font-weight: bold;
margin-bottom: 30px;
}
} }
.zone-content { .zone-content {
padding: 30px 40px 30px 40px; min-height: 500px; //ensure dropdowns render in viewport
float: left; padding: 30px 40px 30px 100px;
} z-index: 777;
.copyright {
margin-top: 50px;
text-align: center;
> a {
font-size: 0.8rem;
color: $color-gray;
}
} }

View file

@ -1,39 +1,39 @@
.space-tools { .space-tools {
.doc-tool { .doc-tool {
position: absolute; position: absolute;
top: 150px; top: 130px;
right: -18px; right: -18px;
z-index: 999; z-index: 888;
} }
.scroll-space-tool { .scroll-space-tool {
position: absolute; position: absolute;
top: 150px; top: 130px;
right: -18px; right: -18px;
z-index: 888; z-index: 999;
-webkit-animation: fadein 1s; /* Safari, Chrome and Opera > 12.1 */ -webkit-animation: fadein 1s;
-moz-animation: fadein 1s; /* Firefox < 16 */ -moz-animation: fadein 1s;
-ms-animation: fadein 1s; /* Internet Explorer */ -ms-animation: fadein 1s;
-o-animation: fadein 1s; /* Opera < 12.1 */ -o-animation: fadein 1s;
animation: fadein 1s; animation: fadein 1s;
} }
.stuck-space-tool { .stuck-space-tool {
position: fixed !important; position: fixed !important;
top: 150px !important; top: 130px !important;
right: 0; right: 0;
left: 0; left: 0;
-webkit-animation: fadein 1s; /* Safari, Chrome and Opera > 12.1 */ -webkit-animation: fadein 1s;
-moz-animation: fadein 1s; /* Firefox < 16 */ -moz-animation: fadein 1s;
-ms-animation: fadein 1s; /* Internet Explorer */ -ms-animation: fadein 1s;
-o-animation: fadein 1s; /* Opera < 12.1 */ -o-animation: fadein 1s;
animation: fadein 1s; animation: fadein 1s;
} }
} }
.folders-list { .folders-list {
> .section { > .section {
margin: 30px 0 10px 0; margin: 30px 0 10px;
> .heading { > .heading {
font-size: 0.9rem; font-size: 0.9rem;
@ -64,7 +64,7 @@
> .item { > .item {
list-style-type: none; list-style-type: none;
list-style: none; list-style: none;
margin: 0 0 5px 0; margin: 0 0 5px;
padding: 0; padding: 0;
} }
} }
@ -80,10 +80,10 @@
.documents-list { .documents-list {
> .document { > .document {
margin: 0; margin: 0;
padding: 20px 20px 25px 20px; padding: 20px 20px 25px;
width: 100%; width: 100%;
position: relative; position: relative;
transition: .3s; transition: 0.3s;
border-bottom: 1px solid $color-border; border-bottom: 1px solid $color-border;
&:hover { &:hover {
@ -111,8 +111,8 @@
> .material-icons { > .material-icons {
width: 10px; width: 10px;
margin: 0; margin: 0;
padding: 0; padding: 0;
color: $color-checkbox; color: $color-checkbox;
} }
} }
@ -149,7 +149,8 @@
} }
} }
.move-document-options, .start-document-options { .move-document-options,
.start-document-options {
height: 150px; height: 150px;
overflow-y: auto; overflow-y: auto;
margin: 0; margin: 0;
@ -179,13 +180,6 @@
} }
.start-document { .start-document {
> .space-name {
color: $color-primary;
font-size: 1.3rem;
font-weight: bold;
margin-bottom: 30px;
}
> .import-document-button { > .import-document-button {
width: 100%; width: 100%;
padding: 20px; padding: 20px;
@ -204,7 +198,8 @@
color: $color-link; color: $color-link;
} }
> .dz-preview, .dz-processing { > .dz-preview,
.dz-processing {
display: none !important; display: none !important;
} }
} }
@ -240,7 +235,7 @@
font-size: 0.9rem; font-size: 0.9rem;
text-align: center; text-align: center;
float: left; float: left;
margin: 5px 0 0 9px; margin: 5px 0 0 9px;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
@ -269,10 +264,11 @@
} }
&:hover { &:hover {
> .title, > .desc { > .title,
> .desc {
color: $color-link !important; color: $color-link !important;
} }
} }
} }
} }
} }

View file

@ -1,30 +1,14 @@
.page-search { .page-search {
> .zone-header {
background-color: $color-header;
padding: 0 40px 0 40px;
}
.input-control { .input-control {
padding: 20px 0; > input {
margin-bottom: 0; background-color: $color-header;
} }
.input-control input {
background-color: $color-header;
}
.input-control input:focus {
} }
.search-results { .search-results {
margin: 50px 0;
padding: 0 40px 0 40px;
.heading { .heading {
font-size: 1.2rem; font-size: 1.2rem;
color: $color-blue; color: $color-off-black;
} }
> .list { > .list {

View file

@ -3,7 +3,7 @@
.drop-element { .drop-element {
box-sizing: border-box; box-sizing: border-box;
display: none; display: none;
z-index: 1; z-index: 999;
&:after, &:before { &:after, &:before {
box-sizing: border-box; box-sizing: border-box;

View file

@ -1,24 +1,25 @@
.user-notification { .user-notification {
position: fixed; position: fixed;
display: none; display: none;
top: 20px; top: 20px;
right: 20px; right: 20px;
background-color: $color-toast; background-color: $color-toast;
color: $color-white; color: $color-white;
padding: 10px 15px; padding: 10px 15px;
text-align: left; text-align: left;
border-radius: 2px; border-radius: 2px;
@extend .z-depth-1; @extend .z-depth-1;
z-index: 999;
> .message { > .message {
margin: 3px 0; margin: 3px 0;
padding: 0; padding: 0;
font-size: 0.9em; font-size: 0.9em;
} }
} }
.busy-indicator { .busy-indicator {
height: 30px; height: 30px;
width: 30px; width: 30px;
margin: 0 10px; margin: 0 10px;
} }

View file

@ -1,5 +1,5 @@
.sidebar-menu { .sidebar-menu {
margin: 30px 0 0 0; margin: 0;
> .options { > .options {
padding: 0; padding: 0;
@ -7,7 +7,7 @@
> .option { > .option {
margin-bottom: 15px; margin-bottom: 15px;
font-size: 1rem; font-size: 1.3rem;
list-style: none; list-style: none;
cursor: pointer; cursor: pointer;
@extend .no-select; @extend .no-select;

View file

@ -1,163 +1,201 @@
// https://github.com/HubSpot/tooltip // https://github.com/HubSpot/tooltip
.tooltip-element { .tooltip-element {
box-sizing: border-box; z-index: 999;
&:after, &:before { box-sizing: border-box;
box-sizing: border-box;
} &:after,
* { &:before {
box-sizing: border-box; box-sizing: border-box;
&:after, &:before { }
box-sizing: border-box;
} * {
} box-sizing: border-box;
position: absolute;
display: none; &:after,
&.tooltip-open { &:before {
display: block; box-sizing: border-box;
} }
&.tooltip-theme-arrows { }
max-width: 100%; position: absolute;
max-height: 100%; display: none;
.tooltip-content {
border-radius: 2px; &.tooltip-open {
position: relative; display: block;
font-family: inherit; }
background: $color-tooltip;
color: $color-white; &.tooltip-theme-arrows {
padding: 0.5em; z-index: 999;
font-size: 0.8em; max-width: 100%;
line-height: 1.1em; max-height: 100%;
&:before {
content: ""; .tooltip-content {
display: block; border-radius: 2px;
position: absolute; position: relative;
width: 0; font-family: inherit;
height: 0; background: $color-tooltip;
border-color: transparent; color: $color-white;
border-width: 8px; padding: 0.5em;
border-style: solid; font-size: 0.8em;
} line-height: 1.1em;
}
&.tooltip-element-attached-bottom.tooltip-element-attached-center .tooltip-content { &:before {
margin-bottom: 8px; content: "";
&:before { display: block;
top: 100%; position: absolute;
left: 50%; width: 0;
margin-left: -8px; height: 0;
border-top-color: $color-tooltip; border-color: transparent;
} border-width: 8px;
} border-style: solid;
&.tooltip-element-attached-top.tooltip-element-attached-center .tooltip-content { }
margin-top: 8px; }
&:before {
bottom: 100%; &.tooltip-element-attached-bottom.tooltip-element-attached-center .tooltip-content {
left: 50%; margin-bottom: 8px;
margin-left: -8px;
border-bottom-color: $color-tooltip; &:before {
} top: 100%;
} left: 50%;
&.tooltip-element-attached-right.tooltip-element-attached-middle .tooltip-content { margin-left: -8px;
margin-right: 8px; border-top-color: $color-tooltip;
&:before { }
left: 100%; }
top: 50%;
margin-top: -8px; &.tooltip-element-attached-top.tooltip-element-attached-center .tooltip-content {
border-left-color: $color-tooltip; margin-top: 8px;
}
} &:before {
&.tooltip-element-attached-left.tooltip-element-attached-middle .tooltip-content { bottom: 100%;
margin-left: 8px; left: 50%;
&:before { margin-left: -8px;
right: 100%; border-bottom-color: $color-tooltip;
top: 50%; }
margin-top: -8px; }
border-right-color: $color-tooltip;
} &.tooltip-element-attached-right.tooltip-element-attached-middle .tooltip-content {
} margin-right: 8px;
&.tooltip-element-attached-top {
&.tooltip-element-attached-left.tooltip-target-attached-bottom .tooltip-content { &:before {
margin-top: 8px; left: 100%;
&:before { top: 50%;
bottom: 100%; margin-top: -8px;
left: 8px; border-left-color: $color-tooltip;
border-bottom-color: $color-tooltip; }
} }
}
&.tooltip-element-attached-right.tooltip-target-attached-bottom .tooltip-content { &.tooltip-element-attached-left.tooltip-element-attached-middle .tooltip-content {
margin-top: 8px; margin-left: 8px;
&:before {
bottom: 100%; &:before {
right: 8px; right: 100%;
border-bottom-color: $color-tooltip; top: 50%;
} margin-top: -8px;
} border-right-color: $color-tooltip;
} }
&.tooltip-element-attached-bottom { }
&.tooltip-element-attached-left.tooltip-target-attached-top .tooltip-content {
margin-bottom: 8px; &.tooltip-element-attached-top {
&:before { &.tooltip-element-attached-left.tooltip-target-attached-bottom .tooltip-content {
top: 100%; margin-top: 8px;
left: 8px;
border-top-color: $color-tooltip; &:before {
} bottom: 100%;
} left: 8px;
&.tooltip-element-attached-right.tooltip-target-attached-top .tooltip-content { border-bottom-color: $color-tooltip;
margin-bottom: 8px; }
&:before { }
top: 100%;
right: 8px; &.tooltip-element-attached-right.tooltip-target-attached-bottom .tooltip-content {
border-top-color: $color-tooltip; margin-top: 8px;
}
} &:before {
} bottom: 100%;
&.tooltip-element-attached-top { right: 8px;
&.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content { border-bottom-color: $color-tooltip;
margin-right: 8px; }
&:before { }
top: 8px; }
left: 100%;
border-left-color: $color-tooltip; &.tooltip-element-attached-bottom {
} &.tooltip-element-attached-left.tooltip-target-attached-top .tooltip-content {
} margin-bottom: 8px;
&.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content {
margin-left: 8px; &:before {
&:before { top: 100%;
top: 8px; left: 8px;
right: 100%; border-top-color: $color-tooltip;
border-right-color: $color-tooltip; }
} }
}
} &.tooltip-element-attached-right.tooltip-target-attached-top .tooltip-content {
&.tooltip-element-attached-bottom { margin-bottom: 8px;
&.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content {
margin-right: 8px; &:before {
&:before { top: 100%;
bottom: 8px; right: 8px;
left: 100%; border-top-color: $color-tooltip;
border-left-color: $color-tooltip; }
} }
} }
&.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content {
margin-left: 8px; &.tooltip-element-attached-top {
&:before { &.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content {
bottom: 8px; margin-right: 8px;
right: 100%;
border-right-color: $color-tooltip; &:before {
} top: 8px;
} left: 100%;
} border-left-color: $color-tooltip;
pointer-events: none; }
.tooltip-content { }
padding: 0.5em 1em;
} &.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content {
} margin-left: 8px;
opacity: 0;
&.tooltip-open-transitionend { &:before {
display: block; top: 8px;
} right: 100%;
&.tooltip-after-open { border-right-color: $color-tooltip;
transition: opacity 600ms 400ms; }
opacity: 1; }
} }
&.tooltip-element-attached-bottom {
&.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content {
margin-right: 8px;
&:before {
bottom: 8px;
left: 100%;
border-left-color: $color-tooltip;
}
}
&.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content {
margin-left: 8px;
&:before {
bottom: 8px;
right: 100%;
border-right-color: $color-tooltip;
}
}
}
pointer-events: none;
.tooltip-content {
padding: 0.5em 1em;
}
}
opacity: 0;
&.tooltip-open-transitionend {
display: block;
}
&.tooltip-after-open {
transition: opacity 600ms 400ms;
opacity: 1;
}
} }

View file

@ -1,6 +1,5 @@
{{#link-to 'application' }} {{#link-to 'application'}}
<div class="regular-button button-white back-to-home-button"> <div class="zone-sidebar-title">
<i class="material-icons">arrow_back</i> <i class="material-icons">arrow_back</i>&nbsp;HOME
<div class="name back-to-home-name">home</div>
</div> </div>
{{/link-to}} {{/link-to}}

View file

@ -1,6 +1,5 @@
{{#link-to 'folders.folder' folder.id folder.slug}} {{#link-to 'folders.folder' folder.id folder.slug}}
<div class="regular-button button-white space-button"> <div class="zone-sidebar-title">
<i class="material-icons">arrow_back</i> <i class="material-icons">arrow_back</i>&nbsp;{{folder.name}}
<div class="name space-name">{{folder.name}}</div>
</div> </div>
{{/link-to}} {{/link-to}}

View file

@ -1,5 +1,6 @@
<div class="space-tools"> <div class="space-tools">
{{#if showingDocument}} {{#if showingDocument}}
{{layout/sidebar-intro title=folder.name message='Import files or start with a template'}}
<div {{action 'showList'}} id="cancel-tool" class="round-button round-button-mono button-white doc-tool"> <div {{action 'showList'}} id="cancel-tool" class="round-button round-button-mono button-white doc-tool">
<i class="material-icons color-gray">close</i> <i class="material-icons color-gray">close</i>
</div> </div>
@ -27,7 +28,7 @@
<div class="folders-list"> <div class="folders-list">
{{#if showingList}} {{#if showingList}}
{{layout/sidebar-intro title=appMeta.title message=appMeta.message}}
{{#if session.isEditor}} {{#if session.isEditor}}
<div id="add-space-button" class="regular-button button-white"> <div id="add-space-button" class="regular-button button-white">
<i class="material-icons">add</i> <i class="material-icons">add</i>
@ -89,7 +90,3 @@
{{/if}} {{/if}}
{{/if}} {{/if}}
</div> </div>
<div class="copyright hidden-xs hidden-sm">
<a href="https://documize.com?ref=app-footer" target="_blank">Copyright&nbsp;&copy;&nbsp;2016 Documize Inc.</a>
</div>

View file

@ -1,6 +1,4 @@
<div class="start-document"> <div class="start-document">
<p class="space-name">{{folder.name}}</p>
<div id="import-document-button" class="import-document-button"> <div id="import-document-button" class="import-document-button">
Drag-drop .doc, .docx, .txt, .md, .markdown<br/> Drag-drop .doc, .docx, .txt, .md, .markdown<br/>
or click to select files or click to select files

View file

@ -1,8 +1,4 @@
<form> <form>
<div class="input-control">
<label>General Settings</label>
<div class="tip">Tell people about this Documize instance</div>
</div>
<div> <div>
<div class="input-control"> <div class="input-control">
<label>Title</label> <label>Title</label>

View file

@ -0,0 +1,7 @@
<div class="zone-sidebar-title">
{{title}}
{{yield}}
</div>
<div class="zone-sidebar-info">
{{message}}
</div>

View file

@ -1,3 +1,3 @@
<div id="zone-content" class="zone-content col-lg-9 col-md-9 col-sm-9"> <div id="zone-content" class="zone-content col-lg-offset-3 col-md-offset-3 col-sm-offset-3 col-lg-9 col-md-9 col-sm-9">
{{yield}} {{yield}}
</div> </div>

View file

@ -1,38 +1,61 @@
<div id="zone-navigation" class="zone-navigation"> <div id="zone-navigation" class="zone-navigation">
<div class="pull-left content"> <ul class="top-zone">
{{#if session.authenticated}} {{#if session.authenticated}}
<div id="accounts-button" class="header-button"> <li>
<i class="material-icons">apps</i> <div id="accounts-button" class="filled-tool">
</div> <i class="material-icons">apps</i>
{{else}} </div>
{{#link-to 'application' class='title'}} </li>
<div class="header-button" title=appMeta.title> {{else}}
<i class="material-icons">apps</i> <li>
</div> {{#link-to 'application' class='title'}}
{{/link-to}} <div class="filled-tool" title={{appMeta.title}}>
{{/if}} <i class="material-icons">apps</i>
{{#link-to 'application' class='title'}} </div>
{{appMeta.title}} {{/link-to}}
{{/link-to}} </li>
</div> {{/if}}
<li class="{{if view.folder 'selected'}}">
{{#link-to 'folders'}}
<i class="material-icons icon-tool">home</i>
{{/link-to}}
</li>
<li class="{{if view.search 'selected'}}">
{{#link-to 'search'}}
<i class="material-icons icon-tool">search</i>
{{/link-to}}
</li>
</ul>
<div class="pull-right hidden-xs hidden-sm content"> <ul class="bottom-zone">
{{#if session.authenticated}} {{#if session.session.content.authenticated.user.admin}}
<div class="name">{{session.user.fullname}}</div> <li id="workspace-settings" class="{{if view.settings 'selected'}}" data-tooltip="Settings" data-tooltip-position="right center">
<div id="user-button" class="header-button"> {{#link-to 'customize.general'}}
<i class="initials">{{session.user.initials}}</i> <i class="material-icons icon-tool">tune</i>
</div> {{/link-to}}
{{else}} </li>
<div class="login"> {{/if}}
{{#link-to 'auth.login'}}Login{{/link-to}} {{#if session.authenticated}}
</div> <li id="workspace-logout" data-tooltip="Logout" data-tooltip-position="right center">
{{/if}} {{#link-to 'auth.logout'}}
<div class="search"> <i class="material-icons icon-tool">exit_to_app</i>
{{#link-to 'search'}} {{/link-to}}
<i class="material-icons">search</i> </li>
{{/link-to}} <li class="{{if view.profile 'selected'}}">
</div> {{#link-to 'profile'}}
</div> <div class="filled-tool">
<i class="initials">{{session.user.initials}}</i>
</div>
{{/link-to}}
</li>
{{else}}
<li id="workspace-login" data-tooltip="Login" data-tooltip-position="right center">
{{#link-to 'auth.login'}}
<i class="material-icons icon-tool">lock_open</i>
{{/link-to}}
</li>
{{/if}}
</ul>
{{#if session.authenticated}} {{#if session.authenticated}}
{{#dropdown-menu target="accounts-button" position="bottom left" open="click" }} {{#dropdown-menu target="accounts-button" position="bottom left" open="click" }}
@ -44,23 +67,5 @@
<li class="item"><a href="https://documize.com/welcome">Add team...</a></li> <li class="item"><a href="https://documize.com/welcome">Add team...</a></li>
</ul> </ul>
{{/dropdown-menu}} {{/dropdown-menu}}
{{#dropdown-menu target="user-button" position="bottom right" open="click" }}
<ul class="menu">
<li class="item">
{{#link-to 'profile'}}Profile{{/link-to}}
</li>
{{#if session.session.content.authenticated.user.admin}}
<li class="item">
{{#link-to 'customize.general'}}Settings{{/link-to}}
</li>
{{/if}}
<li class="divider"></li>
<li class="item">
{{#link-to 'auth.logout'}}Logout{{/link-to}}
</li>
</ul>
{{/dropdown-menu}}
{{/if}} {{/if}}
<div class="clearfix"></div>
</div> </div>

View file

@ -1,52 +1,50 @@
{ {
"name": "documize", "name": "documize",
"version": "0.28.2", "version": "0.29.0",
"description": "The Documentation IDE", "description": "The Documentation IDE",
"private": true, "private": true,
"directories": { "directories": {
"doc": "doc", "doc": "doc",
"test": "tests" "test": "tests"
}, },
"scripts": { "scripts": {
"build": "ember build", "build": "ember build",
"start": "ember server", "start": "ember server",
"test": "ember test" "test": "ember test"
}, },
"repository": "", "repository": "",
"engines": { "engines": {
"node": ">= 0.10.0" "node": ">= 0.10.0"
}, },
"author": "", "author": "",
"license": "AGPL", "license": "AGPL",
"devDependencies": { "devDependencies": {
"broccoli-asset-rev": "^2.4.5", "broccoli-asset-rev": "^2.4.5",
"ember-ajax": "^2.4.1", "ember-ajax": "^2.4.1",
"ember-cli": "2.9.1", "ember-cli": "2.9.1",
"ember-cli-app-version": "^2.0.0", "ember-cli-app-version": "^2.0.0",
"ember-cli-babel": "^5.1.7", "ember-cli-babel": "^5.1.7",
"ember-cli-dependency-checker": "^1.3.0", "ember-cli-dependency-checker": "^1.3.0",
"ember-cli-htmlbars": "^1.0.10", "ember-cli-htmlbars": "^1.0.10",
"ember-cli-htmlbars-inline-precompile": "^0.3.3", "ember-cli-htmlbars-inline-precompile": "^0.3.3",
"ember-cli-inject-live-reload": "^1.4.1", "ember-cli-inject-live-reload": "^1.4.1",
"ember-cli-jshint": "^1.0.4", "ember-cli-jshint": "^1.0.4",
"ember-cli-qunit": "^3.0.1", "ember-cli-qunit": "^3.0.1",
"ember-cli-release": "^0.2.9", "ember-cli-release": "^0.2.9",
"ember-cli-sri": "^2.1.0", "ember-cli-sri": "^2.1.0",
"ember-cli-test-loader": "^1.1.0", "ember-cli-test-loader": "^1.1.0",
"ember-cli-uglify": "^1.2.0", "ember-cli-uglify": "^1.2.0",
"ember-data": "^2.9.0", "ember-data": "^2.9.0",
"ember-export-application-global": "^1.0.5", "ember-export-application-global": "^1.0.5",
"ember-load-initializers": "^0.5.1", "ember-load-initializers": "^0.5.1",
"ember-resolver": "^2.0.3", "ember-resolver": "^2.0.3",
"ember-cli-mirage": "^0.2.0", "ember-cli-mirage": "^0.2.0",
"ember-cli-sass": "5.3.1", "ember-cli-sass": "5.3.1",
"ember-data": "^2.9.0", "ember-data": "^2.9.0",
"ember-simple-auth": "git+https://github.com/documize/ember-simple-auth.git#21e638f9e33267d8944835002ee96884d34d568a", "ember-simple-auth": "git+https://github.com/documize/ember-simple-auth.git#21e638f9e33267d8944835002ee96884d34d568a",
"loader.js": "^4.0.10" "loader.js": "^4.0.10"
}, },
"ember-addon": { "ember-addon": {
"paths": [ "paths": ["lib/intercom"]
"lib/intercom" }
]
}
} }

View file

@ -26,8 +26,8 @@ type ProdInfo struct {
// Product returns product edition details // Product returns product edition details
func Product() (p ProdInfo) { func Product() (p ProdInfo) {
p.Major = "0" p.Major = "0"
p.Minor = "28" p.Minor = "29"
p.Patch = "2" p.Patch = "0"
p.Version = fmt.Sprintf("%s.%s.%s", p.Major, p.Minor, p.Patch) p.Version = fmt.Sprintf("%s.%s.%s", p.Major, p.Minor, p.Patch)
p.Edition = "Community" p.Edition = "Community"
p.Title = fmt.Sprintf("%s Edition", p.Edition) p.Title = fmt.Sprintf("%s Edition", p.Edition)

13806
embed/bindata_assetfs.go Normal file

File diff suppressed because one or more lines are too long