mirror of
https://github.com/documize/community.git
synced 2025-07-23 07:09:43 +02:00
Reafctor client side (EJS) constants
This commit is contained in:
parent
8fb001422a
commit
bde0091a4a
23 changed files with 118 additions and 367 deletions
|
@ -9,18 +9,22 @@
|
|||
//
|
||||
// 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 { copy } from '@ember/object/internals';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Component from '@ember/component';
|
||||
import constants from '../../utils/constants';
|
||||
import encoding from '../../utils/encoding';
|
||||
|
||||
export default Component.extend({
|
||||
appMeta: service(),
|
||||
isDocumizeProvider: equal('authProvider', constants.AuthProvider.Documize),
|
||||
isKeycloakProvider: equal('authProvider', constants.AuthProvider.Keycloak),
|
||||
isDocumizeProvider: computed('authProvider', function() {
|
||||
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'),
|
||||
KeycloakRealmError: empty('keycloakConfig.realm'),
|
||||
KeycloakClientIdError: empty('keycloakConfig.clientId'),
|
||||
|
@ -47,6 +51,7 @@ export default Component.extend({
|
|||
this._super(...arguments);
|
||||
|
||||
let provider = this.get('authProvider');
|
||||
let constants = this.get('constants');
|
||||
|
||||
switch (provider) {
|
||||
case constants.AuthProvider.Documize:
|
||||
|
@ -71,14 +76,17 @@ export default Component.extend({
|
|||
|
||||
actions: {
|
||||
onDocumize() {
|
||||
let constants = this.get('constants');
|
||||
this.set('authProvider', constants.AuthProvider.Documize);
|
||||
},
|
||||
|
||||
onKeycloak() {
|
||||
let constants = this.get('constants');
|
||||
this.set('authProvider', constants.AuthProvider.Keycloak);
|
||||
},
|
||||
|
||||
onSave() {
|
||||
let constants = this.get('constants');
|
||||
let provider = this.get('authProvider');
|
||||
let config = this.get('authConfig');
|
||||
|
||||
|
|
|
@ -15,11 +15,11 @@ import { inject as service } from '@ember/service';
|
|||
import { computed } from '@ember/object';
|
||||
import Component from '@ember/component';
|
||||
import TooltipMixin from '../../mixins/tooltip';
|
||||
import models from '../../utils/model';
|
||||
|
||||
export default Component.extend(TooltipMixin, {
|
||||
documentService: service('document'),
|
||||
sectionService: service('section'),
|
||||
store: service(),
|
||||
appMeta: service(),
|
||||
link: service(),
|
||||
hasPages: notEmpty('pages'),
|
||||
|
@ -265,7 +265,7 @@ export default Component.extend(TooltipMixin, {
|
|||
return;
|
||||
}
|
||||
|
||||
let page = models.PageModel.create();
|
||||
let page = this.get('store').createRecord('page');
|
||||
page.set('documentId', this.get('document.id'));
|
||||
page.set('title', sectionName);
|
||||
page.set('contentType', section.get('contentType'));
|
||||
|
@ -296,7 +296,7 @@ export default Component.extend(TooltipMixin, {
|
|||
return;
|
||||
}
|
||||
|
||||
let page = models.PageModel.create();
|
||||
let page = this.get('store').createRecord('page');
|
||||
page.set('documentId', this.get('document.id'));
|
||||
page.set('title', `${block.get('title')}`);
|
||||
page.set('body', block.get('body'));
|
||||
|
|
|
@ -36,13 +36,12 @@ export default Component.extend(AuthMixin, {
|
|||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
// this.setup();
|
||||
this.setup();
|
||||
},
|
||||
|
||||
didUpdateAttrs() {
|
||||
this._super(...arguments);
|
||||
// this.set('selectedDocuments', []);
|
||||
// this.set('filteredDocs', []);
|
||||
// this.setup();
|
||||
},
|
||||
|
||||
setup() {
|
||||
|
@ -65,10 +64,12 @@ export default Component.extend(AuthMixin, {
|
|||
schedule('afterRender', () => {
|
||||
if (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'));
|
||||
} else if (selectedCategory !== '') {
|
||||
this.send('onDocumentFilter', 'category', selectedCategory);
|
||||
// } else if (this.get('rootDocCount') > 0) {
|
||||
// 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('uncategorizedSelected', true);
|
||||
this.set('spaceSelected', false);
|
||||
this.set('uncategorizedSelected', true);
|
||||
break;
|
||||
|
||||
case 'space':
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
// https://documize.com
|
||||
|
||||
import Component from '@ember/component';
|
||||
import constants from '../../utils/constants';
|
||||
import TooltipMixin from '../../mixins/tooltip';
|
||||
import NotifierMixin from '../../mixins/notifier';
|
||||
import AuthMixin from '../../mixins/auth';
|
||||
|
@ -24,10 +23,13 @@ export default Component.extend(TooltipMixin, NotifierMixin, AuthMixin, {
|
|||
this._super(...arguments);
|
||||
this.publicFolders = [];
|
||||
this.protectedFolders = [];
|
||||
this.privateFolders = [];
|
||||
this.privateFolders = [];
|
||||
},
|
||||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
|
||||
let constants = this.get('constants');
|
||||
let folders = this.get('spaces');
|
||||
let publicFolders = [];
|
||||
let protectedFolders = [];
|
||||
|
|
|
@ -14,7 +14,6 @@ import { computed } from '@ember/object';
|
|||
import { schedule } from '@ember/runloop';
|
||||
import { A } from '@ember/array';
|
||||
import { inject as service } from '@ember/service';
|
||||
import constants from '../../utils/constants';
|
||||
import TooltipMixin from '../../mixins/tooltip';
|
||||
import ModalMixin from '../../mixins/modal';
|
||||
import AuthMixin from '../../mixins/auth';
|
||||
|
@ -51,7 +50,7 @@ export default Component.extend(ModalMixin, TooltipMixin, AuthMixin, {
|
|||
dropzone: null,
|
||||
|
||||
spaceTypeOptions: A([]),
|
||||
spaceType: constants.FolderType.Private,
|
||||
spaceType: 0,
|
||||
likes: '',
|
||||
allowLikes: false,
|
||||
|
||||
|
@ -69,6 +68,7 @@ export default Component.extend(ModalMixin, TooltipMixin, AuthMixin, {
|
|||
|
||||
didReceiveAttrs() {
|
||||
this._super(...arguments);
|
||||
let constants = this.get('constants');
|
||||
|
||||
let folder = this.get('space');
|
||||
let targets = _.reject(this.get('spaces'), {id: folder.get('id')});
|
||||
|
|
|
@ -13,7 +13,6 @@ import $ from 'jquery';
|
|||
import { notEmpty } from '@ember/object/computed';
|
||||
import { inject as service } from '@ember/service'
|
||||
import ModalMixin from '../../mixins/modal';
|
||||
import constants from '../../utils/constants';
|
||||
import Component from '@ember/component';
|
||||
|
||||
export default Component.extend(ModalMixin, {
|
||||
|
@ -31,6 +30,8 @@ export default Component.extend(ModalMixin, {
|
|||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
let constants = this.get('constants');
|
||||
|
||||
this.pins = [];
|
||||
|
||||
if (this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak) {
|
||||
|
|
|
@ -12,9 +12,49 @@
|
|||
import EmberObject from "@ember/object";
|
||||
|
||||
// access like so:
|
||||
// let constants = this.get('constants');
|
||||
// let constants = this.get('constants');
|
||||
|
||||
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
|
||||
ProtectionType: { // eslint-disable-line ember/avoid-leaking-state-in-ember-objects
|
||||
None: 0,
|
||||
|
@ -78,7 +118,18 @@ let constants = EmberObject.extend({
|
|||
Unversioned: 1, // turn unversioned into versioned document
|
||||
Cloned: 2, // create versioned document by cloning existing versioned document
|
||||
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 }
|
||||
|
|
|
@ -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 }
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
import $ from 'jquery';
|
||||
import constants from '../constants/constants';
|
||||
import econstants from '../constants/econstants';
|
||||
|
||||
export function initialize(application) {
|
||||
// address insecure jquery defaults (kudos: @nathanhammond)
|
||||
|
@ -24,9 +23,7 @@ export function initialize(application) {
|
|||
});
|
||||
|
||||
let cs = constants.constants;
|
||||
let ec = econstants.econstants;
|
||||
application.register('constants:main', cs);
|
||||
application.register('econstants:main', ec);
|
||||
|
||||
Dropzone.autoDiscover = false;
|
||||
CodeMirror.modeURL = "/codemirror/mode/%N/%N.js";
|
||||
|
|
|
@ -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
|
||||
};
|
|
@ -10,9 +10,7 @@
|
|||
// https://documize.com
|
||||
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
import Mixin from '@ember/object/mixin';
|
||||
import constants from '../utils/constants';
|
||||
|
||||
export default Mixin.create({
|
||||
appMeta: service(),
|
||||
|
@ -21,7 +19,9 @@ export default Mixin.create({
|
|||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
let constants = this.get('constants');
|
||||
|
||||
this.set('isAuthProviderDocumize', this.get('appMeta.authProvider') === constants.AuthProvider.Documize);
|
||||
this.set('isAuthProviderKeycloak', this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
import { computed } from '@ember/object';
|
||||
import Model from 'ember-data/model';
|
||||
import attr from 'ember-data/attr';
|
||||
import constants from '../utils/constants';
|
||||
|
||||
export default Model.extend({
|
||||
orgId: attr('string'),
|
||||
|
@ -28,6 +27,7 @@ export default Model.extend({
|
|||
|
||||
activityLabel: computed('activityType', function() {
|
||||
let label = '';
|
||||
let constants = this.get('constants');
|
||||
|
||||
switch (this.get('activityType')) {
|
||||
case constants.UserActivityType.Created:
|
||||
|
@ -60,6 +60,9 @@ export default Model.extend({
|
|||
case constants.UserActivityType.Rejected:
|
||||
label = 'Rejected';
|
||||
break;
|
||||
case constants.UserActivityType.Published:
|
||||
label = 'Published';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -69,6 +72,7 @@ export default Model.extend({
|
|||
|
||||
activityColor: computed('activityType', function() {
|
||||
let color = '';
|
||||
let constants = this.get('constants');
|
||||
|
||||
switch (this.get('activityType')) {
|
||||
case constants.UserActivityType.Created:
|
||||
|
@ -101,6 +105,9 @@ export default Model.extend({
|
|||
case constants.UserActivityType.Rejected:
|
||||
color = 'color-red';
|
||||
break;
|
||||
case constants.UserActivityType.Published:
|
||||
color = 'color-green';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
import { computed } from '@ember/object';
|
||||
import attr from 'ember-data/attr';
|
||||
import constants from '../utils/constants';
|
||||
import stringUtil from '../utils/string';
|
||||
import Model from 'ember-data/model';
|
||||
|
||||
|
@ -20,6 +19,7 @@ export default Model.extend({
|
|||
orgId: attr('string'),
|
||||
userId: attr('string'),
|
||||
folderType: attr('number', { defaultValue: 2 }),
|
||||
lifecycle: attr('number', { defaultValue: 1 }),
|
||||
likes: attr('string'),
|
||||
|
||||
allowLikes: computed('likes', function () {
|
||||
|
@ -31,14 +31,17 @@ export default Model.extend({
|
|||
}),
|
||||
|
||||
markAsRestricted() {
|
||||
let constants = this.get('constants');
|
||||
this.set('folderType', constants.FolderType.Protected);
|
||||
},
|
||||
|
||||
markAsPrivate() {
|
||||
let constants = this.get('constants');
|
||||
this.set('folderType', constants.FolderType.Private);
|
||||
},
|
||||
|
||||
markAsPublic() {
|
||||
let constants = this.get('constants');
|
||||
this.set('folderType', constants.FolderType.Public);
|
||||
},
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ export default Model.extend({
|
|||
versioned: attr('string'),
|
||||
drafted: attr('string'),
|
||||
archived: attr('string'),
|
||||
published: attr('string'),
|
||||
|
||||
hasContributed: computed('contributed', function () {
|
||||
return this.get('contributed').length > 0;
|
||||
|
@ -49,5 +50,8 @@ export default Model.extend({
|
|||
}),
|
||||
hasArchived: computed('archived', function () {
|
||||
return this.get('archived').length > 0;
|
||||
}),
|
||||
hasPublished: computed('published', function () {
|
||||
return this.get('published').length > 0;
|
||||
})
|
||||
});
|
||||
|
|
|
@ -12,12 +12,13 @@
|
|||
import $ from 'jquery';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import constants from '../../../utils/constants';
|
||||
|
||||
export default Route.extend({
|
||||
appMeta: service(),
|
||||
|
||||
beforeModel() {
|
||||
let constants = this.get('constants');
|
||||
|
||||
if (this.get('appMeta.authProvider') === constants.AuthProvider.Keycloak) {
|
||||
this.transitionTo('auth.login');
|
||||
}
|
||||
|
|
|
@ -10,10 +10,8 @@
|
|||
// https://documize.com
|
||||
|
||||
import { Promise as EmberPromise } from 'rsvp';
|
||||
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import constants from '../../../utils/constants';
|
||||
|
||||
export default Route.extend({
|
||||
session: service(),
|
||||
|
@ -29,6 +27,8 @@ export default Route.extend({
|
|||
|
||||
beforeModel(transition) {
|
||||
return new EmberPromise((resolve) => {
|
||||
let constants = this.get('constants');
|
||||
|
||||
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) {
|
||||
|
|
|
@ -13,7 +13,6 @@ import $ from 'jquery';
|
|||
import { Promise as EmberPromise } from 'rsvp';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import constants from '../../../utils/constants';
|
||||
|
||||
export default Route.extend({
|
||||
appMeta: service(),
|
||||
|
@ -23,6 +22,8 @@ export default Route.extend({
|
|||
|
||||
beforeModel(transition) {
|
||||
return new EmberPromise((resolve) => {
|
||||
let constants = this.get('constants');
|
||||
|
||||
let authProvider = this.get('appMeta.authProvider');
|
||||
|
||||
switch (authProvider) {
|
||||
|
|
|
@ -13,7 +13,6 @@ import { Promise as EmberPromise } from 'rsvp';
|
|||
import { inject as service } from '@ember/service';
|
||||
import Controller from '@ember/controller';
|
||||
import NotifierMixin from "../../../mixins/notifier";
|
||||
// import constants from '../../../utils/constants';
|
||||
|
||||
export default Controller.extend(NotifierMixin, {
|
||||
global: service(),
|
||||
|
|
|
@ -13,7 +13,6 @@ import { Promise as EmberPromise } from 'rsvp';
|
|||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
import constants from '../../../utils/constants';
|
||||
|
||||
export default Route.extend(AuthenticatedRouteMixin, {
|
||||
appMeta: service(),
|
||||
|
@ -33,6 +32,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
|
|||
};
|
||||
|
||||
return new EmberPromise((resolve) => {
|
||||
let constants = this.get('constants');
|
||||
|
||||
this.get('global').getAuthConfig().then((config) => {
|
||||
switch (data.authProvider) {
|
||||
case constants.AuthProvider.Keycloak:
|
||||
|
|
|
@ -13,7 +13,6 @@ import { Promise as EmberPromise } from 'rsvp';
|
|||
import { inject as service } from '@ember/service';
|
||||
import Route from '@ember/routing/route';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
import constants from '../../../utils/constants';
|
||||
|
||||
export default Route.extend(AuthenticatedRouteMixin, {
|
||||
userService: service('user'),
|
||||
|
@ -28,6 +27,8 @@ export default Route.extend(AuthenticatedRouteMixin, {
|
|||
|
||||
model() {
|
||||
return new EmberPromise((resolve) => {
|
||||
let constants = this.get('constants');
|
||||
|
||||
if (this.get('appMeta.authProvider') == constants.AuthProvider.Keycloak) {
|
||||
this.get('global').syncExternalUsers().then(() => {
|
||||
this.get('userService').getComplete('').then((users) =>{
|
||||
|
|
|
@ -15,7 +15,6 @@ import { resolve } from 'rsvp';
|
|||
import Service, { inject as service } from '@ember/service';
|
||||
import miscUtil from '../utils/misc';
|
||||
import config from '../config/environment';
|
||||
import constants from '../utils/constants';
|
||||
|
||||
export default Service.extend({
|
||||
ajax: service(),
|
||||
|
@ -34,7 +33,7 @@ export default Service.extend({
|
|||
updateAvailable: false,
|
||||
valid: true,
|
||||
allowAnonymousAccess: false,
|
||||
authProvider: constants.AuthProvider.Documize,
|
||||
authProvider: null,
|
||||
authConfig: null,
|
||||
setupMode: false,
|
||||
secureMode: false,
|
||||
|
@ -48,6 +47,9 @@ export default Service.extend({
|
|||
},
|
||||
|
||||
boot(requestedRoute, requestedUrl) { // eslint-disable-line no-unused-vars
|
||||
let constants = this.get('constants');
|
||||
this.set('authProvider', constants.AuthProvider.Documize);
|
||||
|
||||
let dbhash;
|
||||
if (is.not.null(document.head.querySelector("[property=dbhash]"))) {
|
||||
dbhash = document.head.querySelector("[property=dbhash]").content;
|
||||
|
@ -84,6 +86,7 @@ export default Service.extend({
|
|||
|
||||
let self = this;
|
||||
let cacheBuster = + new Date();
|
||||
|
||||
$.getJSON(`https://storage.googleapis.com/documize/news/meta.json?cb=${cacheBuster}`, function (versions) {
|
||||
let cv = 'v' + versions.community.version;
|
||||
let ev = 'v' + versions.enterprise.version;
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
};
|
|
@ -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
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue