From f1325d4e69753c9cfa30d51beb50c7e0413a6631 Mon Sep 17 00:00:00 2001 From: Khaled FERJANI Date: Mon, 24 May 2021 23:42:03 +0100 Subject: [PATCH] removed unused linagora.esn.james module from inbox --- src/app/app.js | 2 - src/linagora.esn.james/app/app.config.js | 12 - src/linagora.esn.james/app/app.constants.js | 17 -- src/linagora.esn.james/app/app.less | 7 - src/linagora.esn.james/app/app.module.js | 55 ---- src/linagora.esn.james/app/app.run.js | 32 --- .../app/common/james-api-client.service.js | 10 - .../common/james-api-client.service.spec.js | 36 --- .../form/james-domain-alias-form.component.js | 11 - .../james-domain-alias-form.controller.js | 63 ----- ...james-domain-alias-form.controller.spec.js | 120 -------- .../alias/form/james-domain-alias-form.less | 13 - .../alias/form/james-domain-alias-form.pug | 33 --- .../item/james-domain-alias-item.component.js | 12 - .../james-domain-alias-item.controller.js | 33 --- ...james-domain-alias-item.controller.spec.js | 63 ----- .../alias/item/james-domain-alias-item.less | 8 - .../alias/item/james-domain-alias-item.pug | 7 - .../alias/james-domain-alias-dialog.pug | 33 --- .../alias/james-domain-alias.component.js | 10 - .../alias/james-domain-alias.controller.js | 37 --- .../james-domain-alias.controller.spec.js | 91 ------ .../app/domain/alias/james-domain-alias.less | 39 --- .../app/domain/alias/james-domain-alias.pug | 5 - .../domain/alias/james-domain-alias.run.js | 14 - .../domain/james-quota-domain-dialog.pug | 36 --- .../domain/james-quota-domain.component.js | 10 - .../domain/james-quota-domain.controller.js | 54 ---- .../james-quota-domain.controller.spec.js | 170 ------------ .../app/quota/domain/james-quota-domain.less | 39 --- .../app/quota/domain/james-quota-domain.pug | 5 - .../quota/domain/james-quota-domain.run.js | 14 - .../app/quota/james-quota-helpers.service.js | 36 --- .../app/quota/james-quota.constants.js | 4 - .../quota/james.quota-helpers.service.spec.js | 148 ---------- .../quota/user/james-quota-user-dialog.pug | 34 --- .../quota/user/james-quota-user.component.js | 10 - .../quota/user/james-quota-user.controller.js | 56 ---- .../user/james-quota-user.controller.spec.js | 115 -------- .../app/quota/user/james-quota-user.less | 44 --- .../app/quota/user/james-quota-user.pug | 4 - .../app/quota/user/james-quota-user.run.js | 14 - .../james-sync-status-indicator.component.js | 12 - ...s-sync-status-indicator.componnent.spec.js | 80 ------ .../james-sync-status-indicator.controller.js | 53 ---- .../james-sync-status-indicator.pug | 2 - .../app/sync/status-indicator/modal.pug | 15 - .../james-group-synchronizer.service.js | 35 --- .../james-group-synchronizer.service.spec.js | 98 ------- .../james-synchronizer.service.js | 23 -- src/linagora.esn.james/i18n/en.json | 55 ---- src/linagora.esn.james/i18n/fr.json | 55 ---- src/linagora.esn.james/i18n/ru.json | 52 ---- src/linagora.esn.james/i18n/vi.json | 55 ---- src/linagora.esn.james/i18n/zh.json | 55 ---- src/linagora.esn.james/images/james-icon.svg | 259 ------------------ src/linagora.esn.unifiedinbox/app/app.js | 1 - src/require-angular-injections.js | 1 - 58 files changed, 2407 deletions(-) delete mode 100644 src/linagora.esn.james/app/app.config.js delete mode 100644 src/linagora.esn.james/app/app.constants.js delete mode 100644 src/linagora.esn.james/app/app.less delete mode 100644 src/linagora.esn.james/app/app.module.js delete mode 100644 src/linagora.esn.james/app/app.run.js delete mode 100644 src/linagora.esn.james/app/common/james-api-client.service.js delete mode 100644 src/linagora.esn.james/app/common/james-api-client.service.spec.js delete mode 100644 src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.component.js delete mode 100644 src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.js delete mode 100644 src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.spec.js delete mode 100644 src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.less delete mode 100644 src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.pug delete mode 100644 src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.component.js delete mode 100644 src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.js delete mode 100644 src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.spec.js delete mode 100644 src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.less delete mode 100644 src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.pug delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias-dialog.pug delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias.component.js delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.js delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.spec.js delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias.less delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias.pug delete mode 100644 src/linagora.esn.james/app/domain/alias/james-domain-alias.run.js delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain-dialog.pug delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain.component.js delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.js delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.spec.js delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain.less delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain.pug delete mode 100644 src/linagora.esn.james/app/quota/domain/james-quota-domain.run.js delete mode 100644 src/linagora.esn.james/app/quota/james-quota-helpers.service.js delete mode 100644 src/linagora.esn.james/app/quota/james-quota.constants.js delete mode 100644 src/linagora.esn.james/app/quota/james.quota-helpers.service.spec.js delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user-dialog.pug delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user.component.js delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user.controller.js delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user.controller.spec.js delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user.less delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user.pug delete mode 100644 src/linagora.esn.james/app/quota/user/james-quota-user.run.js delete mode 100644 src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.component.js delete mode 100644 src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.componnent.spec.js delete mode 100644 src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.controller.js delete mode 100644 src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.pug delete mode 100644 src/linagora.esn.james/app/sync/status-indicator/modal.pug delete mode 100644 src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.js delete mode 100644 src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.spec.js delete mode 100644 src/linagora.esn.james/app/sync/synchronizer/james-synchronizer.service.js delete mode 100644 src/linagora.esn.james/i18n/en.json delete mode 100644 src/linagora.esn.james/i18n/fr.json delete mode 100644 src/linagora.esn.james/i18n/ru.json delete mode 100644 src/linagora.esn.james/i18n/vi.json delete mode 100644 src/linagora.esn.james/i18n/zh.json delete mode 100644 src/linagora.esn.james/images/james-icon.svg diff --git a/src/app/app.js b/src/app/app.js index 77d6da09..17ab98e1 100644 --- a/src/app/app.js +++ b/src/app/app.js @@ -2,7 +2,6 @@ angular.module('esnApp', [ 'ui.router', 'ct.ui.router.extras.dsr', 'linagora.esn.unifiedinbox', - 'linagora.esn.james', 'esn.session', 'esn.login', 'esn.material', @@ -17,6 +16,5 @@ require('esn-frontend-common-libs/src/frontend/js/modules/material/material.modu require('./app.config'); require('./app.run'); -require('../linagora.esn.james/app/app.module.js'); require('../linagora.esn.unifiedinbox/app/app.js'); require('../esn.inbox.libs/app/app.module.js'); diff --git a/src/linagora.esn.james/app/app.config.js b/src/linagora.esn.james/app/app.config.js deleted file mode 100644 index 854ca33d..00000000 --- a/src/linagora.esn.james/app/app.config.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .config(registerI18N); - -function registerI18N($translateProvider) { - $translateProvider.translations('en', require('../i18n/en.json')); - $translateProvider.translations('fr', require('../i18n/fr.json')); - $translateProvider.translations('ru', require('../i18n/ru.json')); - $translateProvider.translations('vi', require('../i18n/vi.json')); - $translateProvider.translations('zh', require('../i18n/zh.json')); -} diff --git a/src/linagora.esn.james/app/app.constants.js b/src/linagora.esn.james/app/app.constants.js deleted file mode 100644 index d2fe9de9..00000000 --- a/src/linagora.esn.james/app/app.constants.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .constant('JAMES_MODULE_METADATA', { - id: 'linagora.esn.james', - title: 'James', - icon: '/james/images/james-icon.svg', - maintenance: { - template: 'james-maintenance', - displayIn: { - user: false, - domain: false, - platform: true - } - } - }) - .constant('JAMES_MODULE_NAME', 'linagora.esn.james'); diff --git a/src/linagora.esn.james/app/app.less b/src/linagora.esn.james/app/app.less deleted file mode 100644 index d6bfbd4c..00000000 --- a/src/linagora.esn.james/app/app.less +++ /dev/null @@ -1,7 +0,0 @@ -@import './config-form/james-config-form'; -@import './quota/user/james-quota-user'; -@import './quota/domain/james-quota-domain'; -@import './quota/form/james-quota-form'; -@import './domain/alias/james-domain-alias'; -@import './domain/alias/item/james-domain-alias-item'; -@import './domain/alias/form/james-domain-alias-form'; diff --git a/src/linagora.esn.james/app/app.module.js b/src/linagora.esn.james/app/app.module.js deleted file mode 100644 index 19b1892d..00000000 --- a/src/linagora.esn.james/app/app.module.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james', [ - 'restangular', - 'op.dynamicDirective', - 'esn.async-action', - 'esn.http', - 'esn.router', - 'esn.i18n', - 'esn.ui', - 'esn.module-registry', - 'esn.configuration', - 'esn.user', - 'esn.session', - 'esn.domain', - 'ngFileSaver', - 'ngSanitize', - 'ui.select', - 'esn.api-client' -]); - -require('esn-frontend-common-libs/src/frontend/js/modules/async-action.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/http.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/esn.router.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/i18n/i18n.module.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/ui.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/module-registry/module-registry.module.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/config/config.module.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/user/user.module.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/session.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/domain.js'); -require('esn-frontend-common-libs/src/frontend/js/modules/esn.api-client.js'); - -require('./app.constants.js'); -require('./app.config.js'); -require('./app.run.js'); -require('./domain/alias/form/james-domain-alias-form.component.js'); -require('./domain/alias/form/james-domain-alias-form.controller.js'); -require('./domain/alias/item/james-domain-alias-item.component.js'); -require('./domain/alias/item/james-domain-alias-item.controller.js'); -require('./domain/alias/james-domain-alias.component.js'); -require('./domain/alias/james-domain-alias.controller.js'); -require('./domain/alias/james-domain-alias.run.js'); -require('./quota/domain/james-quota-domain.component.js'); -require('./quota/domain/james-quota-domain.controller.js'); -require('./quota/domain/james-quota-domain.run.js'); -require('./quota/james-quota-helpers.service.js'); -require('./quota/james-quota.constants.js'); -require('./quota/user/james-quota-user.component.js'); -require('./quota/user/james-quota-user.controller.js'); -require('./quota/user/james-quota-user.run.js'); -require('./sync/status-indicator/james-sync-status-indicator.component.js'); -require('./sync/status-indicator/james-sync-status-indicator.controller.js'); -require('./sync/synchronizer/james-group-synchronizer.service.js'); -require('./sync/synchronizer/james-synchronizer.service.js'); diff --git a/src/linagora.esn.james/app/app.run.js b/src/linagora.esn.james/app/app.run.js deleted file mode 100644 index 96701a76..00000000 --- a/src/linagora.esn.james/app/app.run.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -require('./app.constants.js'); - -angular.module('linagora.esn.james') - .run(injectGroupDisplaySubheaderDirective) - .run(registerModule); - -function injectGroupDisplaySubheaderDirective(dynamicDirectiveService) { - var syncStatusIndicator = new dynamicDirectiveService.DynamicDirective(true, 'james-sync-status-indicator', { - attributes: [ - { - name: 'ng-if', - value: '$ctrl.group' - }, - { - name: 'resource-type', - value: 'group' - }, - { - name: 'resource-id', - value: '{{$ctrl.group.id}}' - } - ] - }); - - dynamicDirectiveService.addInjection('group-display-subheader-actions', syncStatusIndicator); -} - -function registerModule(esnModuleRegistry, JAMES_MODULE_METADATA) { - esnModuleRegistry.add(JAMES_MODULE_METADATA); -} diff --git a/src/linagora.esn.james/app/common/james-api-client.service.js b/src/linagora.esn.james/app/common/james-api-client.service.js deleted file mode 100644 index a0c4fd62..00000000 --- a/src/linagora.esn.james/app/common/james-api-client.service.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -const jamesApi = require('esn-api-client/src/api/james'); - -angular.module('linagora.esn.james') - .factory('jamesApiClient', jamesApiClient); - -function jamesApiClient(esnApiClient) { - return jamesApi.default(esnApiClient); -} diff --git a/src/linagora.esn.james/app/common/james-api-client.service.spec.js b/src/linagora.esn.james/app/common/james-api-client.service.spec.js deleted file mode 100644 index 871ac0fb..00000000 --- a/src/linagora.esn.james/app/common/james-api-client.service.spec.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -/* global sinon, chai: false */ - -const jamesApi = require('esn-api-client/src/api/james'); -const { expect } = chai; - -describe('The jamesApiClient factory', function() { - let jamesApiClient; // eslint-disable-line no-unused-vars - let jamesApiMock, esnApiClientMock; - - beforeEach(function() { - jamesApiMock = sinon.stub().returns({}); - esnApiClientMock = { foo: 'bar' }; - - sinon.stub(jamesApi, 'default').value(jamesApiMock); - - angular.mock.module('linagora.esn.james'); - angular.mock.module(function($provide) { - $provide.factory('esnApiClient', function() { return esnApiClientMock; }); - }); - angular.mock.inject(function(_jamesApiClient_) { - jamesApiClient = _jamesApiClient_; // eslint-disable-line no-unused-vars - }); - }); - - afterEach(function() { - sinon.restore(); - }); - - describe('The jamesApiClient factory', function() { - it('should create with correct options', function() { - expect(jamesApiMock).to.have.been.calledWith(esnApiClientMock); - }); - }); -}); diff --git a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.component.js b/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.component.js deleted file mode 100644 index 68cc4390..00000000 --- a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.component.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .component('jamesDomainAliasForm', { - template: require('./james-domain-alias-form.pug'), - controller: 'JamesDomainAliasFormController', - bindings: { - domain: '<', - aliases: '=' - } - }); diff --git a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.js b/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.js deleted file mode 100644 index c95bcd54..00000000 --- a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -require('../../../common/james-api-client.service.js'); - -angular.module('linagora.esn.james') - .controller('JamesDomainAliasFormController', JamesDomainAliasFormController); - -function JamesDomainAliasFormController( - asyncAction, - jamesApiClient -) { - var self = this; - - self.$onInit = $onInit; - - function $onInit() { - self.alias = ''; - self.status = 'loading'; - self.onAddBtnClick = onAddBtnClick; - self.isAddedAlias = isAddedAlias; - - _getAvailableAliases() - .then(function(aliases) { - self.availableAliases = aliases; - self.status = 'loaded'; - }) - .catch(function() { - self.status = 'error'; - }); - } - - function _getAvailableAliases() { - return jamesApiClient.listJamesDomains() - .then(function(domains) { - var index = domains.indexOf(self.domain.name); - - if (index !== -1) { - domains.splice(index, 1); - } - - return domains; - }); - } - - function isAddedAlias(alias) { - return self.aliases.indexOf(alias) !== -1; - } - - function _addAlias() { - return jamesApiClient.addDomainAlias(self.domain.id, self.alias).then(function() { - self.aliases.push(self.alias); - self.alias = ''; - }); - } - - function onAddBtnClick() { - asyncAction({ - progressing: 'Adding alias...', - success: 'Alias added', - failure: 'Failed to add alias' - }, _addAlias); - } -} diff --git a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.spec.js b/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.spec.js deleted file mode 100644 index 54288360..00000000 --- a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.controller.spec.js +++ /dev/null @@ -1,120 +0,0 @@ -'use strict'; - -/* global chai, sinon: false */ - -const { expect } = chai; - -describe('The JamesDomainAliasFormController', function() { - var $controller, $rootScope, $scope, $q; - var jamesApiClient; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - - angular.mock.inject(function( - _$controller_, - _$rootScope_, - _$q_, - _jamesApiClient_ - ) { - $controller = _$controller_; - $rootScope = _$rootScope_; - $q = _$q_; - jamesApiClient = _jamesApiClient_; - }); - - jamesApiClient.listJamesDomains = function() { - return $q.when([]); - }; - }); - - function initController(scope, domain) { - $scope = scope || $rootScope.$new(); - - var controller = $controller('JamesDomainAliasFormController', { $scope: $scope }, { domain: domain }); - - controller.$onInit(); - $scope.$digest(); - - return controller; - } - - describe('The $onInit method', function() { - it('should set status to error if failed to get available aliases', function() { - jamesApiClient.listJamesDomains = sinon.stub().returns($q.reject()); - - var controller = initController(); - - expect(controller.status).to.equal('error'); - expect(jamesApiClient.listJamesDomains).to.have.been.calledOnce; - }); - - it('should set status to loaded if success to get available aliases', function() { - var domain = { name: 'abc.lng' }; - - jamesApiClient.listJamesDomains = sinon.stub().returns($q.when([])); - - var controller = initController(null, domain); - - expect(controller.status).to.equal('loaded'); - expect(jamesApiClient.listJamesDomains).to.have.been.calledOnce; - }); - - it('should set availableAliases except the current domain name if success to get available aliases', function() { - var domain = { name: 'foo.lng' }; - var domains = ['foo.lng', 'bar.lng']; - - jamesApiClient.listJamesDomains = sinon.stub().returns($q.when(domains)); - - var controller = initController(null, domain); - - expect(controller.status).to.equal('loaded'); - expect(controller.availableAliases).to.deep.equal(['bar.lng']); - expect(jamesApiClient.listJamesDomains).to.have.been.calledOnce; - }); - }); - - describe('The onAddBtnClick function', function() { - it('should add the alias to the alias list if successful in adding alias from API', function() { - var scope = $rootScope.$new(); - var domain = { - name: 'abc', - id: '123' - }; - var aliases = ['open-paas.org']; - var controller = initController(scope, domain); - - jamesApiClient.addDomainAlias = sinon.stub().returns($q.when()); - - controller.aliases = aliases; - controller.alias = 'linagora.com'; - - controller.onAddBtnClick(); - scope.$digest(); - - expect(jamesApiClient.addDomainAlias).to.have.been.calledWith(domain.id, 'linagora.com'); - expect(controller.aliases).to.deep.equal(['open-paas.org', 'linagora.com']); - }); - - it('should set the alias to empty string if successful in adding alias from API', function() { - var scope = $rootScope.$new(); - var domain = { - name: 'abc', - id: '123' - }; - var aliases = ['open-paas.org']; - var controller = initController(scope, domain); - - jamesApiClient.addDomainAlias = sinon.stub().returns($q.when()); - - controller.aliases = aliases; - controller.alias = 'linagora.com'; - - controller.onAddBtnClick(); - scope.$digest(); - - expect(jamesApiClient.addDomainAlias).to.have.been.calledWith(domain.id, 'linagora.com'); - expect(controller.alias).to.equal(''); - }); - }); -}); diff --git a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.less b/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.less deleted file mode 100644 index 3cd0b2e7..00000000 --- a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.less +++ /dev/null @@ -1,13 +0,0 @@ -.james-domain-alias-form { - padding: 10px; - - button { - margin-top: 5px; - } - - .ui-select-match .ui-select-toggle { - .flex-vertical-centered; - - text-transform: unset; - } -} diff --git a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.pug b/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.pug deleted file mode 100644 index ece42665..00000000 --- a/src/linagora.esn.james/app/domain/alias/form/james-domain-alias-form.pug +++ /dev/null @@ -1,33 +0,0 @@ -.james-domain-alias-form - h5 {{ 'Add domain alias' | translate }} - form(name='form') - .row - .text-center( - ng-if="$ctrl.status === $ctrl.status.loading", - openpaas-logo-spinner, - spinner-start-active='1', - spinner-size='0.5' - ) - - .col-xs-12(ng-if="$ctrl.status === 'loaded'") - .row(ng-if="$ctrl.availableAliases.length") - .col-xs-10 - ui-select( - ng-model="$ctrl.alias", - close-on-select="true", - required - ) - ui-select-match(placeholder="{{ 'Search for an alias' | translate }}") - span(ng-bind="$select.selected") - ui-select-choices( - repeat="item in ($ctrl.availableAliases | filter: $select.search) track by item", - ui-disable-choice="$ctrl.isAddedAlias(item)" - ) - span(ng-bind="item") - .col-xs-2.text-center - button.btn.btn-primary.btn-sm.waves-effect( - ng-disabled="!$ctrl.alias || form.$invalid", - ng-click="$ctrl.onAddBtnClick()" - ) {{ 'Add' | translate }} - p(ng-if="!$ctrl.availableAliases.length") {{ 'No existing alias to add' | translate }} - .message(ng-if="$ctrl.status === $ctrl.status.error") {{ 'An error occurred while listing aliases to add, please try again!' | translate }} \ No newline at end of file diff --git a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.component.js b/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.component.js deleted file mode 100644 index 8555b7e6..00000000 --- a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.component.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .component('jamesDomainAliasItem', { - template: require('./james-domain-alias-item.pug'), - controller: 'JamesDomainAliasItemController', - bindings: { - alias: '<', - aliases: '=', - domain: '<' - } - }); diff --git a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.js b/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.js deleted file mode 100644 index 9c106dad..00000000 --- a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .controller('JamesDomainAliasItemController', JamesDomainAliasItemController); - -function JamesDomainAliasItemController( - asyncAction, - jamesApiClient -) { - var self = this; - - self.$onInit = $onInit; - - function $onInit() { - self.removeAlias = removeAlias; - } - - function _removeAlias() { - return jamesApiClient.removeDomainAlias(self.domain.id, self.alias).then(function() { - self.aliases = self.aliases.filter(function(alias) { - return alias !== self.alias; - }); - }); - } - - function removeAlias() { - asyncAction({ - progressing: 'Removing alias...', - success: 'Alias removed', - failure: 'Failed to remove alias' - }, _removeAlias); - } -} diff --git a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.spec.js b/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.spec.js deleted file mode 100644 index c86c0736..00000000 --- a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.controller.spec.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -/* global chai, sinon: false */ - -const { expect } = chai; - -describe('The JamesDomainAliasItemController', function() { - - var $controller, $rootScope, $scope, $q; - var jamesApiClient; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - - angular.mock.inject(function( - _$controller_, - _$rootScope_, - _$q_, - _jamesApiClient_ - ) { - $controller = _$controller_; - $rootScope = _$rootScope_; - $q = _$q_; - jamesApiClient = _jamesApiClient_; - }); - }); - - function initController(scope) { - $scope = scope || $rootScope.$new(); - - var controller = $controller('JamesDomainAliasItemController', { $scope: $scope }); - - $scope.$digest(); - - controller.$onInit(); - - return controller; - } - - describe('The removeAlias function', function() { - it('should remove the alias from the alias list if successful in removing alias from API', function() { - var scope = $rootScope.$new(); - var domain = { - name: 'abc', - id: '123' - }; - var aliases = ['open-paas.org', 'linagora.com']; - var controller = initController(scope); - - jamesApiClient.removeDomainAlias = sinon.stub().returns($q.when()); - - controller.domain = domain; - controller.aliases = aliases; - controller.alias = 'open-paas.org'; - - controller.removeAlias(); - scope.$digest(); - - expect(jamesApiClient.removeDomainAlias).to.have.been.calledWith(domain.id, 'open-paas.org'); - expect(controller.aliases).to.deep.equal(['linagora.com']); - }); - }); -}); diff --git a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.less b/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.less deleted file mode 100644 index d0679d6d..00000000 --- a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.less +++ /dev/null @@ -1,8 +0,0 @@ -.james-domain-alias-item { - padding-left: 10px; - padding-right: 10px; - - button { - font-size: 20px; - } -} diff --git a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.pug b/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.pug deleted file mode 100644 index c1fc0ccc..00000000 --- a/src/linagora.esn.james/app/domain/alias/item/james-domain-alias-item.pug +++ /dev/null @@ -1,7 +0,0 @@ -.james-domain-alias-item - .row - .col-xs-8.p-t-10 - span {{::$ctrl.alias}} - .col-xs-4.text-right - button.btn-link.btn-icon.button(ng-click="$ctrl.removeAlias()") - i.mdi.mdi-delete.clickable diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias-dialog.pug b/src/linagora.esn.james/app/domain/alias/james-domain-alias-dialog.pug deleted file mode 100644 index b5c7d11a..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias-dialog.pug +++ /dev/null @@ -1,33 +0,0 @@ -.james-domain-alias-dialog.modal.full-screen(ng-init='$ctrl.getDomainAliases()') - form(name="form") - .modal-dialog - .modal-content - .modal-header - button.close(type="button", data-dismiss="modal", aria-label="Close", ng-click="$hide()") - span(aria-hidden="true") × - h4.modal-title {{ 'Aliases of %s' | translate:$ctrl.domain.name }} - - .modal-body.overflow-none - .text-center( - ng-if="$ctrl.status === $ctrl.getDomainAliasesStatus.loading", - openpaas-logo-spinner, - spinner-start-active='1', - spinner-size='0.5' - ) - - .domain-aliases(ng-if="$ctrl.status === 'loaded'") - james-domain-alias-form(domain="$ctrl.domain", aliases="$ctrl.aliases") - div(ng-if="$ctrl.aliases.length") - h5.m-l-10 {{ 'Current aliases' | translate }} - .domain-alias-list - james-domain-alias-item(ng-repeat="alias in $ctrl.aliases" alias="alias", aliases="$ctrl.aliases" domain="$ctrl.domain") - .message(ng-if="!$ctrl.aliases.length") {{ 'No alias' | translate }} - .message(ng-if="$ctrl.status === $ctrl.getDomainAliasesStatus.error") {{ 'An error occurred while getting domain aliases, please try again!' | translate }} - - .modal-footer(ng-if="$ctrl.status === $ctrl.getDomainAliasesStatus.loaded") - button.btn.btn-link(type="button", ng-click="$hide()") - | {{ 'Close' | translate }} - - .modal-footer(ng-if="$ctrl.status === $ctrl.getDomainAliasesStatus.error") - button.btn.btn-primary.btn-ok(type="button", ng-click="$hide()") - | {{ 'OK' | translate }} diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias.component.js b/src/linagora.esn.james/app/domain/alias/james-domain-alias.component.js deleted file mode 100644 index a98294ea..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias.component.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .component('jamesDomainAlias', { - template: require('./james-domain-alias.pug'), - controller: 'JamesDomainAliasController', - bindings: { - domain: '<' - } - }); diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.js b/src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.js deleted file mode 100644 index a0cd9702..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -require('../../common/james-api-client.service.js'); - -angular.module('linagora.esn.james') - .controller('JamesDomainAliasController', JamesDomainAliasController); - -function JamesDomainAliasController( - jamesApiClient -) { - var self = this; - var GET_DOMAIN_ALIASES_STATUS = { - loading: 'loading', - loaded: 'loaded', - error: 'error' - }; - - self.$onInit = $onInit; - self.getDomainAliases = getDomainAliases; - - function $onInit() { - self.getDomainAliasesStatus = GET_DOMAIN_ALIASES_STATUS; - } - - function getDomainAliases() { - self.status = GET_DOMAIN_ALIASES_STATUS.loading; - - return jamesApiClient.getDomainAliases(self.domain.id) - .then(function(aliases) { - self.aliases = aliases; - self.status = GET_DOMAIN_ALIASES_STATUS.loaded; - }) - .catch(function() { - self.status = GET_DOMAIN_ALIASES_STATUS.error; - }); - } -} diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.spec.js b/src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.spec.js deleted file mode 100644 index 36e3eed3..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias.controller.spec.js +++ /dev/null @@ -1,91 +0,0 @@ -'use strict'; - -/* global chai, sinon: false */ - -const { expect } = chai; - -describe('The JamesDomainAliasController', function() { - - var $controller, $rootScope, $scope, $q; - var jamesApiClient; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - - angular.mock.inject(function( - _$controller_, - _$rootScope_, - _$q_, - _jamesApiClient_ - ) { - $controller = _$controller_; - $rootScope = _$rootScope_; - $q = _$q_; - jamesApiClient = _jamesApiClient_; - }); - }); - - function initController(scope) { - $scope = scope || $rootScope.$new(); - - var controller = $controller('JamesDomainAliasController', { $scope: $scope }); - - $scope.$digest(); - - return controller; - } - - describe('The getDomainAliases function', function() { - it('should set the status to loading while attempting to get domain aliases ', function() { - var domain = { - name: 'abc', - id: '123' - }; - var controller = initController(); - - jamesApiClient.getDomainAliases = sinon.stub().returns($q.defer().promise); - - controller.domain = domain; - controller.getDomainAliases(); - - expect(jamesApiClient.getDomainAliases).to.have.been.calledWith(domain.id); - expect(controller.status).to.equal('loading'); - }); - - it('should set the status to error in case of failed attempt to get domain aliases', function() { - var domain = { - name: 'abc', - id: '123' - }; - var controller = initController(); - - controller.domain = domain; - jamesApiClient.getDomainAliases = sinon.stub().returns($q.reject()); - - controller.getDomainAliases(); - $rootScope.$digest(); - - expect(jamesApiClient.getDomainAliases).to.have.been.calledWith(domain.id); - expect(controller.status).to.equal('error'); - }); - - it('should set the status to loaded if succeed to get domain aliases', function() { - var domain = { - name: 'abc', - id: '123' - }; - var aliases = ['open-paas.org', 'linagora.com']; - var controller = initController(); - - controller.domain = domain; - jamesApiClient.getDomainAliases = sinon.stub().returns($q.when(aliases)); - - controller.getDomainAliases(); - $rootScope.$digest(); - - expect(jamesApiClient.getDomainAliases).to.have.been.calledWith(domain.id); - expect(controller.status).to.equal('loaded'); - expect(controller.aliases).to.deep.equal(aliases); - }); - }); -}); diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias.less b/src/linagora.esn.james/app/domain/alias/james-domain-alias.less deleted file mode 100644 index 9ee7e45b..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias.less +++ /dev/null @@ -1,39 +0,0 @@ -james-domain-alias { - a { - &:extend(.dropdown-menu > li > a); - &:extend(.dropdown-menu.dropdown-menu-right > li > a); - - &:hover { - &:extend(.dropdown-menu > li > a:hover); - } - } -} - -.james-domain-alias-dialog { - .message { - .all-centered; - - color: @secondaryTextColor; - font-size: 1.4em; - } - - .domain-aliases { - padding-left: 10px; - padding-right: 10px; - - .domain-alias-list { - margin-top: 20px; - height: 15vh; - overflow-y: auto; - overflow-x: hidden; - - @media screen and (max-width: @screen-md-min) { - height: 60vh; - } - } - - .message { - height: calc(~"15vh + 40px"); - } - } -} diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias.pug b/src/linagora.esn.james/app/domain/alias/james-domain-alias.pug deleted file mode 100644 index 845580a8..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias.pug +++ /dev/null @@ -1,5 +0,0 @@ -a( - href="", - esn-modal-launcher="/james/app/domain/alias/james-domain-alias-dialog.html", - backdrop="static" -) {{ 'Manage aliases' | translate }} diff --git a/src/linagora.esn.james/app/domain/alias/james-domain-alias.run.js b/src/linagora.esn.james/app/domain/alias/james-domain-alias.run.js deleted file mode 100644 index 44ae9df2..00000000 --- a/src/linagora.esn.james/app/domain/alias/james-domain-alias.run.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .run(injectDomainAliasDirective); - -function injectDomainAliasDirective(dynamicDirectiveService) { - var domainQuotaSetAction = new dynamicDirectiveService.DynamicDirective( - true, - 'james-domain-alias', - { attributes: [{ name: 'domain', value: '$ctrl.domain' }] } - ); - - dynamicDirectiveService.addInjection('admin-domains-list-menu-items', domainQuotaSetAction); -} diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain-dialog.pug b/src/linagora.esn.james/app/quota/domain/james-quota-domain-dialog.pug deleted file mode 100644 index 9fdfe5e5..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain-dialog.pug +++ /dev/null @@ -1,36 +0,0 @@ -.james-quota-domain-dialog.modal.full-screen(ng-init='$ctrl.getDomainQuota()') - form(name="form", esn-submit="$hide(); $ctrl.updateDomainQuota();") - .modal-dialog - .modal-content - .modal-header - button.close(type="button", data-dismiss="modal", aria-label="Close", ng-click="$hide()") - span(aria-hidden="true") × - h4.modal-title {{ 'Set email quota for %s' | translate:$ctrl.domain.name }} - - .modal-body.overflow-none - .text-center( - ng-if="$ctrl.status === $ctrl.getDomainQuotaStatus.loading", - openpaas-logo-spinner, - spinner-start-active='1', - spinner-size='0.5' - ) - - .computed-quota(ng-if="$ctrl.status === 'loaded'") - h5.m-l-15 {{ 'Currently applied quota' | translate }} - james-quota-displayer(quota="$ctrl.computedQuota") - - .quota-set(ng-if="$ctrl.status === 'loaded'") - h5.m-l-15 {{ 'Set quota' | translate }} - small.text-muted.m-l-15 {{ 'Define the quota limit for each user. Leave the fields empty for no quota.' | translate }} - james-quota-form(quota="$ctrl.quota") - .error-message(ng-if="$ctrl.status === $ctrl.getDomainQuotaStatus.error") {{ 'An error occured while getting quota, please try again!' | translate }} - - .modal-footer(ng-if="$ctrl.status === $ctrl.getDomainQuotaStatus.loaded") - button.btn.btn-link(type="button", ng-click="$hide()") - | {{ 'Cancel' | translate }} - button.btn.btn-primary(type="submit", ng-disabled="form.$invalid || form.$pending") - | {{ 'Save' | translate }} - - .modal-footer(ng-if="$ctrl.status === $ctrl.getDomainQuotaStatus.error") - button.btn.btn-primary.btn-ok(type="button", ng-click="$hide()") - | {{ 'OK' | translate }} diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain.component.js b/src/linagora.esn.james/app/quota/domain/james-quota-domain.component.js deleted file mode 100644 index 6307e657..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain.component.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .component('jamesQuotaDomain', { - template: require('./james-quota-domain.pug'), - controller: 'JamesQuotaDomainController', - bindings: { - domain: '<' - } - }); diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.js b/src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.js deleted file mode 100644 index 5e95da88..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -require('../../common/james-api-client.service.js'); -require('../james-quota-helpers.service.js'); - -angular.module('linagora.esn.james') - .controller('JamesQuotaDomainController', JamesQuotaDomainController); - -function JamesQuotaDomainController( - asyncAction, - jamesApiClient, - jamesQuotaHelpers -) { - var self = this; - var GET_DOMAIN_QUOTA_STATUS = { - loading: 'loading', - loaded: 'loaded', - error: 'error' - }; - - self.$onInit = $onInit; - self.getDomainQuota = getDomainQuota; - self.updateDomainQuota = updateDomainQuota; - - function $onInit() { - self.getDomainQuotaStatus = GET_DOMAIN_QUOTA_STATUS; - } - - function getDomainQuota() { - self.status = GET_DOMAIN_QUOTA_STATUS.loading; - - return jamesApiClient.getDomainQuota(self.domain.id) - .then(function(quota) { - self.quota = jamesQuotaHelpers.qualifyGet(quota.domain); - self.computedQuota = jamesQuotaHelpers.qualifyGet(quota.computed); - self.status = GET_DOMAIN_QUOTA_STATUS.loaded; - }) - .catch(function() { - self.status = GET_DOMAIN_QUOTA_STATUS.error; - }); - } - - function updateDomainQuota() { - var notificationMessages = { - progressing: 'Updating quota...', - success: 'Quota updated', - failure: 'Failed to update quota' - }; - - return asyncAction(notificationMessages, function() { - return jamesApiClient.setDomainQuota(self.domain.id, jamesQuotaHelpers.qualifySet(self.quota)); - }); - } -} diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.spec.js b/src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.spec.js deleted file mode 100644 index 472366fb..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain.controller.spec.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -/* global chai, sinon: false */ - -const { expect } = chai; - -describe('The JamesQuotaDomainController', function() { - - var $controller, $rootScope, $scope, $q; - var jamesApiClient, jamesQuotaHelpers; - var domain = { id: 'domainId' }; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - angular.mock.module('esn.configuration', function($provide) { - $provide.value('esnConfig', function() { - return $q.when(); - }); - }); - - angular.mock.inject(function( - _$controller_, - _$rootScope_, - _$q_, - _jamesApiClient_, - _jamesQuotaHelpers_ - ) { - $controller = _$controller_; - $rootScope = _$rootScope_; - $q = _$q_; - jamesApiClient = _jamesApiClient_; - jamesQuotaHelpers = _jamesQuotaHelpers_; - }); - }); - - function initController(scope) { - $scope = scope || $rootScope.$new(); - - var controller = $controller('JamesQuotaDomainController', { $scope: $scope }); - - $scope.$digest(); - - return controller; - } - - describe('The getDomainQuota function', function() { - it('should set the status to loading while attempting to get domain quota ', function() { - var controller = initController(); - - jamesApiClient.getDomainQuota = function() { - return $q.defer().promise; - }; - - controller.domain = domain; - controller.getDomainQuota(); - - expect(controller.status).to.equal('loading'); - }); - - it('should set the status to error in case of failed attempt to get domain quota', function() { - var controller = initController(); - - controller.domain = domain; - jamesApiClient.getDomainQuota = sinon.stub().returns($q.reject()); - - controller.getDomainQuota(); - $rootScope.$digest(); - - expect(jamesApiClient.getDomainQuota).to.have.been.calledWith(domain.id); - expect(controller.status).to.equal('error'); - }); - - it('should set the status to loaded if succeed to get domain quota', function() { - var quota = { - domain: { count: 16, size: 21 }, - computed: { count: 20, size: 1000 } - }; - var controller = initController(); - - controller.domain = domain; - jamesApiClient.getDomainQuota = sinon.stub().returns($q.when(quota)); - - controller.getDomainQuota(); - $rootScope.$digest(); - - expect(jamesApiClient.getDomainQuota).to.have.been.calledWith(domain.id); - expect(controller.status).to.equal('loaded'); - expect(controller.quota).to.deep.equal(quota.domain); - expect(controller.computedQuota).to.deep.equal(quota.computed); - }); - - it('should qualify quota when succeed to get domain quota', function() { - var quota = { - domain: { count: -10, size: -20 }, - computed: { count: 100, size: 2000 } - }; - var controller = initController(); - - controller.domain = domain; - jamesApiClient.getDomainQuota = function() { - return $q.when(quota); - }; - - controller.getDomainQuota(); - $rootScope.$digest(); - - expect(controller.quota).to.deep.equal({ count: null, size: null }); - expect(controller.computedQuota).to.deep.equal({ count: 100, size: 2000 }); - }); - }); - - describe('The updateDomainQuota function', function() { - it('should reject if failed to update domain quota', function(done) { - var domain = { _id: 'domainId' }; - var quota = { count: 16, size: 21 }; - - jamesApiClient.setDomainQuota = sinon.stub().returns($q.reject()); - - var controller = initController(); - - controller.domain = domain; - controller.quota = quota; - controller.updateDomainQuota() - .catch(function() { - expect(jamesApiClient.setDomainQuota).to.have.been.calledWith(domain.id, controller.quota); - done(); - }); - - $rootScope.$digest(); - }); - - it('should qualify quota before set domain quota', function() { - var domain = { _id: 'domainId' }; - var quota = { count: 16, size: 21 }; - var qualifiedQuota = { foo: 'bar' }; - var controller = initController(); - - controller.domain = domain; - controller.quota = quota; - jamesApiClient.setDomainQuota = sinon.stub().returns($q.when()); - jamesQuotaHelpers.qualifySet = sinon.stub().returns(qualifiedQuota); - - controller.updateDomainQuota(); - $rootScope.$digest(); - - expect(jamesQuotaHelpers.qualifySet).to.have.been.calledWith(quota); - expect(jamesApiClient.setDomainQuota).to.have.been.calledWith(domain.id, qualifiedQuota); - }); - - it('should resolve if succeed to update domain quota', function(done) { - var domain = { _id: 'domainId' }; - var quota = { count: 16, size: 21 }; - - jamesApiClient.setDomainQuota = sinon.stub().returns($q.when()); - - var controller = initController(); - - controller.domain = domain; - controller.quota = quota; - controller.updateDomainQuota() - .then(function() { - expect(jamesApiClient.setDomainQuota).to.have.been.calledWith(domain.id, controller.quota); - done(); - }) - .catch(done); - - $rootScope.$digest(); - }); - }); -}); diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain.less b/src/linagora.esn.james/app/quota/domain/james-quota-domain.less deleted file mode 100644 index d044c199..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain.less +++ /dev/null @@ -1,39 +0,0 @@ -james-quota-domain { - a { - &:extend(.dropdown-menu > li > a); - &:extend(.dropdown-menu.dropdown-menu-right > li > a); - - &:hover { - &:extend(.dropdown-menu > li > a:hover); - } - } -} - -.james-quota-domain-dialog { - .helper-text { - .text-muted; - - padding-left:15px; - } - - .quota-set { - margin-top: 30px; - } - - small { - display: block; - } - - james-quota-form { - .row { - margin-left: 0; - margin-right: 0; - } - } - - .error-message { - color: @secondaryTextColor; - font-size: 1.4em; - text-align: center; - } -} diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain.pug b/src/linagora.esn.james/app/quota/domain/james-quota-domain.pug deleted file mode 100644 index 2f339b37..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain.pug +++ /dev/null @@ -1,5 +0,0 @@ -a( - href="", - esn-modal-launcher="/james/app/quota/domain/james-quota-domain-dialog.html", - backdrop="static" -) {{ 'Set email quota' | translate }} diff --git a/src/linagora.esn.james/app/quota/domain/james-quota-domain.run.js b/src/linagora.esn.james/app/quota/domain/james-quota-domain.run.js deleted file mode 100644 index 807bf0d4..00000000 --- a/src/linagora.esn.james/app/quota/domain/james-quota-domain.run.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .run(injectQuotaDomainDirective); - -function injectQuotaDomainDirective(dynamicDirectiveService) { - var domainQuotaSetAction = new dynamicDirectiveService.DynamicDirective( - true, - 'james-quota-domain', - { attributes: [{ name: 'domain', value: '$ctrl.domain' }] } - ); - - dynamicDirectiveService.addInjection('admin-domains-list-menu-items', domainQuotaSetAction); -} diff --git a/src/linagora.esn.james/app/quota/james-quota-helpers.service.js b/src/linagora.esn.james/app/quota/james-quota-helpers.service.js deleted file mode 100644 index f76130e8..00000000 --- a/src/linagora.esn.james/app/quota/james-quota-helpers.service.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -require('./james-quota.constants.js'); - -angular.module('linagora.esn.james') - - .factory('jamesQuotaHelpers', jamesQuotaHelpers); - -function jamesQuotaHelpers(JAMES_UNLIMITED_QUOTA) { - var ACTION_DEFAULT_VALUE = { get: null, set: null }; - - return { - qualifyGet: qualifyGet, - qualifySet: qualifySet - }; - - function qualifyGet(quota, defaultValue) { - defaultValue = defaultValue || ACTION_DEFAULT_VALUE.set; - var qualifiedQuota = angular.copy(quota) || {}; - - qualifiedQuota.size = (qualifiedQuota.size > 0 || qualifiedQuota.size === JAMES_UNLIMITED_QUOTA) ? qualifiedQuota.size : defaultValue; - qualifiedQuota.count = (qualifiedQuota.count > 0 || qualifiedQuota.count === JAMES_UNLIMITED_QUOTA) ? qualifiedQuota.count : defaultValue; - - return qualifiedQuota; - } - - function qualifySet(quota, defaultValue) { - defaultValue = defaultValue || ACTION_DEFAULT_VALUE.set; - var qualifiedQuota = angular.copy(quota) || {}; - - qualifiedQuota.size = (qualifiedQuota.size > 0 || qualifiedQuota.size === JAMES_UNLIMITED_QUOTA) ? qualifiedQuota.size : defaultValue; - qualifiedQuota.count = (qualifiedQuota.count > 0 || qualifiedQuota.count === JAMES_UNLIMITED_QUOTA) ? qualifiedQuota.count : defaultValue; - - return qualifiedQuota; - } -} diff --git a/src/linagora.esn.james/app/quota/james-quota.constants.js b/src/linagora.esn.james/app/quota/james-quota.constants.js deleted file mode 100644 index 20baf63b..00000000 --- a/src/linagora.esn.james/app/quota/james-quota.constants.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .constant('JAMES_UNLIMITED_QUOTA', -1); diff --git a/src/linagora.esn.james/app/quota/james.quota-helpers.service.spec.js b/src/linagora.esn.james/app/quota/james.quota-helpers.service.spec.js deleted file mode 100644 index 639706c8..00000000 --- a/src/linagora.esn.james/app/quota/james.quota-helpers.service.spec.js +++ /dev/null @@ -1,148 +0,0 @@ -'use strict'; - -/* global chai: false */ - -const { expect } = chai; - -describe('The jamesQuotaHelpers service', function() { - var jamesQuotaHelpers, JAMES_UNLIMITED_QUOTA; - var quota; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - - angular.mock.inject(function(_jamesQuotaHelpers_, _JAMES_UNLIMITED_QUOTA_) { - jamesQuotaHelpers = _jamesQuotaHelpers_; - JAMES_UNLIMITED_QUOTA = _JAMES_UNLIMITED_QUOTA_; - }); - - quota = { - count: 100, - size: 100 - }; - }); - - describe('The qualifyGet function', function() { - it('should return qualified quota in case of quota count is invalid', function() { - quota.count = -10; - - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal({ - count: null, - size: quota.size - }); - }); - - it('should return qualified quota in case of quota size is invalid', function() { - quota.size = -10; - - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal({ - size: null, - count: quota.count - }); - }); - - it('should return qualified quota in case of both quota size and count are invalid', function() { - quota.size = -10; - quota.count = -10; - - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal({ - size: null, - count: null - }); - }); - - it('should return qualified quota in case of quota size is unlimited', function() { - quota.size = JAMES_UNLIMITED_QUOTA; - - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal({ - size: JAMES_UNLIMITED_QUOTA, - count: quota.count - }); - }); - - it('should return qualified quota in case of quota count is unlimited', function() { - quota.count = JAMES_UNLIMITED_QUOTA; - - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal({ - size: quota.size, - count: JAMES_UNLIMITED_QUOTA - }); - }); - - it('should return qualified quota in case of both quota count and size are unlimited', function() { - quota.count = JAMES_UNLIMITED_QUOTA; - quota.size = JAMES_UNLIMITED_QUOTA; - - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal({ - size: JAMES_UNLIMITED_QUOTA, - count: JAMES_UNLIMITED_QUOTA - }); - }); - - it('should return qualified quota in case of both quota count and size are valid', function() { - expect(jamesQuotaHelpers.qualifyGet(quota)).to.deep.equal(quota); - }); - }); - - describe('The qualifySet function', function() { - it('should return qualified quota in case of quota count is invalid', function() { - quota.count = -10; - - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal({ - count: null, - size: quota.size - }); - }); - - it('should return qualified quota in case of quota size is invalid', function() { - quota.size = -10; - - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal({ - size: null, - count: quota.count - }); - }); - - it('should return qualified quota in case of both quota size and count are invalid', function() { - quota.size = -10; - quota.count = -10; - - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal({ - size: null, - count: null - }); - }); - - it('should return qualified quota in case of quota size is unlimited', function() { - quota.size = JAMES_UNLIMITED_QUOTA; - - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal({ - size: JAMES_UNLIMITED_QUOTA, - count: quota.count - }); - }); - - it('should return qualified quota in case of quota count is unlimited', function() { - quota.count = JAMES_UNLIMITED_QUOTA; - - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal({ - size: quota.size, - count: JAMES_UNLIMITED_QUOTA - }); - }); - - it('should return qualified quota in case of both quota count and size are unlimited', function() { - quota.count = JAMES_UNLIMITED_QUOTA; - quota.size = JAMES_UNLIMITED_QUOTA; - - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal({ - size: JAMES_UNLIMITED_QUOTA, - count: JAMES_UNLIMITED_QUOTA - }); - }); - - it('should return qualified quota in case of both quota count and size are valid', function() { - expect(jamesQuotaHelpers.qualifySet(quota)).to.deep.equal(quota); - }); - }); -}); diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user-dialog.pug b/src/linagora.esn.james/app/quota/user/james-quota-user-dialog.pug deleted file mode 100644 index e3115bb8..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user-dialog.pug +++ /dev/null @@ -1,34 +0,0 @@ -.james-quota-user-dialog.modal.full-screen(ng-init='$ctrl.init()') - form(name="form", ng-submit="$ctrl.updateUserQuota(); $hide()") - .modal-dialog - .modal-content - .modal-header - button.close(type="button", data-dismiss="modal", aria-label="Close", ng-click="$hide()") - span(aria-hidden="true") × - h4.modal-title {{ 'Set email quota for %s' | translate:$ctrl.userDisplayName }} - - .modal-body.overflow-none - .text-center( - ng-if="$ctrl.status === 'loading'", - openpaas-logo-spinner, - spinner-start-active='1', - spinner-size='0.3') - - .computed-quota(ng-if="$ctrl.status === 'loaded'") - h5.m-l-15 {{ 'Currently applied quota' | translate }} - james-quota-displayer(quota="$ctrl.computedQuota") - - .quota-set(ng-if="$ctrl.status === 'loaded'") - h5.m-l-15 {{ 'Set quota' | translate }} - small.text-muted.m-l-15 {{ 'Define the quota limit for each user. Leave the fields empty for no quota.' | translate }} - james-quota-form(quota="$ctrl.quota") - .error-message(ng-if="$ctrl.status === 'error'") {{ 'An error occured while getting quota, please try again!' | translate }} - .modal-footer(ng-if="$ctrl.status === 'loaded'") - button.btn.btn-link(type="button", ng-click="$hide()") - | {{ 'Cancel' | translate }} - button.btn.btn-primary(type="submit", ng-disabled="form.$invalid || form.$pristine || form.$pending") - | {{ 'Save' | translate }} - - .modal-footer(ng-if="$ctrl.status === 'error'") - button.btn.btn-primary(type="button", ng-click="$hide()") - | {{ 'OK' | translate }} diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user.component.js b/src/linagora.esn.james/app/quota/user/james-quota-user.component.js deleted file mode 100644 index cf386490..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user.component.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .component('jamesQuotaUser', { - template: require('./james-quota-user.pug'), - controller: 'jamesQuotaUserController', - bindings: { - user: '<' - } - }); diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user.controller.js b/src/linagora.esn.james/app/quota/user/james-quota-user.controller.js deleted file mode 100644 index c0c550ef..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user.controller.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -require('../../common/james-api-client.service.js'); -require('../james-quota-helpers.service.js'); - -angular.module('linagora.esn.james') - .controller('jamesQuotaUserController', jamesUserQuotaController); - -function jamesUserQuotaController( - session, - asyncAction, - jamesApiClient, - jamesQuotaHelpers, - userUtils -) { - var self = this; - var GET_USER_QUOTA_STATUS = { - loading: 'loading', - loaded: 'loaded', - error: 'error' - }; - - self.updateUserQuota = updateUserQuota; - self.init = init; - - function init() { - self.status = GET_USER_QUOTA_STATUS.loading; - self.userDisplayName = userUtils.displayNameOf(self.user); - - return jamesApiClient.getUserQuota(session.domain._id, self.user._id) - .then(function(quota) { - self.quota = jamesQuotaHelpers.qualifyGet(quota.user); - self.computedQuota = jamesQuotaHelpers.qualifyGet(quota.computed); - self.status = GET_USER_QUOTA_STATUS.loaded; - }) - .catch(function() { - self.status = GET_USER_QUOTA_STATUS.error; - }); - } - - function updateUserQuota() { - var notificationMessages = { - progressing: 'Updating quota...', - success: 'Quota updated', - failure: 'Failed to update quota' - }; - - return asyncAction(notificationMessages, function() { - return jamesApiClient.setUserQuota( - session.domain._id, - self.user._id, - jamesQuotaHelpers.qualifySet(self.quota) - ); - }); - } -} diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user.controller.spec.js b/src/linagora.esn.james/app/quota/user/james-quota-user.controller.spec.js deleted file mode 100644 index afdfb5ce..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user.controller.spec.js +++ /dev/null @@ -1,115 +0,0 @@ -'use strict'; - -/* global chai: false */ -/* global sinon: false */ - -const { expect } = chai; - -describe('The jamesQuotaUserController', function() { - - var $controller, $rootScope, $scope, $q, session; - var jamesApiClient, jamesQuotaHelpers; - var domain = { _id: 'domainId' }; - var user = { _id: 'userId' }; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - angular.mock.module('esn.configuration', function($provide) { - $provide.value('esnConfig', function() { - return $q.when(); - }); - }); - - angular.mock.inject(function( - _$controller_, - _$rootScope_, - _$q_, - _session_, - _jamesApiClient_, - _jamesQuotaHelpers_ - ) { - $controller = _$controller_; - $rootScope = _$rootScope_; - $q = _$q_; - session = _session_; - jamesApiClient = _jamesApiClient_; - jamesQuotaHelpers = _jamesQuotaHelpers_; - - jamesQuotaHelpers.qualifyGet = function(quota) { return quota; }; - jamesQuotaHelpers.qualifySet = function(quota) { return quota; }; - session.domain = domain; - }); - }); - - function initController(scope) { - $scope = scope || $rootScope.$new(); - - var controller = $controller('jamesQuotaUserController', { $scope: $scope }); - - $scope.$digest(); - - return controller; - } - - describe('The init function', function() { - it('should resolve with gotten user quota then set the status to loaded', function(done) { - var quota = { - user: { count: 1, size: 1 }, - computed: { count: 1, size: 1 } - }; - - jamesApiClient.getUserQuota = sinon.stub().returns($q.when(quota)); - var controller = initController(); - - controller.user = user; - - controller.init() - .then(function() { - expect(jamesApiClient.getUserQuota).to.have.been.calledWith(session.domain._id, controller.user._id); - expect(controller.status).to.equal('loaded'); - expect(controller.quota).to.deep.equal(quota.user); - expect(controller.computedQuota).to.deep.equal(quota.computed); - done(); - }) - .catch(done); - - $rootScope.$digest(); - }); - - it('should set the status to error in case of failed attempt to get user quota', function(done) { - jamesApiClient.getUserQuota = sinon.stub().returns($q.reject()); - var controller = initController(); - - controller.user = user; - - controller.init() - .then(function() { - expect(jamesApiClient.getUserQuota).to.have.been.calledWith(session.domain._id, controller.user._id); - expect(controller.status).to.equal('error'); - done(); - }) - .catch(done); - - $rootScope.$digest(); - }); - }); - - describe('The updateUserQuota function', function() { - it('should resolve after update user qupta', function(done) { - jamesApiClient.setUserQuota = sinon.stub().returns($q.when()); - - var controller = initController(); - - controller.user = user; - controller.quota = { count: 23, size: 200 }; - controller.updateUserQuota() - .then(function() { - expect(jamesApiClient.setUserQuota).to.have.been.calledWith(session.domain._id, controller.user._id, controller.quota); - done(); - }) - .catch(done); - - $rootScope.$digest(); - }); - }); -}); diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user.less b/src/linagora.esn.james/app/quota/user/james-quota-user.less deleted file mode 100644 index c758911f..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user.less +++ /dev/null @@ -1,44 +0,0 @@ -james-quota-user { - a { - &:extend(.dropdown-menu > li > a); - &:extend(.dropdown-menu.dropdown-menu-right > li > a); - - &:hover { - &:extend(.dropdown-menu > li > a:hover); - } - } -} - -.james-quota-user-dialog { - .helper-text { - .text-muted; - - } - - small { - display: block; - } - - .quota-set { - margin-top: 30px; - } - - james-quota-form { - .row { - margin-left: 0; - margin-right: 0; - } - } - - .error-message { - color: @secondaryTextColor; - font-size: 1.4em; - text-align: center; - } - - .james-quota-displayer { - .row > * { - padding-left: 30px; - } - } -} diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user.pug b/src/linagora.esn.james/app/quota/user/james-quota-user.pug deleted file mode 100644 index ed3c1012..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user.pug +++ /dev/null @@ -1,4 +0,0 @@ -a( - href="", - esn-modal-launcher='/james/app/quota/user/james-quota-user-dialog.html' -) {{ 'Set email quota' | translate }} diff --git a/src/linagora.esn.james/app/quota/user/james-quota-user.run.js b/src/linagora.esn.james/app/quota/user/james-quota-user.run.js deleted file mode 100644 index 3e3c6e76..00000000 --- a/src/linagora.esn.james/app/quota/user/james-quota-user.run.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - .run(injectAdminUserQuotaDirective); - -function injectAdminUserQuotaDirective(dynamicDirectiveService) { - var userQuotaSetAction = new dynamicDirectiveService.DynamicDirective(true, 'james-quota-user', { - attributes: [ - { name: 'user', value: 'member' } - ] - }); - - dynamicDirectiveService.addInjection('admin-user-list-menu-items', userQuotaSetAction); -} diff --git a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.component.js b/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.component.js deleted file mode 100644 index 883616bd..00000000 --- a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.component.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -angular.module('linagora.esn.james') - - .component('jamesSyncStatusIndicator', { - template: require('./james-sync-status-indicator.pug'), - bindings: { - resourceType: '@', - resourceId: '@' - }, - controller: 'JamesSyncStatusIndicatorController' - }); diff --git a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.componnent.spec.js b/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.componnent.spec.js deleted file mode 100644 index f1df7887..00000000 --- a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.componnent.spec.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -/* global chai: false */ -/* global sinon: false */ - -const { expect } = chai; - -describe('The jamesSyncStatusIndicator component', function() { - var $rootScope, $compile, $q; - var jamesGroupSynchronizer; - var resourceId, resourceType; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - }); - - beforeEach(angular.mock.inject(function( - _$rootScope_, - _$compile_, - _$q_, - _jamesGroupSynchronizer_ - ) { - $rootScope = _$rootScope_; - $compile = _$compile_; - $q = _$q_; - jamesGroupSynchronizer = _jamesGroupSynchronizer_; - })); - - beforeEach(function() { - resourceId = '123'; - resourceType = 'group'; - - jamesGroupSynchronizer.getStatus = sinon.stub().returns($q.when({ ok: false })); - }); - - function initComponent() { - var scope = $rootScope.$new(); - var element = $compile('')(scope); - - scope.$digest(); - - return element; - } - - it('should throw error when resourceType is not supported', function() { - resourceType = 'unsupported'; - expect(function() { - initComponent(); - }).to.throw(Error); - }); - - it('should have a tooltip', function() { - var element = initComponent(); - - expect(element.find('button').attr('title')).to.equal('Click to fix synchronization issue'); - expect(jamesGroupSynchronizer.getStatus).to.have.been.calledWith(resourceId); - }); - - it('should be displayed when sync status is not OK', function() { - var element = initComponent(); - - expect(element.find('button')).to.have.length(1); - }); - - it('should be displayed when it cannot get sync status', function() { - jamesGroupSynchronizer.getStatus = sinon.stub().returns($q.reject(new Error('an_error'))); - - var element = initComponent(); - - expect(element.find('button')).to.have.length(1); - }); - - it('should be hidden when sync status is OK', function() { - jamesGroupSynchronizer.getStatus = sinon.stub().returns($q.when({ ok: true })); - - var element = initComponent(); - - expect(element.find('button')).to.have.length(0); - }); -}); diff --git a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.controller.js b/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.controller.js deleted file mode 100644 index c1b5438d..00000000 --- a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.controller.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -require('../synchronizer/james-synchronizer.service.js'); - -angular.module('linagora.esn.james') - - .controller('JamesSyncStatusIndicatorController', JamesSyncStatusIndicatorController); - -function JamesSyncStatusIndicatorController( - asyncAction, - jamesSynchronizerService -) { - var self = this; - var synchronizer; - var notificationMessages = { - progressing: 'Synchronizing group...', - success: 'Group synchronized', - failure: 'Failed to synchronize group' - }; - - self.$onInit = $onInit; - self.sync = sync; - - function $onInit() { - self.syncError = false; - synchronizer = jamesSynchronizerService.get(self.resourceType); - - if (!synchronizer) { - throw new Error('No such resourceType:', self.resourceType); - } - - self.errorMessage = synchronizer.errorMessage; - _checkStatus(); - } - - function sync() { - return asyncAction(notificationMessages, function() { - return synchronizer.sync(self.resourceId).then(function() { - self.syncError = false; - }); - }); - } - - function _checkStatus() { - return synchronizer.getStatus(self.resourceId) - .then(function(status) { - self.syncError = !status.ok; - }) - .catch(function() { - self.syncError = true; - }); - } -} diff --git a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.pug b/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.pug deleted file mode 100644 index 6dff9c0d..00000000 --- a/src/linagora.esn.james/app/sync/status-indicator/james-sync-status-indicator.pug +++ /dev/null @@ -1,2 +0,0 @@ -button.btn-link.btn-icon.button(title="{{ 'Click to fix synchronization issue' | translate }}", esn-modal-launcher="/james/app/sync/status-indicator/modal.html", ng-if="$ctrl.syncError") - i.mdi.mdi-sync-alert diff --git a/src/linagora.esn.james/app/sync/status-indicator/modal.pug b/src/linagora.esn.james/app/sync/status-indicator/modal.pug deleted file mode 100644 index 4b03c246..00000000 --- a/src/linagora.esn.james/app/sync/status-indicator/modal.pug +++ /dev/null @@ -1,15 +0,0 @@ -.modal - .modal-dialog - .modal-content - .modal-header - button.close(type="button", data-dismiss="modal", aria-label="Close", ng-click="$hide()") - span(aria-hidden="true") × - h4.modal-title {{ 'Synchronization issue' | translate }} - .modal-body - p {{ ::$ctrl.errorMessage | esnI18n }} {{ 'Click Sync to fix.' | translate }} - .modal-footer.flex - .flex-vertical-centered.flex-end - button.btn.btn-link(type="button", ng-click="$hide()") - | {{ 'Cancel' | translate }} - button.btn.btn-primary(ng-click="$ctrl.sync(); $hide()") - | {{ 'Sync' | translate }} diff --git a/src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.js b/src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.js deleted file mode 100644 index 2a64e70a..00000000 --- a/src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -require('../../common/james-api-client.service.js'); - -angular.module('linagora.esn.james') - - .factory('jamesGroupSynchronizer', jamesGroupSynchronizer); - -function jamesGroupSynchronizer( - $q, - jamesApiClient -) { - return { - getStatus: getStatus, - sync: sync, - errorMessage: 'This group data does not synchronize with mail group in James.' - }; - - function getStatus(groupId) { - return jamesApiClient.getGroupSyncStatus(groupId).then(function(response) { - return response.data; - }); - } - - function sync(groupId) { - return jamesApiClient.syncGroup(groupId) - .then(function() { - return getStatus(groupId).then(function(status) { - if (!status.ok) { - return $q.reject('Failed to synchronize group'); - } - }); - }); - } -} diff --git a/src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.spec.js b/src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.spec.js deleted file mode 100644 index 9ea21917..00000000 --- a/src/linagora.esn.james/app/sync/synchronizer/james-group-synchronizer.service.spec.js +++ /dev/null @@ -1,98 +0,0 @@ -'use strict'; - -/* global chai: false */ -/* global sinon: false */ - -const { expect } = chai; - -describe('The jamesGroupSynchronizer service', function() { - var $rootScope, $q; - var jamesGroupSynchronizer, jamesApiClient; - - beforeEach(function() { - angular.mock.module('linagora.esn.james'); - - angular.mock.inject(function( - _$rootScope_, - _$q_, - _jamesGroupSynchronizer_, - _jamesApiClient_ - ) { - $rootScope = _$rootScope_; - $q = _$q_; - jamesGroupSynchronizer = _jamesGroupSynchronizer_; - jamesApiClient = _jamesApiClient_; - - jamesApiClient.getGroupSyncStatus = sinon.stub(); - jamesApiClient.syncGroup = sinon.stub(); - }); - }); - - describe('The getStatus fn', function() { - it('should call API client to get synchronization status of a group', function(done) { - var status = { ok: true }; - var groupId = '123'; - - jamesApiClient.getGroupSyncStatus.returns($q.when({ data: status })); - - jamesGroupSynchronizer.getStatus(groupId).then(function(_status) { - expect(_status).to.deep.equal(status); - expect(jamesApiClient.getGroupSyncStatus).to.have.been.calledWith(groupId); - done(); - }); - - $rootScope.$digest(); - }); - }); - - describe('The sync fn', function() { - it('should reject if failed to synchronize group', function(done) { - var status = { ok: true }; - var groupId = '123'; - - jamesApiClient.getGroupSyncStatus.returns($q.when({ data: status })); - jamesApiClient.syncGroup.returns($q.reject()); - - jamesGroupSynchronizer.sync(groupId).catch(function() { - expect(jamesApiClient.syncGroup).to.have.been.calledWith(groupId); - expect(jamesApiClient.getGroupSyncStatus).to.not.have.been.called; - done(); - }); - - $rootScope.$digest(); - }); - - it('should reject if status of group is not ok', function(done) { - var status = { ok: false }; - var groupId = '123'; - - jamesApiClient.getGroupSyncStatus.returns($q.when({ data: status })); - jamesApiClient.syncGroup.returns($q.when()); - - jamesGroupSynchronizer.sync(groupId).catch(function(err) { - expect(err).to.equal('Failed to synchronize group'); - expect(jamesApiClient.syncGroup).to.have.been.calledWith(groupId); - expect(jamesApiClient.getGroupSyncStatus).to.have.been.calledWith(groupId); - done(); - }); - - $rootScope.$digest(); - }); - - it('should call API client to synchronize group', function(done) { - var status = { ok: true }; - var groupId = '123'; - - jamesApiClient.getGroupSyncStatus.returns($q.when({ data: status })); - jamesApiClient.syncGroup.returns($q.when()); - - jamesGroupSynchronizer.sync(groupId).then(function() { - expect(jamesApiClient.syncGroup).to.have.been.calledWith(groupId); - expect(jamesApiClient.getGroupSyncStatus).to.have.been.calledWith(groupId); - done(); - }); - - $rootScope.$digest(); - }); - }); -}); diff --git a/src/linagora.esn.james/app/sync/synchronizer/james-synchronizer.service.js b/src/linagora.esn.james/app/sync/synchronizer/james-synchronizer.service.js deleted file mode 100644 index a3b5fc6c..00000000 --- a/src/linagora.esn.james/app/sync/synchronizer/james-synchronizer.service.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -require('./james-group-synchronizer.service.js'); - -angular.module('linagora.esn.james') - - .factory('jamesSynchronizerService', jamesSynchronizerService); - -function jamesSynchronizerService( - jamesGroupSynchronizer -) { - var synchronizers = { - group: jamesGroupSynchronizer - }; - - return { - get: get - }; - - function get(resourceType) { - return synchronizers[resourceType]; - } -} diff --git a/src/linagora.esn.james/i18n/en.json b/src/linagora.esn.james/i18n/en.json deleted file mode 100644 index 4bc14c81..00000000 --- a/src/linagora.esn.james/i18n/en.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Click to fix synchronization issue" : "Click to fix synchronization issue", - "Synchronization issue": "Synchronization issue", - "Click Sync to fix.": "Click Sync to fix.", - "Sync": "Sync", - "Cancel": "Cancel", - "This group data does not synchronize with mail group in James.": "This group data does not synchronize with mail group in James.", - "Synchronizing group...": "Synchronizing group...", - "Group synchronized": "Group synchronized", - "Failed to synchronize group": "Failed to synchronize group", - "Web Admin API": "Web Admin API", - "Define the Web Admin API endpoint.": "Define the Web Admin API endpoint.", - "Backend": "Backend", - "Frontend": "Frontend", - "Cannot connect to James server, please check your Web Admin API for frontend": "Cannot connect to James server, please check your Web Admin API for frontend", - "Quota": "Quota", - "Define the quota limit for each user. Leave the fields empty for no quota.": "Define the quota limit for each user. Leave the fields empty for no quota.", - "Data usage quota": "Data usage quota", - "Message count quota": "Message count quota", - "Run": "Run", - "Domains": "Domains", - "Set email quota": "Set email quota", - "Set email quota for %s": "Set email quota for %s", - "Save": "Save", - "OK": "OK", - "An error occured while getting quota, please try again!": "An error occured while getting quota, please try again!", - "Updating quota...": "Updating quota...", - "Quota updated": "Quota updated", - "Failed to update quota": "Failed to update quota", - "Currently applied quota": "Currently applied quota", - "Set quota": "Set quota", - "Unlimited": "Unlimited", - "Manage aliases": "Manage aliases", - "Aliases of %s": "Aliases of %s", - "Current aliases": "Current aliases", - "No alias": "No alias", - "An error occurred while getting domain aliases, please try again!": "An error occurred while getting domain aliases, please try again!", - "Close": "Close", - "Add domain alias": "Add domain alias", - "Alias already exist": "Alias already exist", - "Alias must be an existing domain": "Alias must be an existing domain", - "Add": "Add", - "Adding alias...": "Adding alias...", - "Alias added": "Alias added", - "Failed to add alias": "Failed to add alias", - "Removing alias...": "Removing alias...", - "Alias removed": "Alias removed", - "Failed to remove alias": "Failed to remove alias", - "Deleted messages": "Deleted messages", - "Enable restoring deleted messages": "Enable restoring deleted messages", - "Allow domain members to recover their deleted messages": "Allow domain members to recover their deleted messages", - "Search for an alias": "Search for an alias", - "No existing alias to add": "No existing alias to add", - "An error occurred while listing aliases to add, please try again!": "An error occurred while listing aliases to add, please try again!" -} diff --git a/src/linagora.esn.james/i18n/fr.json b/src/linagora.esn.james/i18n/fr.json deleted file mode 100644 index a814cd50..00000000 --- a/src/linagora.esn.james/i18n/fr.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Click to fix synchronization issue" : "Cliquez pour résoudre le problème de synchronisation", - "Synchronization issue": "Problème de synchronisation", - "Click Sync to fix.": "Cliquez sur Sync pour corriger.", - "Sync": "Sync", - "Cancel": "Annuler", - "This group data does not synchronize with mail group in James.": "Ces données de groupe ne se synchronisent pas avec le groupe de messagerie dans James.", - "Synchronizing group...": "Groupe de synchronisation ...", - "Group synchronized": "Groupe synchronisé", - "Failed to synchronize group": "Échec de la synchronisation du groupe", - "Web Admin API": "Web Admin API", - "Define the Web Admin API endpoint.": "Définnissez le chemin de base de l'API Web Admin.", - "Backend": "Backend", - "Frontend": "Frontend", - "Cannot connect to James server, please check your Web Admin API for frontend": "Échec de la connection au serveur James, veuillez vérifier votre chemin d'accès pour l'API WebAdmin frontend", - "Quota": "Quota", - "Define the quota limit for each user. Leave the fields empty for no quota.": "Définir la limite du quota pour chaque utilisateur. Laisser les champs vides si aucun quota.", - "Data usage quota": "Quota d'utilisation des données", - "Message count quota": "Quota de nombre de messages", - "Run": "Courir", - "Domains": "Domaines", - "Set email quota": "Définir le quota d'email", - "Set email quota for %s": "Définir le quota d'email pour %s", - "Save": "Enregistrer", - "OK": "D'accord", - "An error occured while getting quota, please try again!": "Une erreur est survenue en chargeant le quota, veuillez réessayer!", - "Updating quota...": "Mise à jour du quota...", - "Quota updated": "Le quota est mis à jour", - "Failed to update quota": "Impossible de mettre à jour le quota", - "Currently applied quota": "Quota actuellement appliqué", - "Set quota": "Modifier le quota", - "Unlimited": "Illimité", - "Manage aliases": "Gérer les alias", - "Aliases of %s": "Alias de %s", - "Current aliases": "Alias actuels", - "No alias": "Pas d'alias", - "An error occurred while getting domain aliases, please try again!": "Une erreur est survenue lors de l'obtention des alias de domaine. Veuillez réessayer!", - "Close": "Fermer", - "Add domain alias": "Ajouter un alias de domaine", - "Alias already exist": "L'alias existe déjà", - "Alias must be an existing domain": "L'alias doit être un domaine existant", - "Add": "Ajouter", - "Adding alias...": "Ajout d'alias...", - "Alias added": "Alias ajouté", - "Failed to add alias": "Impossible d'ajouter un alias", - "Removing alias...": "Supprimer l'alias...", - "Alias removed": "Alias supprimé", - "Failed to remove alias": "Échec de la suppression de l'alias", - "Deleted messages" : "Messages supprimés", - "Enable restoring deleted messages": "Autoriser la restauration de messages suppprimés", - "Allow domain members to recover their deleted messages" : "Autoriser les membres du domaine à restaurer leurs messages supprimés", - "Search for an alias": "Rechercher un alias", - "No existing alias to add": "Aucun alias existant à ajouter", - "An error occurred while listing aliases to add, please try again!": "Une erreur s'est produite lors de l'inventaire des alias ajoutables. Veuillez réessayer!" -} diff --git a/src/linagora.esn.james/i18n/ru.json b/src/linagora.esn.james/i18n/ru.json deleted file mode 100644 index d8667cdb..00000000 --- a/src/linagora.esn.james/i18n/ru.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "Click to fix synchronization issue": "Нажмите, чтобы исправить проблему синхронизации", - "Synchronization issue": "Проблема с синхронизацией", - "Click Sync to fix.": "Нажмите \"Синхронизировать\", чтобы исправить.", - "Sync": "Синхронизировать", - "Cancel": "Отменить", - "This group data does not synchronize with mail group in James.": "Данные этой группы не синхронизируются с почтовой группой в James.", - "Synchronizing group...": "Синхронизация группы ...", - "Group synchronized": "Группа синхронизирована", - "Failed to synchronize group": "Не удалось синхронизировать группу", - "Web Admin API": "API веб-администратора", - "Define the Web Admin API endpoint.": "Определите конечную точку API веб-администратора.", - "Backend": "Бэкенд", - "Frontend": "Фронтенд", - "Cannot connect to James server, please check your Web Admin API for frontend": "Не удается подключиться к серверу James, пожалуйста, проверьте ваш веб-интерфейс API для фронтенда", - "Quota": "Квота", - "Define the quota limit for each user. Leave the fields empty for no quota.": "Определите лимит квоты для каждого пользователя. Оставьте поля пустыми без квоты.", - "Data usage quota": "Квота на использование данных", - "Message count quota": "Квота на количество сообщений", - "Run": "Запустить", - "Domains": "Домены", - "Set email quota": "Установить квоту электронной почты", - "Set email quota for %s": "Установить квоту электронной почты для %s", - "Save": "Сохранить", - "OK": "OK", - "An error occured while getting quota, please try again!": "При получении квоты произошла ошибка, пожалуйста, попробуйте еще раз!", - "Updating quota...": "Обновление квоты ...", - "Quota updated": "Квота обновлена", - "Failed to update quota": "Не удалось обновить квоту", - "Currently applied quota": "В настоящее время применяется квота", - "Set quota": "Установить квоту", - "Unlimited": "Неограниченно", - "Manage aliases": "Управлять псевдонимами", - "Aliases of %s": "Псевдонимы %s", - "Current aliases": "Текущие псевдонимы", - "No alias": "Нет псевдонимов", - "An error occurred while getting domain aliases, please try again!": "При получении псевдонимов домена произошла ошибка, пожалуйста, попробуйте еще раз!", - "Close": "Закрыть", - "Add domain alias": "Добавить псевдоним домена", - "Alias already exist": "Псевдоним уже существует", - "Alias must be an existing domain": "Псевдоним должен быть для существующего домена", - "Add": "Добавить", - "Adding alias...": "Добавление Псевдоним...", - "Alias added": "Добавлен псевдоним", - "Failed to add alias": "Не удалось добавить псевдоним", - "Removing alias...": "Удаление псевдонима...", - "Alias removed": "Псевдоним удален", - "Failed to remove alias": "Не удалось удалить псевдоним", - "Search for an alias": "Поиск псевдонима", - "No existing alias to add": "Нет существующего псевдонима для добавления", - "An error occurred while listing aliases to add, please try again!": "Произошла ошибка при перечислении псевдонимов для добавления, пожалуйста, попробуйте еще раз!" -} \ No newline at end of file diff --git a/src/linagora.esn.james/i18n/vi.json b/src/linagora.esn.james/i18n/vi.json deleted file mode 100644 index 0400f02b..00000000 --- a/src/linagora.esn.james/i18n/vi.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Click to fix synchronization issue" : "Bấm để sửa lỗi đồng bộ", - "Synchronization issue": "Lỗi đồng bộ", - "Click Sync to fix.": "Bấm Đồng bộ để sửa.", - "Sync": "Đồng bộ", - "Cancel": "Hủy", - "This group data does not synchronize with mail group in James.": "Dữ liệu của nhóm này không được đồng bộ với nhóm thư trong máy chủ James.", - "Synchronizing group...": "Đang đồng bộ nhóm...", - "Group synchronized": "Đã đồng bộ nhóm", - "Failed to synchronize group": "Đồng bộ nhóm thất bại", - "Web Admin API": "Web Admin API", - "Define the Web Admin API endpoint.": "Định nghĩa địa chỉ của Web Admin API.", - "Backend": "Backend", - "Frontend": "Frontend", - "Cannot connect to James server, please check your Web Admin API for frontend": "Không thể kết nối tới máy chủ James, hãy kiểm tra lại cấu hình Web Admin API cho frontend", - "Quota": "Giới hạn sử dụng", - "Define the quota limit for each user. Leave the fields empty for no quota.": "Xác định giới hạn định mức cho mỗi người dùng. Để trống nếu không có định mức.", - "Data usage quota": "Dung lượng tối đa", - "Message count quota": "Số tin nhắn tối đa", - "Run": "Chạy", - "Domains": "Các tên miền", - "Set email quota": "Định mức thư", - "Set email quota for %s": "Thiết lập định mức thư cho %s", - "Save": "Lưu", - "OK": "Đồng ý", - "An error occured while getting quota, please try again!": "Có lỗi xảy ra khi lấy định mức, vui lòng thử lại!", - "Updating quota...": "Đang cập nhật định mức...", - "Quota updated": "Đã cập nhật định mức", - "Failed to update quota": "Cập nhật định mức thất bại", - "Currently applied quota": "Định mức đang áp dụng", - "Set quota": "Đặt định mức", - "Unlimited": "Không giới hạn", - "Manage aliases": "Quản lý tên miền thay thế", - "Aliases of %s": "Tên miền thay thế của %s", - "Current aliases": "Các tên miền thay thế hiện tại", - "No alias": "Không có tên miền thay thế", - "An error occurred while getting domain aliases, please try again!": "Có lỗi xảy ra khi lấy tên miền thay thế, vui lòng thử lại!", - "Close": "Đóng", - "Add domain alias": "Thêm tên miền thay thế", - "Alias already exist": "Tên miền thay thế đã tồn tại", - "Alias must be an existing domain": "Tên miền thay thế phải là một tên miền đã tồn tại", - "Add": "Thêm", - "Adding alias...": "Đang thêm tên miền thay thế...", - "Alias added": "Tên miền thay thế đã được thêm", - "Failed to add alias": "Thêm tên miền thay thế thất bại", - "Removing alias...": "Đang xóa tên miền thay thế...", - "Alias removed": "Tên miền thay thế đã được xóa", - "Failed to remove alias": "Xóa tên miền thay thế thất bại", - "Deleted messages": "Thư đã xóa", - "Enable restoring deleted messages": "Bật chức năng khôi phục thư đã xóa", - "Allow domain members to recover their deleted messages": "Cho phép người dùng phục hồi lại những thư đã bị xóa từ thùng rác", - "Search for an alias": "Tìm tên miền thay thế", - "No existing alias to add": "Không có tên miền thay thế nào để thêm", - "An error occurred while listing aliases to add, please try again!": "Có lỗi xảy ra trong khi liệt kê tên miền thay thế để thêm, vui lòng thử lại!" -} diff --git a/src/linagora.esn.james/i18n/zh.json b/src/linagora.esn.james/i18n/zh.json deleted file mode 100644 index efe0472f..00000000 --- a/src/linagora.esn.james/i18n/zh.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "An error occured while getting quota, please try again!": "获取配额出现错误,请重试!", - "Backend": "后端", - "Cancel": "取消", - "Cannot connect to James server, please check your Web Admin API for frontend": "无法连接至James服务器,请检查您的网络管理员前端", - "Click Sync to fix.": "点击同步来修复", - "Click to fix synchronization issue": "点击修复同步问题", - "Currently applied quota": "目前的配额", - "Data usage quota": "数据使用配额", - "Define the quota limit for each user. Leave the fields empty for no quota.": "编辑每个用户的配额限制。如无配额,请不要填写", - "Define the Web Admin API endpoint.": "设置网络管理员API终结点", - "Domains": "域", - "Failed to synchronize group": "组同步失败", - "Failed to update quota": "配额更新失败", - "Frontend": "前端", - "Group synchronized": "组同步完成", - "Message count quota": "消息数配额", - "OK": "OK", - "Quota": "份额", - "Quota updated": "配额已更新", - "Run": "运行", - "Save": "保存", - "Set email quota": "设置邮件配额", - "Set email quota for %s": "设置%s的邮件配额", - "Set quota": "设置配额", - "Sync": "同步", - "Synchronization issue": "同步问题", - "Synchronizing group...": "组同步进行中…", - "This group data does not synchronize with mail group in James.": "该组的数据不与James内邮件组同步", - "Unlimited": "无限制", - "Updating quota...": "配额更新中…", - "Web Admin API": "网络管理员API", - "Manage aliases": "管理别名", - "Aliases of %s": "的别名 %s", - "Current aliases": "目前的别名", - "No alias": "没别名", - "An error occurred while getting domain aliases, please try again!": "获取域别名时出错,请再试一次!", - "Close": "关", - "Add domain alias": "添加域别名", - "Alias already exist": "别名已经存在", - "Alias must be an existing domain": "别名必须是现有域", - "Add": "加", - "Adding alias...": "添加别名...", - "Alias added": "别名补充道", - "Failed to add alias": "无法添加别名", - "Removing alias...": "删除别名...", - "Alias removed": "别名已删除", - "Failed to remove alias": "无法删除别名", - "Deleted messages": "已删除的邮件", - "Enable restoring deleted messages": "启用还原已删除的邮件", - "Allow domain members to recover their deleted messages": "允许域成员恢复已删除的邮件", - "Search for an alias": "搜索别名", - "No existing alias to add": "没有要添加的现有别名", - "An error occurred while listing aliases to add, please try again!": "列出要添加的别名时发生错误,请再试一次!" -} diff --git a/src/linagora.esn.james/images/james-icon.svg b/src/linagora.esn.james/images/james-icon.svg deleted file mode 100644 index ae3b9242..00000000 --- a/src/linagora.esn.james/images/james-icon.svg +++ /dev/null @@ -1,259 +0,0 @@ - - - -image/svg+xml. - \ No newline at end of file diff --git a/src/linagora.esn.unifiedinbox/app/app.js b/src/linagora.esn.unifiedinbox/app/app.js index 00fc56c2..a00d1203 100644 --- a/src/linagora.esn.unifiedinbox/app/app.js +++ b/src/linagora.esn.unifiedinbox/app/app.js @@ -45,7 +45,6 @@ angular.module('linagora.esn.unifiedinbox', [ 'esn.dropdownList', 'material.components.menuBar', 'esn.attachments-selector', - 'linagora.esn.james', 'esn.inbox.libs', 'esn.inbox-calendar', 'linagora.esn.unifiedinbox.linshare', diff --git a/src/require-angular-injections.js b/src/require-angular-injections.js index f8cf890e..7c6620d0 100644 --- a/src/require-angular-injections.js +++ b/src/require-angular-injections.js @@ -1,6 +1,5 @@ const injections = require('esn-frontend-common-libs/src/require-angular-injections.js'); injections.push('linagora.esn.unifiedinbox'); -injections.push('linagora.esn.james'); module.exports = injections;