diff --git a/gui/app/components/document/space-category.js b/gui/app/components/document/document-meta.js similarity index 82% rename from gui/app/components/document/space-category.js rename to gui/app/components/document/document-meta.js index e1923e5c..acb32b47 100644 --- a/gui/app/components/document/space-category.js +++ b/gui/app/components/document/document-meta.js @@ -10,19 +10,17 @@ // https://documize.com import { computed } from '@ember/object'; - import { inject as service } from '@ember/service'; import Component from '@ember/component'; import { A } from "@ember/array" -import TooltipMixin from '../../mixins/tooltip'; -import NotifierMixin from '../../mixins/notifier'; -export default Component.extend(TooltipMixin, NotifierMixin, { +export default Component.extend({ documentService: service('document'), categoryService: service('category'), sessionService: service('session'), newCategory: '', categories: A([]), + showCategoryModal: false, hasCategories: computed('categories', function() { return this.get('categories').length > 0; }), @@ -53,10 +51,26 @@ export default Component.extend(TooltipMixin, NotifierMixin, { }); }); }); + + let tagz = []; + if (!_.isUndefined(this.get('document.tags')) && this.get('document.tags').length > 1) { + let tags = this.get('document.tags').split('#'); + _.each(tags, function(tag) { + if (tag.length > 0) { + tagz.pushObject(tag); + } + }); + } + + this.set('tagz', A(tagz)); }, actions: { - onSave() { + onShowCategoryModal() { + this.set('showCategoryModal', true); + }, + + onSaveCategory() { let docId = this.get('document.id'); let folderId = this.get('folder.id'); let link = this.get('categories').filterBy('selected', true); @@ -86,6 +100,8 @@ export default Component.extend(TooltipMixin, NotifierMixin, { toUnlink.pushObject(t); }); + this.set('showCategoryModal', false); + this.get('categoryService').setCategoryMembership(toUnlink, 'unlink').then(() => { this.get('categoryService').setCategoryMembership(toLink, 'link').then(() => { this.load(); diff --git a/gui/app/pods/document/index/template.hbs b/gui/app/pods/document/index/template.hbs index 24121090..7d140fc7 100644 --- a/gui/app/pods/document/index/template.hbs +++ b/gui/app/pods/document/index/template.hbs @@ -9,35 +9,22 @@ {{/toolbar/t-toolbar}} {{document/document-heading document=model.document permissions=model.permissions onSaveDocument=(action 'onSaveDocument')}} + {{document/document-meta document=model.document folder=model.folder folders=model.folders permissions=model.permissions}} + {{document/tag-editor documentTags=model.document.tags permissions=model.permissions onChange=(action 'onTagChange')}}
-
- {{document/space-category document=model.document folder=model.folder folders=model.folders permissions=model.permissions}} -
- -
- {{document/document-toolbar - document=model.document folder=model.folder folders=model.folders permissions=model.permissions - onDocumentDelete=(action 'onDocumentDelete') onSaveTemplate=(action 'onSaveTemplate') - onPageSequenceChange=(action 'onPageSequenceChange') onPageLevelChange=(action 'onPageLevelChange') - onGotoPage=(action 'onGotoPage')}} -
-
- - {{document/tag-editor documentTags=model.document.tags permissions=model.permissions onChange=(action 'onTagChange')}} + {{document/document-toolbar + document=model.document folder=model.folder folders=model.folders permissions=model.permissions + onDocumentDelete=(action 'onDocumentDelete') onSaveTemplate=(action 'onSaveTemplate') + onPageSequenceChange=(action 'onPageSequenceChange') onPageLevelChange=(action 'onPageLevelChange') + onGotoPage=(action 'onGotoPage')}}
- - {{document/document-sidebar tab=tab - document=model.document folder=model.folder pages=model.pages page=model.page permissions=model.permissions - onPageSequenceChange=(action 'onPageSequenceChange') onPageLevelChange=(action 'onPageLevelChange') - onGotoPage=(action 'onGotoPage')}} - - - {{#if model.document.template}} -
Template
- {{/if}} + {{document/document-sidebar tab=tab + document=model.document folder=model.folder pages=model.pages page=model.page permissions=model.permissions + onPageSequenceChange=(action 'onPageSequenceChange') onPageLevelChange=(action 'onPageLevelChange') + onGotoPage=(action 'onGotoPage')}} {{document/document-view document=model.document links=model.links pages=model.pages diff --git a/gui/app/styles/view/document/doc-meta.scss b/gui/app/styles/view/document/doc-meta.scss index a449b9b8..cd488a91 100644 --- a/gui/app/styles/view/document/doc-meta.scss +++ b/gui/app/styles/view/document/doc-meta.scss @@ -23,18 +23,34 @@ > .document-customfields { margin-bottom: 4rem; - .heading { - font-size: 1.1rem; - font-weight: bold; - color: $color-gray; - text-align: left; - } + .row { + padding: 5px 0; + margin-bottom: 10px; - .value { - font-size: 1.1rem; - font-weight: normal; - color: $color-black; - text-align: left; + &:hover { + .action-button { + visibility: visible; + } + } + + .heading { + font-size: 1.1rem; + font-weight: bold; + color: $color-gray; + text-align: left; + } + + .action-button { + visibility: hidden; + margin-left: 15px; + } + + .value { + font-size: 1.1rem; + font-weight: normal; + color: $color-black; + text-align: left; + } } } } diff --git a/gui/app/styles/view/document/view.scss b/gui/app/styles/view/document/view.scss index b981c269..f1f4f3ed 100644 --- a/gui/app/styles/view/document/view.scss +++ b/gui/app/styles/view/document/view.scss @@ -354,9 +354,3 @@ } } } - -.document-template-header { - color: $color-goldy; - font-size: 1.5em; - margin-bottom: 20px; -} diff --git a/gui/app/templates/components/document/document-heading.hbs b/gui/app/templates/components/document/document-heading.hbs index 1070fe95..2137ba54 100644 --- a/gui/app/templates/components/document/document-heading.hbs +++ b/gui/app/templates/components/document/document-heading.hbs @@ -1,7 +1,12 @@ {{#unless editMode}}
-

{{document.name}}

+

+ {{#if document.template}} + Template   + {{/if}} + {{document.name}} +

{{document.excerpt}}
diff --git a/gui/app/templates/components/document/document-meta.hbs b/gui/app/templates/components/document/document-meta.hbs new file mode 100644 index 00000000..eb1e922c --- /dev/null +++ b/gui/app/templates/components/document/document-meta.hbs @@ -0,0 +1,48 @@ +
+
+ +
+
Categories + {{#if canSelectCategory}} +
+ edit +
+ {{/if}} +
+
+ {{#each selectedCategories as |cat|}} + {{#link-to 'folder' folder.id folder.slug (query-params category=cat.id)}} + {{cat.category}} + {{/link-to}} +   + {{else}} + {{#if canAddCategory}} + {{#if canSelectCategory}} + <select> + {{else}} + {{#link-to 'folder.category' folder.id folder.slug class='non-printable'}}Manage{{/link-to}} + {{/if}} + {{/if}} + {{/each}} +
+
+ +
+
Tags
+
+ {{#each tagz as |t index|}} + {{concat '#' t}}   + {{/each}} +
+
+ +
+
+ +{{#if permissions.documentEdit}} + {{#ui/ui-dialog title="Set Document Cateogories" confirmCaption="Select" buttonType="btn-outline-success" show=showCategoryModal onAction=(action 'onSaveCategory')}} +

Select who can view documents within category

+ {{ui/ui-list-picker items=categories nameField='category' singleSelect=false}} + {{/ui/ui-dialog}} +{{/if}} + diff --git a/gui/app/templates/components/document/space-category.hbs b/gui/app/templates/components/document/space-category.hbs deleted file mode 100644 index cad20614..00000000 --- a/gui/app/templates/components/document/space-category.hbs +++ /dev/null @@ -1,37 +0,0 @@ -
-
-
-
- Categories -
-
- {{#each selectedCategories as |cat|}} - {{cat.category}}{{#unless cat.lastObject}}, {{/unless}} - {{/each}} -
-
-
-
- -{{#if canAddCategory}} - {{#unless canSelectCategory}} - {{#link-to 'folder.category' folder.id folder.slug class='non-printable'}}Manage{{/link-to}} - {{/unless}} -{{else}} -

 

-{{/if}} - -{{#if canSelectCategory}} -
- add -
- {{#dropdown-dialog target="document-category-button" position="bottom right" button="set" color="flat-green" onAction=(action 'onSave')}} -

Set document categories

-
- {{ui/ui-list-picker items=categories nameField='category'}} - {{#if canAddCategory}} - {{#link-to 'folder.category' folder.id folder.slug}}Manage{{/link-to}} - {{/if}} -
- {{/dropdown-dialog}} -{{/if}} diff --git a/gui/package.json b/gui/package.json index 8be61bed..4d766259 100644 --- a/gui/package.json +++ b/gui/package.json @@ -5,48 +5,49 @@ "private": true, "repository": "", "directories": { - "doc": "doc", - "test": "tests" + "doc": "doc", + "test": "tests" }, "scripts": { - "build": "ember build", - "start": "ember server", - "test": "ember test" + "build": "ember build", + "start": "ember server", + "test": "ember test" }, "engines": { - "node": "^4.5 || 6.* || >= 7.*" + "node": "^4.5 || 6.* || >= 7.*" }, "author": "Documize Inc.", "license": "AGPL", "devDependencies": { - "broccoli-asset-rev": "^2.4.5", - "ember-ajax": "^3.0.0", - "ember-cli": "^2.16.2", - "ember-cli-app-version": "^3.0.0", - "ember-cli-babel": "^6.3.0", - "ember-cli-dependency-checker": "^2.0.0", - "ember-cli-eslint": "^4.0.0", - "ember-cli-htmlbars": "^2.0.1", - "ember-cli-htmlbars-inline-precompile": "^1.0.0", - "ember-cli-inject-live-reload": "^1.4.1", - "ember-cli-mirage": "^0.2.0", - "ember-cli-qunit": "^4.0.0", - "ember-cli-sass": "5.3.1", - "ember-cli-shims": "^1.1.0", - "ember-cli-sri": "^2.1.0", - "ember-cli-test-loader": "^1.1.0", - "ember-cli-uglify": "^1.2.0", - "ember-data": "2.16.3", - "ember-export-application-global": "^2.0.0", - "ember-load-initializers": "^1.0.0", - "ember-resolver": "^4.0.0", - "ember-simple-auth": "^1.4.0", - "ember-source": "^2.16.2", - "ember-truth-helpers": "^1.3.0", - "loader.js": "^4.2.3" + "broccoli-asset-rev": "^2.4.5", + "ember-ajax": "^3.0.0", + "ember-cli": "^2.16.2", + "ember-cli-app-version": "^3.0.0", + "ember-cli-babel": "^6.3.0", + "ember-cli-dependency-checker": "^2.0.0", + "ember-cli-eslint": "^4.0.0", + "ember-cli-htmlbars": "^2.0.1", + "ember-cli-htmlbars-inline-precompile": "^1.0.0", + "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-mirage": "^0.2.0", + "ember-cli-qunit": "^4.0.0", + "ember-cli-sass": "5.3.1", + "ember-cli-shims": "^1.1.0", + "ember-cli-sri": "^2.1.0", + "ember-cli-test-loader": "^1.1.0", + "ember-cli-uglify": "^1.2.0", + "ember-concurrency": "^0.8.12", + "ember-data": "2.16.3", + "ember-export-application-global": "^2.0.0", + "ember-load-initializers": "^1.0.0", + "ember-resolver": "^4.0.0", + "ember-simple-auth": "^1.4.0", + "ember-source": "^2.16.2", + "ember-truth-helpers": "^1.3.0", + "loader.js": "^4.2.3" }, "dependencies": { - "bootstrap": "^4.0.0-beta.2", - "popper.js": "^1.12.9" + "bootstrap": "^4.0.0-beta.2", + "popper.js": "^1.12.9" } - } +} diff --git a/gui/yarn.lock b/gui/yarn.lock index ccdb7231..034ebf6e 100644 --- a/gui/yarn.lock +++ b/gui/yarn.lock @@ -364,7 +364,7 @@ babel-core@^5.0.0: trim-right "^1.0.0" try-resolve "^1.0.0" -babel-core@^6.14.0, babel-core@^6.26.0: +babel-core@^6.14.0, babel-core@^6.24.1, babel-core@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: @@ -2126,6 +2126,24 @@ ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.3.0, e clone "^2.0.0" ember-cli-version-checker "^2.0.0" +ember-cli-babel@^6.0.0-beta.4: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.10.0.tgz#81424acd1d97fb13658168121eeb2007d6edee84" + dependencies: + amd-name-resolver "0.0.7" + babel-plugin-debug-macros "^0.1.11" + babel-plugin-ember-modules-api-polyfill "^2.0.1" + babel-plugin-transform-es2015-modules-amd "^6.24.0" + babel-polyfill "^6.16.0" + babel-preset-env "^1.5.1" + broccoli-babel-transpiler "^6.1.2" + broccoli-debug "^0.6.2" + broccoli-funnel "^1.0.0" + broccoli-source "^1.1.0" + clone "^2.0.0" + ember-cli-version-checker "^2.1.0" + semver "^5.4.1" + ember-cli-babel@^6.8.2: version "6.9.0" resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.9.0.tgz#5147391389bdbb7091d15f81ae1dff1eb49d71aa" @@ -2468,6 +2486,15 @@ ember-cli@^2.16.2: walk-sync "^0.3.0" yam "0.0.22" +ember-concurrency@^0.8.12: + version "0.8.12" + resolved "https://registry.yarnpkg.com/ember-concurrency/-/ember-concurrency-0.8.12.tgz#fb91180e5efeb1024cfa2cfb99d2fe6721930c91" + dependencies: + babel-core "^6.24.1" + ember-cli-babel "^6.8.2" + ember-getowner-polyfill "^2.0.0" + ember-maybe-import-regenerator "^0.1.5" + ember-cookies@^0.0.13: version "0.0.13" resolved "https://registry.yarnpkg.com/ember-cookies/-/ember-cookies-0.0.13.tgz#18350df766240793d46744e4ee5c9a55ae6b4e0a" @@ -2520,6 +2547,12 @@ ember-factory-for-polyfill@^1.1.0: dependencies: ember-cli-version-checker "^1.2.0" +ember-factory-for-polyfill@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/ember-factory-for-polyfill/-/ember-factory-for-polyfill-1.3.1.tgz#b446ed64916d293c847a4955240eb2c993b86eae" + dependencies: + ember-cli-version-checker "^2.1.0" + "ember-fetch@^2.1.0 || ^3.0.0": version "3.4.3" resolved "https://registry.yarnpkg.com/ember-fetch/-/ember-fetch-3.4.3.tgz#fb8ba73148bb2399a82b037e4fdf9a953cd496ba" @@ -2539,6 +2572,13 @@ ember-getowner-polyfill@^1.1.0, ember-getowner-polyfill@^1.2.2: ember-cli-version-checker "^1.2.0" ember-factory-for-polyfill "^1.1.0" +ember-getowner-polyfill@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ember-getowner-polyfill/-/ember-getowner-polyfill-2.2.0.tgz#38e7dccbcac69d5ec694000329ec0b2be651d2b2" + dependencies: + ember-cli-version-checker "^2.1.0" + ember-factory-for-polyfill "^1.3.1" + ember-inflector@^1.9.2: version "1.12.1" resolved "https://registry.yarnpkg.com/ember-inflector/-/ember-inflector-1.12.1.tgz#d8bd2ca2f327b439720f89923fe614d46b5da1ca" @@ -2568,6 +2608,15 @@ ember-lodash@^4.0: ember-cli-babel "^6.4.1" lodash-es "^4.17.4" +ember-maybe-import-regenerator@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ember-maybe-import-regenerator/-/ember-maybe-import-regenerator-0.1.6.tgz#35d41828afa6d6a59bc0da3ce47f34c573d776ca" + dependencies: + broccoli-funnel "^1.0.1" + broccoli-merge-trees "^1.0.0" + ember-cli-babel "^6.0.0-beta.4" + regenerator-runtime "^0.9.5" + ember-qunit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-2.2.0.tgz#3cdf400031c93a38de781a7304819738753b7f99" @@ -5324,6 +5373,10 @@ regenerator-runtime@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" +regenerator-runtime@^0.9.5: + version "0.9.6" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -5582,7 +5635,7 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" -"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.1.1, semver@^5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.1.1, semver@^5.3.0, semver@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"