1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-22 14:49:42 +02:00

Reafctor client side (EJS) constants

This commit is contained in:
McMatts 2018-04-20 14:38:10 +01:00
parent 8fb001422a
commit bde0091a4a
23 changed files with 118 additions and 367 deletions

View file

@ -9,18 +9,22 @@
// //
// https://documize.com // https://documize.com
import { equal, empty } from '@ember/object/computed'; import { computed } from '@ember/object';
import { empty } from '@ember/object/computed';
import { set } from '@ember/object'; import { set } from '@ember/object';
import { copy } from '@ember/object/internals'; import { copy } from '@ember/object/internals';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Component from '@ember/component'; import Component from '@ember/component';
import constants from '../../utils/constants';
import encoding from '../../utils/encoding'; import encoding from '../../utils/encoding';
export default Component.extend({ export default Component.extend({
appMeta: service(), appMeta: service(),
isDocumizeProvider: equal('authProvider', constants.AuthProvider.Documize), isDocumizeProvider: computed('authProvider', function() {
isKeycloakProvider: equal('authProvider', constants.AuthProvider.Keycloak), return this.get('authProvider') === this.get('constants').AuthProvider.Documize;
}),
isKeycloakProvider: computed('authProvider', function() {
return this.get('authProvider') === this.get('constants').AuthProvider.Keycloak;
}),
KeycloakUrlError: empty('keycloakConfig.url'), KeycloakUrlError: empty('keycloakConfig.url'),
KeycloakRealmError: empty('keycloakConfig.realm'), KeycloakRealmError: empty('keycloakConfig.realm'),
KeycloakClientIdError: empty('keycloakConfig.clientId'), KeycloakClientIdError: empty('keycloakConfig.clientId'),
@ -47,6 +51,7 @@ export default Component.extend({
this._super(...arguments); this._super(...arguments);
let provider = this.get('authProvider'); let provider = this.get('authProvider');
let constants = this.get('constants');
switch (provider) { switch (provider) {
case constants.AuthProvider.Documize: case constants.AuthProvider.Documize:
@ -71,14 +76,17 @@ export default Component.extend({
actions: { actions: {
onDocumize() { onDocumize() {
let constants = this.get('constants');
this.set('authProvider', constants.AuthProvider.Documize); this.set('authProvider', constants.AuthProvider.Documize);
}, },
onKeycloak() { onKeycloak() {
let constants = this.get('constants');
this.set('authProvider', constants.AuthProvider.Keycloak); this.set('authProvider', constants.AuthProvider.Keycloak);
}, },
onSave() { onSave() {
let constants = this.get('constants');
let provider = this.get('authProvider'); let provider = this.get('authProvider');
let config = this.get('authConfig'); let config = this.get('authConfig');

View file

@ -15,11 +15,11 @@ import { inject as service } from '@ember/service';
import { computed } from '@ember/object'; import { computed } from '@ember/object';
import Component from '@ember/component'; import Component from '@ember/component';
import TooltipMixin from '../../mixins/tooltip'; import TooltipMixin from '../../mixins/tooltip';
import models from '../../utils/model';
export default Component.extend(TooltipMixin, { export default Component.extend(TooltipMixin, {
documentService: service('document'), documentService: service('document'),
sectionService: service('section'), sectionService: service('section'),
store: service(),
appMeta: service(), appMeta: service(),
link: service(), link: service(),
hasPages: notEmpty('pages'), hasPages: notEmpty('pages'),
@ -265,7 +265,7 @@ export default Component.extend(TooltipMixin, {
return; return;
} }
let page = models.PageModel.create(); let page = this.get('store').createRecord('page');
page.set('documentId', this.get('document.id')); page.set('documentId', this.get('document.id'));
page.set('title', sectionName); page.set('title', sectionName);
page.set('contentType', section.get('contentType')); page.set('contentType', section.get('contentType'));
@ -296,7 +296,7 @@ export default Component.extend(TooltipMixin, {
return; return;
} }
let page = models.PageModel.create(); let page = this.get('store').createRecord('page');
page.set('documentId', this.get('document.id')); page.set('documentId', this.get('document.id'));
page.set('title', `${block.get('title')}`); page.set('title', `${block.get('title')}`);
page.set('body', block.get('body')); page.set('body', block.get('body'));

View file

@ -36,13 +36,12 @@ export default Component.extend(AuthMixin, {
didReceiveAttrs() { didReceiveAttrs() {
this._super(...arguments); this._super(...arguments);
// this.setup(); this.setup();
}, },
didUpdateAttrs() { didUpdateAttrs() {
this._super(...arguments); this._super(...arguments);
// this.set('selectedDocuments', []); // this.setup();
// this.set('filteredDocs', []);
}, },
setup() { setup() {
@ -65,10 +64,12 @@ export default Component.extend(AuthMixin, {
schedule('afterRender', () => { schedule('afterRender', () => {
if (this.get('categoryFilter') !== '') { if (this.get('categoryFilter') !== '') {
this.send('onDocumentFilter', 'category', this.get('categoryFilter')); this.send('onDocumentFilter', 'category', this.get('categoryFilter'));
} else if (this.get('rootDocCount') > 0) { } else {
this.send('onDocumentFilter', 'space', this.get('folder.id')); this.send('onDocumentFilter', 'space', this.get('folder.id'));
} else if (selectedCategory !== '') { // } else if (this.get('rootDocCount') > 0) {
this.send('onDocumentFilter', 'category', selectedCategory); // this.send('onDocumentFilter', 'space', this.get('folder.id'));
// } else if (selectedCategory !== '') {
// this.send('onDocumentFilter', 'category', selectedCategory);
} }
}); });
}, },
@ -148,8 +149,8 @@ export default Component.extend(AuthMixin, {
}); });
this.set('categoryFilter', ''); this.set('categoryFilter', '');
this.set('uncategorizedSelected', true);
this.set('spaceSelected', false); this.set('spaceSelected', false);
this.set('uncategorizedSelected', true);
break; break;
case 'space': case 'space':

View file

@ -10,7 +10,6 @@
// https://documize.com // https://documize.com
import Component from '@ember/component'; import Component from '@ember/component';
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';
import AuthMixin from '../../mixins/auth'; import AuthMixin from '../../mixins/auth';
@ -24,10 +23,13 @@ export default Component.extend(TooltipMixin, NotifierMixin, AuthMixin, {
this._super(...arguments); this._super(...arguments);
this.publicFolders = []; this.publicFolders = [];
this.protectedFolders = []; this.protectedFolders = [];
this.privateFolders = []; this.privateFolders = [];
}, },
didReceiveAttrs() { didReceiveAttrs() {
this._super(...arguments);
let constants = this.get('constants');
let folders = this.get('spaces'); let folders = this.get('spaces');
let publicFolders = []; let publicFolders = [];
let protectedFolders = []; let protectedFolders = [];

View file

@ -14,7 +14,6 @@ import { computed } from '@ember/object';
import { schedule } from '@ember/runloop'; import { schedule } from '@ember/runloop';
import { A } from '@ember/array'; import { A } from '@ember/array';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import constants from '../../utils/constants';
import TooltipMixin from '../../mixins/tooltip'; import TooltipMixin from '../../mixins/tooltip';
import ModalMixin from '../../mixins/modal'; import ModalMixin from '../../mixins/modal';
import AuthMixin from '../../mixins/auth'; import AuthMixin from '../../mixins/auth';
@ -51,7 +50,7 @@ export default Component.extend(ModalMixin, TooltipMixin, AuthMixin, {
dropzone: null, dropzone: null,
spaceTypeOptions: A([]), spaceTypeOptions: A([]),
spaceType: constants.FolderType.Private, spaceType: 0,
likes: '', likes: '',
allowLikes: false, allowLikes: false,
@ -69,6 +68,7 @@ export default Component.extend(ModalMixin, TooltipMixin, AuthMixin, {
didReceiveAttrs() { didReceiveAttrs() {
this._super(...arguments); this._super(...arguments);
let constants = this.get('constants');
let folder = this.get('space'); let folder = this.get('space');
let targets = _.reject(this.get('spaces'), {id: folder.get('id')}); let targets = _.reject(this.get('spaces'), {id: folder.get('id')});

View file

@ -13,7 +13,6 @@ import $ from 'jquery';
import { notEmpty } from '@ember/object/computed'; import { notEmpty } from '@ember/object/computed';
import { inject as service } from '@ember/service' import { inject as service } from '@ember/service'
import ModalMixin from '../../mixins/modal'; import ModalMixin from '../../mixins/modal';
import constants from '../../utils/constants';
import Component from '@ember/component'; import Component from '@ember/component';
export default Component.extend(ModalMixin, { export default Component.extend(ModalMixin, {
@ -31,6 +30,8 @@ export default Component.extend(ModalMixin, {
init() { init() {
this._super(...arguments); this._super(...arguments);
let constants = this.get('constants');
this.pins = []; this.pins = [];
if (this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak) { if (this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak) {

View file

@ -12,9 +12,49 @@
import EmberObject from "@ember/object"; import EmberObject from "@ember/object";
// access like so: // access like so:
// let constants = this.get('constants'); // let constants = this.get('constants');
let constants = EmberObject.extend({ let constants = EmberObject.extend({
FolderType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Public: 1,
Private: 2,
Protected: 3
},
AuthProvider: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Documize: 'documize',
Keycloak: 'keycloak'
},
DocumentActionType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Read: 1,
Feedback: 2,
Contribute: 3,
Approve: 4,
Approved: 5,
Rejected: 6,
Publish: 7,
},
UserActivityType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Created: 1,
Read: 2,
Edited: 3,
Deleted: 4,
Archived: 5,
Approved: 6,
Reverted: 7,
PublishedTemplate: 8,
PublishedBlock: 9,
Feedback: 10,
Rejected: 11,
SentSecureLink: 12,
Draft: 13,
Versioned: 14,
Searched: 15,
Published: 16
},
// Document // Document
ProtectionType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects ProtectionType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
None: 0, None: 0,
@ -78,7 +118,18 @@ let constants = EmberObject.extend({
Unversioned: 1, // turn unversioned into versioned document Unversioned: 1, // turn unversioned into versioned document
Cloned: 2, // create versioned document by cloning existing versioned document Cloned: 2, // create versioned document by cloning existing versioned document
Linked: 3 // link existing unversion document into this version group Linked: 3 // link existing unversion document into this version group
} },
// Document
ActionType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Read: 1,
Feedback: 2,
Contribute: 3,
ApprovalRequest: 4,
Approved: 5,
Rejected: 6,
Publish: 7,
},
}); });
export default { constants } export default { constants }

View file

@ -1,26 +0,0 @@
// 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 EmberObject from "@ember/object";
let econstants = EmberObject.extend({
// Document
ActionType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
Read: 1,
Feedback: 2,
Contribute: 3,
ApprovalRequest: 4,
Approved: 5,
Rejected: 6,
},
});
export default { econstants }

View file

@ -11,7 +11,6 @@
import $ from 'jquery'; import $ from 'jquery';
import constants from '../constants/constants'; import constants from '../constants/constants';
import econstants from '../constants/econstants';
export function initialize(application) { export function initialize(application) {
// address insecure jquery defaults (kudos: @nathanhammond) // address insecure jquery defaults (kudos: @nathanhammond)
@ -24,9 +23,7 @@ export function initialize(application) {
}); });
let cs = constants.constants; let cs = constants.constants;
let ec = econstants.econstants;
application.register('constants:main', cs); application.register('constants:main', cs);
application.register('econstants:main', ec);
Dropzone.autoDiscover = false; Dropzone.autoDiscover = false;
CodeMirror.modeURL = "/codemirror/mode/%N/%N.js"; CodeMirror.modeURL = "/codemirror/mode/%N/%N.js";

View file

@ -1,25 +0,0 @@
// 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
export function initialize(application) {
application.inject('route', 'econstants', 'econstants:main');
application.inject('controller', 'econstants', 'econstants:main');
application.inject('component', 'econstants', 'econstants:main');
application.inject('template', 'econstants', 'econstants:main');
application.inject('service', 'econstants', 'econstants:main');
application.inject('model', 'econstants', 'econstants:main');
}
export default {
name: 'econstants',
after: "application",
initialize: initialize
};

View file

@ -10,9 +10,7 @@
// https://documize.com // https://documize.com
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Mixin from '@ember/object/mixin'; import Mixin from '@ember/object/mixin';
import constants from '../utils/constants';
export default Mixin.create({ export default Mixin.create({
appMeta: service(), appMeta: service(),
@ -21,7 +19,9 @@ export default Mixin.create({
init() { init() {
this._super(...arguments); this._super(...arguments);
let constants = this.get('constants');
this.set('isAuthProviderDocumize', this.get('appMeta.authProvider') === constants.AuthProvider.Documize); this.set('isAuthProviderDocumize', this.get('appMeta.authProvider') === constants.AuthProvider.Documize);
this.set('isAuthProviderKeycloak', this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak); this.set('isAuthProviderKeycloak', this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak);
} }
}); });

View file

@ -12,7 +12,6 @@
import { computed } from '@ember/object'; import { computed } from '@ember/object';
import Model from 'ember-data/model'; import Model from 'ember-data/model';
import attr from 'ember-data/attr'; import attr from 'ember-data/attr';
import constants from '../utils/constants';
export default Model.extend({ export default Model.extend({
orgId: attr('string'), orgId: attr('string'),
@ -28,6 +27,7 @@ export default Model.extend({
activityLabel: computed('activityType', function() { activityLabel: computed('activityType', function() {
let label = ''; let label = '';
let constants = this.get('constants');
switch (this.get('activityType')) { switch (this.get('activityType')) {
case constants.UserActivityType.Created: case constants.UserActivityType.Created:
@ -60,6 +60,9 @@ export default Model.extend({
case constants.UserActivityType.Rejected: case constants.UserActivityType.Rejected:
label = 'Rejected'; label = 'Rejected';
break; break;
case constants.UserActivityType.Published:
label = 'Published';
break;
default: default:
break; break;
} }
@ -69,6 +72,7 @@ export default Model.extend({
activityColor: computed('activityType', function() { activityColor: computed('activityType', function() {
let color = ''; let color = '';
let constants = this.get('constants');
switch (this.get('activityType')) { switch (this.get('activityType')) {
case constants.UserActivityType.Created: case constants.UserActivityType.Created:
@ -101,6 +105,9 @@ export default Model.extend({
case constants.UserActivityType.Rejected: case constants.UserActivityType.Rejected:
color = 'color-red'; color = 'color-red';
break; break;
case constants.UserActivityType.Published:
color = 'color-green';
break;
default: default:
break; break;
} }

View file

@ -11,7 +11,6 @@
import { computed } from '@ember/object'; import { computed } from '@ember/object';
import attr from 'ember-data/attr'; import attr from 'ember-data/attr';
import constants from '../utils/constants';
import stringUtil from '../utils/string'; import stringUtil from '../utils/string';
import Model from 'ember-data/model'; import Model from 'ember-data/model';
@ -20,6 +19,7 @@ export default Model.extend({
orgId: attr('string'), orgId: attr('string'),
userId: attr('string'), userId: attr('string'),
folderType: attr('number', { defaultValue: 2 }), folderType: attr('number', { defaultValue: 2 }),
lifecycle: attr('number', { defaultValue: 1 }),
likes: attr('string'), likes: attr('string'),
allowLikes: computed('likes', function () { allowLikes: computed('likes', function () {
@ -31,14 +31,17 @@ export default Model.extend({
}), }),
markAsRestricted() { markAsRestricted() {
let constants = this.get('constants');
this.set('folderType', constants.FolderType.Protected); this.set('folderType', constants.FolderType.Protected);
}, },
markAsPrivate() { markAsPrivate() {
let constants = this.get('constants');
this.set('folderType', constants.FolderType.Private); this.set('folderType', constants.FolderType.Private);
}, },
markAsPublic() { markAsPublic() {
let constants = this.get('constants');
this.set('folderType', constants.FolderType.Public); this.set('folderType', constants.FolderType.Public);
}, },

View file

@ -25,6 +25,7 @@ export default Model.extend({
versioned: attr('string'), versioned: attr('string'),
drafted: attr('string'), drafted: attr('string'),
archived: attr('string'), archived: attr('string'),
published: attr('string'),
hasContributed: computed('contributed', function () { hasContributed: computed('contributed', function () {
return this.get('contributed').length > 0; return this.get('contributed').length > 0;
@ -49,5 +50,8 @@ export default Model.extend({
}), }),
hasArchived: computed('archived', function () { hasArchived: computed('archived', function () {
return this.get('archived').length > 0; return this.get('archived').length > 0;
}),
hasPublished: computed('published', function () {
return this.get('published').length > 0;
}) })
}); });

View file

@ -12,12 +12,13 @@
import $ from 'jquery'; import $ from 'jquery';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Route from '@ember/routing/route'; import Route from '@ember/routing/route';
import constants from '../../../utils/constants';
export default Route.extend({ export default Route.extend({
appMeta: service(), appMeta: service(),
beforeModel() { beforeModel() {
let constants = this.get('constants');
if (this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak) { if (this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak) {
this.transitionTo('auth.login'); this.transitionTo('auth.login');
} }

View file

@ -10,10 +10,8 @@
// https://documize.com // https://documize.com
import { Promise as EmberPromise } from 'rsvp'; import { Promise as EmberPromise } from 'rsvp';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Route from '@ember/routing/route'; import Route from '@ember/routing/route';
import constants from '../../../utils/constants';
export default Route.extend({ export default Route.extend({
session: service(), session: service(),
@ -29,6 +27,8 @@ export default Route.extend({
beforeModel(transition) { beforeModel(transition) {
return new EmberPromise((resolve) => { return new EmberPromise((resolve) => {
let constants = this.get('constants');
this.set('mode', is.not.undefined(transition.queryParams.mode) ? transition.queryParams.mode : 'reject'); this.set('mode', is.not.undefined(transition.queryParams.mode) ? transition.queryParams.mode : 'reject');
if (this.get('mode') === 'reject' || this.get('appMeta.authProvider') !== constants.AuthProvider.Keycloak) { if (this.get('mode') === 'reject' || this.get('appMeta.authProvider') !== constants.AuthProvider.Keycloak) {

View file

@ -13,7 +13,6 @@ import $ from 'jquery';
import { Promise as EmberPromise } from 'rsvp'; import { Promise as EmberPromise } from 'rsvp';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Route from '@ember/routing/route'; import Route from '@ember/routing/route';
import constants from '../../../utils/constants';
export default Route.extend({ export default Route.extend({
appMeta: service(), appMeta: service(),
@ -23,6 +22,8 @@ export default Route.extend({
beforeModel(transition) { beforeModel(transition) {
return new EmberPromise((resolve) => { return new EmberPromise((resolve) => {
let constants = this.get('constants');
let authProvider = this.get('appMeta.authProvider'); let authProvider = this.get('appMeta.authProvider');
switch (authProvider) { switch (authProvider) {

View file

@ -13,7 +13,6 @@ import { Promise as EmberPromise } from 'rsvp';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Controller from '@ember/controller'; import Controller from '@ember/controller';
import NotifierMixin from "../../../mixins/notifier"; import NotifierMixin from "../../../mixins/notifier";
// import constants from '../../../utils/constants';
export default Controller.extend(NotifierMixin, { export default Controller.extend(NotifierMixin, {
global: service(), global: service(),

View file

@ -13,7 +13,6 @@ import { Promise as EmberPromise } from 'rsvp';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Route from '@ember/routing/route'; import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import constants from '../../../utils/constants';
export default Route.extend(AuthenticatedRouteMixin, { export default Route.extend(AuthenticatedRouteMixin, {
appMeta: service(), appMeta: service(),
@ -33,6 +32,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
}; };
return new EmberPromise((resolve) => { return new EmberPromise((resolve) => {
let constants = this.get('constants');
this.get('global').getAuthConfig().then((config) => { this.get('global').getAuthConfig().then((config) => {
switch (data.authProvider) { switch (data.authProvider) {
case constants.AuthProvider.Keycloak: case constants.AuthProvider.Keycloak:

View file

@ -13,7 +13,6 @@ import { Promise as EmberPromise } from 'rsvp';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import Route from '@ember/routing/route'; import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin'; import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import constants from '../../../utils/constants';
export default Route.extend(AuthenticatedRouteMixin, { export default Route.extend(AuthenticatedRouteMixin, {
userService: service('user'), userService: service('user'),
@ -28,6 +27,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
model() { model() {
return new EmberPromise((resolve) => { return new EmberPromise((resolve) => {
let constants = this.get('constants');
if (this.get('appMeta.authProvider') == constants.AuthProvider.Keycloak) { if (this.get('appMeta.authProvider') == constants.AuthProvider.Keycloak) {
this.get('global').syncExternalUsers().then(() => { this.get('global').syncExternalUsers().then(() => {
this.get('userService').getComplete('').then((users) =>{ this.get('userService').getComplete('').then((users) =>{

View file

@ -15,7 +15,6 @@ import { resolve } from 'rsvp';
import Service, { inject as service } from '@ember/service'; import Service, { inject as service } from '@ember/service';
import miscUtil from '../utils/misc'; import miscUtil from '../utils/misc';
import config from '../config/environment'; import config from '../config/environment';
import constants from '../utils/constants';
export default Service.extend({ export default Service.extend({
ajax: service(), ajax: service(),
@ -34,7 +33,7 @@ export default Service.extend({
updateAvailable: false, updateAvailable: false,
valid: true, valid: true,
allowAnonymousAccess: false, allowAnonymousAccess: false,
authProvider: constants.AuthProvider.Documize, authProvider: null,
authConfig: null, authConfig: null,
setupMode: false, setupMode: false,
secureMode: false, secureMode: false,
@ -48,6 +47,9 @@ export default Service.extend({
}, },
boot(requestedRoute, requestedUrl) { // eslint-disable-line no-unused-vars boot(requestedRoute, requestedUrl) { // eslint-disable-line no-unused-vars
let constants = this.get('constants');
this.set('authProvider', constants.AuthProvider.Documize);
let dbhash; let dbhash;
if (is.not.null(document.head.querySelector("[property=dbhash]"))) { if (is.not.null(document.head.querySelector("[property=dbhash]"))) {
dbhash = document.head.querySelector("[property=dbhash]").content; dbhash = document.head.querySelector("[property=dbhash]").content;
@ -84,6 +86,7 @@ export default Service.extend({
let self = this; let self = this;
let cacheBuster = + new Date(); let cacheBuster = + new Date();
$.getJSON(`https://storage.googleapis.com/documize/news/meta.json?cb=${cacheBuster}`, function (versions) { $.getJSON(`https://storage.googleapis.com/documize/news/meta.json?cb=${cacheBuster}`, function (versions) {
let cv = 'v' + versions.community.version; let cv = 'v' + versions.community.version;
let ev = 'v' + versions.enterprise.version; let ev = 'v' + versions.enterprise.version;

View file

@ -1,46 +0,0 @@
// 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
export default {
FolderType: {
Public: 1,
Private: 2,
Protected: 3
},
AuthProvider: {
Documize: 'documize',
Keycloak: 'keycloak'
},
DocumentActionType: {
Read: 1,
Feedback: 2,
Contribute: 3,
Approve: 4,
Approved: 5,
Rejected: 6,
},
UserActivityType: {
Created: 1,
Read: 2,
Edited: 3,
Deleted: 4,
Archived: 5,
Approved: 6,
Reverted: 7,
PublishedTemplate: 8,
PublishedBlock: 9,
Feedback: 10,
Rejected: 11,
}
};

View file

@ -1,232 +0,0 @@
// 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 { htmlSafe } from '@ember/string';
import EmberObject, { computed } from '@ember/object';
import Ember from 'ember';
import stringUtil from '../utils/string';
import constants from '../utils/constants';
let BaseModel = EmberObject.extend({
id: "",
created: null,
revised: null,
setSafe(attr, value) {
this.set(attr, htmlSafe(Ember.Handlebars.Utils.escapeExpression(value)));
}
});
// ProtectedFolderParticipant used to display folder participants that can
// then be marked as folder owner.
let ProtectedFolderParticipant = EmberObject.extend({
userId: "",
email: "",
firstname: "",
lastname: "",
name: "",
folderId: "",
folderType: 0,
fullname: computed('firstname', 'lastname', function () {
return `${this.get('firstname')} ${this.get('lastname')}`;
})
});
let UserModel = BaseModel.extend({
firstname: "",
lastname: "",
email: "",
initials: "",
active: false,
editor: false,
admin: false,
fullname: computed('firstname', 'lastname', function () {
return `${this.get('firstname')} ${this.get('lastname')}`;
}),
init() {
this._super(...arguments);
this.accounts = [];
},
generateInitials() {
let first = this.get('firstname').trim();
let last = this.get('lastname').trim();
this.set('initials', first.substr(0, 1) + last.substr(0, 1));
},
copy() {
let copy = UserModel.create();
copy.id = this.id;
copy.created = this.created;
copy.revised = this.revised;
copy.firstname = this.firstname;
copy.lastname = this.lastname;
copy.email = this.email;
copy.initials = this.initials;
copy.active = this.active;
copy.editor = this.editor;
copy.admin = this.admin;
copy.accounts = this.accounts;
return copy;
}
});
let OrganizationModel = BaseModel.extend({
title: "",
message: "",
email: "",
allowAnonymousAccess: false,
});
let DocumentModel = BaseModel.extend({
name: "",
excerpt: "",
job: "",
location: "",
orgId: "",
folderId: "",
userId: "",
tags: "",
template: "",
protection: 0,
approval: 0,
slug: computed('name', function () {
return stringUtil.makeSlug(this.get('name'));
}),
// client-side property
selected: false
});
let TemplateModel = BaseModel.extend({
author: "",
dated: null,
description: "",
title: "",
type: 0,
slug: computed('title', function () {
return stringUtil.makeSlug(this.get('title'));
}),
});
let FolderModel = BaseModel.extend({
name: "",
orgId: "",
userId: "",
folderType: constants.FolderType.Private,
slug: computed('name', function () {
return stringUtil.makeSlug(this.get('name'));
}),
markAsRestricted: function () {
this.set('folderType', constants.FolderType.Protected);
},
markAsPrivate: function () {
this.set('folderType', constants.FolderType.Private);
},
markAsPublic: function () {
this.set('folderType', constants.FolderType.Public);
},
// client-side prop that holds who can see this folder
init() {
this._super(...arguments);
this.sharedWith = [];
}
});
let AttachmentModel = BaseModel.extend({
documentId: "",
extension: "",
fileId: "",
filename: "",
job: "",
orgId: ""
});
let PageModel = BaseModel.extend({
documentId: "",
orgId: "",
contentType: "",
level: 1,
sequence: 1004,
revisions: 0,
title: "",
body: "",
rawBody: "",
status: 0,
relativeId: '',
tagName: computed('level', function () {
return "h" + this.get('level');
}),
tocIndent: computed('level', function () {
return (this.get('level') - 1) * 20;
}),
tocIndentCss: computed('tocIndent', function () {
let tocIndent = this.get('tocIndent');
return `margin-left-${tocIndent}`;
}),
init() {
this._super(...arguments);
this.meta = {};
}
});
let PageMetaModel = BaseModel.extend({
pageId: "",
documentId: "",
orgId: "",
rawBody: "",
externalSource: false,
init() {
this._super(...arguments);
this.config = {};
}
});
let SectionModel = BaseModel.extend({
contentType: "",
title: "",
description: "",
iconFont: "",
iconFile: "",
hasImage: computed('iconFont', 'iconFile', function () {
return this.get('iconFile').length > 0;
}),
});
export default {
AttachmentModel,
DocumentModel,
FolderModel,
OrganizationModel,
PageModel,
PageMetaModel,
ProtectedFolderParticipant,
SectionModel,
TemplateModel,
UserModel
};