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

workspace bar ready!

This commit is contained in:
Harvey Kandola 2016-11-05 14:53:44 -07:00
parent b7392b52d2
commit c4dfa42087
22 changed files with 270 additions and 254 deletions

View file

@ -8,38 +8,38 @@ The mission is to bring software dev inspired features (refactoring, testing, li
## Latest version
v0.28.2
v0.29.0
## OS Support
* Windows
* Linux
* OSX
- Windows
- Linux
- OSX
## Tech stack
* EmberJS (v2.9.1)
* Go (v1.7.3)
* MySQL (v5.7.10+)
- EmberJS (v2.9.1)
- Go (v1.7.3)
- MySQL (v5.7.10+)
## Documentation
* [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)
* [Configuration guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/VzSL8cVZ4QAB2B4Y/configure-documize-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)
- [Configuration guide](https://developers.documize.com/s/VzO9ZqMOCgABGyfW/installation/d/VzSL8cVZ4QAB2B4Y/configure-documize-guide)
## Auth0 Integration
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
* [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
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

@ -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

@ -22,6 +22,7 @@ export default Ember.Component.extend({
appMeta: service(),
session: service(),
view: {
folder: false,
search: false,
settings: false,
profile: false
@ -44,8 +45,8 @@ export default Ember.Component.extend({
}
let route = this.get('router.currentRouteName');
console.log(route);
this.set('view.settings', (route === 'customize.general') ? true : false);
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);
},

View file

@ -1,6 +1,7 @@
{{layout/zone-navigation}}
{{#layout/zone-sidebar}}
{{layout/sidebar-intro title='Settings' message='Documize application settings'}}
<div class="sidebar-menu">
<ul class="options">
{{#link-to 'customize.general' activeClass='selected' class="option" tagName="li"}}General{{/link-to}}

View file

@ -1,7 +1,11 @@
{{layout/zone-navigation}}
{{#layout/zone-sidebar}}
{{back-to-space folder=model}}
{{#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>

View file

@ -1,6 +1,7 @@
{{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>

View file

@ -1,12 +1,10 @@
{{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="input-control">
{{focus-input type="text" value=filter placeholder='search'}}
<p>#tags, keywords, "some phrase"</p>
<p>keyword AND keyword</p>
<p>keyword OR keyword</p>
</div>
</div>
{{/layout/zone-sidebar}}

View file

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

View file

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

View file

@ -0,0 +1,17 @@
.explainer {
text-align: center;
> .empty-state {
margin: 30px 0 0;
font-size: 2rem;
color: $color-gray;
font-family: 'open_sanslight';
}
> .normal-state {
margin: 10px;
font-size: 2rem;
color: $color-gray;
font-family: 'open_sanslight';
}
}

View file

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

View file

@ -9,8 +9,8 @@
z-index: 999;
overflow-x: hidden;
> .bottom-zone,
> .top-zone {
> .top-zone,
> .bottom-zone {
position: absolute;
padding: 0;
width: 100%;
@ -24,7 +24,7 @@
}
.selected {
background-color: $color-link;
// background-color: $color-link;
> a {
> .material-icons {
@ -37,12 +37,12 @@
> .top-zone {
top: 0;
padding-top: 10px;
// padding-top: 10px;
}
> .bottom-zone {
bottom: 0;
// padding-bottom: 10px;
padding-bottom: 10px;
}
.filled-tool {
@ -100,35 +100,11 @@
}
}
.zone-header {
background-color: $color-header;
padding: 30px 40px;
> .info {
padding: 20px 0;
> .title {
color: $color-off-black;
font-size: 1.2rem;
}
> .message {
color: $color-gray;
font-size: 1rem;
margin: 10px 0 0 5px;
}
}
> .actions {
padding: 20px 0;
}
}
.zone-sidebar {
background-color: $color-header;
height: 100%;
min-height: 100%;
padding: 35px 40px 0;
padding: 30px 40px 0;
position: fixed;
margin: 0;
z-index: 888;
@ -138,13 +114,21 @@
color: $color-primary;
font-size: 1.3rem;
font-weight: bold;
margin-bottom: 30px;
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 {

View file

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

View file

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

View file

@ -1,4 +1,4 @@
{{#link-to 'application' }}
{{#link-to 'application'}}
<div class="zone-sidebar-title">
<i class="material-icons">arrow_back</i>&nbsp;HOME
</div>

View file

@ -1,5 +1,6 @@
<div class="space-tools">
{{#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">
<i class="material-icons color-gray">close</i>
</div>
@ -26,11 +27,8 @@
</div>
<div class="folders-list">
<div class="zone-sidebar-title">
{{appMeta.title}}
</div>
{{#if showingList}}
{{layout/sidebar-intro title=appMeta.title message=appMeta.message}}
{{#if session.isEditor}}
<div id="add-space-button" class="regular-button button-white">
<i class="material-icons">add</i>

View file

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

View file

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

@ -15,19 +15,9 @@
{{/link-to}}
</li>
{{/if}}
<li>
{{#link-to 'search'}}
<i class="material-icons icon-tool">language</i>
{{/link-to}}
</li>
<li>
{{#link-to 'search'}}
<i class="material-icons icon-tool">people_outline</i>
{{/link-to}}
</li>
<li>
{{#link-to 'search'}}
<i class="material-icons icon-tool">person_outline</i>
<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'}}">

View file

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

View file

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