linagora-rse
Version:
95 lines (89 loc) • 2.9 kB
JavaScript
'use strict';
angular.module('esn.appstore', [
'esn.router',
'esn.http',
'esn.community',
'mgcrea.ngStrap.alert',
'mgcrea.ngStrap.modal',
'angularFileUpload',
'restangular',
'angularFileUpload',
'frapontillo.bootstrap-switch',
'op.dynamicDirective',
'esn.feature-registry'
]).config(function($stateProvider, dynamicDirectiveServiceProvider) {
$stateProvider.state('controlcenter.appstore', {
url: '/appstore',
templateUrl: '/appstore/views/appstore/appstore',
controller: 'appstoreController'
})
.state('/appstore/apps/:id', {
url: '/appstore/apps/:id',
templateUrl: '/appstore/views/appstore/appstore-app-details',
controller: 'appstoreAppController',
resolve: {
application: function(appstoreAPI, $stateParams, $location) {
return appstoreAPI.get($stateParams.id).then(
function(response) {
return response.data;
},
function() {
$location.path('/appstore');
}
);
}
}
})
.state('/appstore/communities/:id/apps', {
url: '/appstore/communities/:id/apps',
templateUrl: '/appstore/views/community/applications',
controller: 'communityAppstoreController',
resolve: {
applications: function(session, appstoreAPI, $stateParams, $q) {
var defer = $q.defer();
session.ready.then(function(session) {
appstoreAPI.list({ domain: session.domain._id, community: $stateParams.id }).then(
function(response) {
defer.resolve(response.data);
},
function(err) {
defer.reject(err);
console.log(err);
}
);
});
return defer.promise;
},
community: function(communityAPI, $stateParams) {
return communityAPI.get($stateParams.id).then(
function(response) {
return response.data;
},
function(err) {
console.log(err);
}
);
}
}
});
var appstoreAppMenu = new dynamicDirectiveServiceProvider.DynamicDirective(true, 'application-menu-appstore', {priority: 0});
dynamicDirectiveServiceProvider.addInjection('esn-application-menu', appstoreAppMenu);
var appstoreControlCenterMenu = new dynamicDirectiveServiceProvider.DynamicDirective(true, 'controlcenter-menu-appstore', {priority: -12});
dynamicDirectiveServiceProvider.addInjection('controlcenter-sidebar-menu', appstoreControlCenterMenu);
})
.run(function(esnFeatureRegistry) {
esnFeatureRegistry.add({
name: 'Modules',
configurations: [
{
displayIn: 'Control Center',
name: 'control-center:appstore'
},
{
displayIn: 'Application Menu',
name: 'application-menu:appstore'
}
],
description: 'Allows user to submit new external application for current domain'
});
});