1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-11 05:54:15 +01:00

180 lines
5.3 KiB
JavaScript
Raw Normal View History

/* eslint-disable
no-undef,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
2018-11-21 11:08:53 +01:00
'use strict';
2015-05-05 03:10:25 +02:00
/**
* Navigation controller. List the links availables in the left navigation pane and their icon.
*/
Application.Controllers.controller('MainNavController', ['$scope', 'settingsPromise', function ($scope, settingsPromise) {
/**
* Returns the current state of the public registration setting (allowed/blocked).
*/
$scope.registrationEnabled = function () {
return settingsPromise.public_registrations === 'true';
};
/**
* Check if the store should be hidden to members/visitors
*/
$scope.storeHidden = function () {
return settingsPromise.store_hidden === 'true';
};
// Common links (public application)
2015-05-05 03:10:25 +02:00
$scope.navLinks = [
{
state: 'app.public.home',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.home',
2020-01-28 18:15:11 +01:00
linkIcon: 'home',
class: 'home-link'
},
2020-02-26 18:05:09 +01:00
{ class: 'menu-spacer' },
$scope.$root.modules.publicAgenda && {
state: 'app.public.calendar',
linkText: 'app.public.common.public_calendar',
linkIcon: 'calendar',
class: 'public-calendar-link'
},
$scope.$root.modules.machines && {
state: 'app.public.machines_list',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.reserve_a_machine',
2020-01-28 18:15:11 +01:00
linkIcon: 'cogs',
class: 'reserve-machine-link'
},
$scope.$root.modules.trainings && {
state: 'app.public.trainings_list',
linkText: 'app.public.common.trainings_registrations',
linkIcon: 'graduation-cap',
class: 'reserve-training-link'
},
$scope.$root.modules.spaces && {
state: 'app.public.spaces_list',
linkText: 'app.public.common.reserve_a_space',
linkIcon: 'rocket',
class: 'reserve-space-link'
},
2015-05-05 03:10:25 +02:00
{
state: 'app.public.events_list',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.events_registrations',
2020-01-28 18:15:11 +01:00
linkIcon: 'tags',
class: 'reserve-event-link'
},
2022-09-27 11:14:27 +02:00
$scope.$root.modules.store && {
2022-08-16 18:53:11 +02:00
state: 'app.public.store',
linkText: 'app.public.common.fablab_store',
linkIcon: 'cart-plus',
class: 'store-link',
authorizedRoles: $scope.storeHidden() ? ['admin', 'manager'] : undefined
2022-08-16 18:53:11 +02:00
},
2020-02-26 18:05:09 +01:00
{ class: 'menu-spacer' },
2015-05-05 03:10:25 +02:00
{
state: 'app.public.projects_list',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.projects_gallery',
2020-01-28 18:15:11 +01:00
linkIcon: 'th',
class: 'projects-gallery-link'
2020-02-26 18:05:09 +01:00
},
$scope.$root.modules.plans && { class: 'menu-spacer' },
$scope.$root.modules.plans && {
state: 'app.public.plans',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.subscriptions',
2020-01-28 18:15:11 +01:00
linkIcon: 'credit-card',
class: 'plans-link'
}
].filter(Boolean);
2021-06-15 11:57:43 +02:00
2018-11-21 11:08:53 +01:00
Fablab.adminNavLinks = Fablab.adminNavLinks || [];
$scope.adminNavLinks = [
2020-02-26 18:05:09 +01:00
{
state: 'app.admin.calendar',
linkText: 'app.public.common.manage_the_calendar',
2020-04-22 12:31:44 +02:00
linkIcon: 'calendar',
authorizedRoles: ['admin', 'manager']
2020-02-26 18:05:09 +01:00
},
$scope.$root.modules.machines && {
2020-02-26 18:05:09 +01:00
state: 'app.public.machines_list',
linkText: 'app.public.common.manage_the_machines',
2020-04-22 12:31:44 +02:00
linkIcon: 'cogs',
authorizedRoles: ['admin', 'manager']
2020-02-26 18:05:09 +01:00
},
$scope.$root.modules.trainings && {
state: 'app.admin.trainings',
linkText: 'app.public.common.trainings_monitoring',
linkIcon: 'graduation-cap',
authorizedRoles: ['admin', 'manager']
},
$scope.$root.modules.spaces && {
state: 'app.public.spaces_list',
linkText: 'app.public.common.manage_the_spaces',
linkIcon: 'rocket'
},
2016-03-23 18:39:41 +01:00
{
2020-02-26 18:05:09 +01:00
state: 'app.admin.events',
linkText: 'app.public.common.manage_the_events',
2020-04-22 12:31:44 +02:00
linkIcon: 'tags',
authorizedRoles: ['admin', 'manager']
},
2022-09-27 11:14:27 +02:00
$scope.$root.modules.store && {
state: 'app.admin.store.products',
linkText: 'app.public.common.manage_the_store',
linkIcon: 'cart-plus',
authorizedRoles: ['admin', 'manager']
},
2020-02-26 18:05:09 +01:00
{ class: 'menu-spacer' },
2015-05-05 03:10:25 +02:00
{
state: 'app.admin.members',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.manage_the_users',
2020-04-22 12:31:44 +02:00
linkIcon: 'users',
authorizedRoles: ['admin', 'manager']
},
2016-03-23 18:39:41 +01:00
{
state: 'app.admin.pricing',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.subscriptions_and_prices',
2020-04-22 12:31:44 +02:00
linkIcon: 'money',
authorizedRoles: ['admin']
},
2015-05-05 03:10:25 +02:00
{
2020-02-26 18:05:09 +01:00
state: 'app.admin.invoices',
linkText: 'app.public.common.manage_the_invoices',
2020-04-22 12:31:44 +02:00
linkIcon: 'file-pdf-o',
authorizedRoles: ['admin', 'manager']
},
$scope.$root.modules.statistics && {
state: 'app.admin.statistics',
linkText: 'app.public.common.statistics',
linkIcon: 'bar-chart-o',
authorizedRoles: ['admin']
},
{
class: 'menu-spacer',
authorizedRoles: ['admin']
},
2016-03-23 18:39:41 +01:00
{
state: 'app.admin.settings',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.customization',
2020-04-22 12:31:44 +02:00
linkIcon: 'gear',
authorizedRoles: ['admin']
},
2020-02-26 18:05:09 +01:00
{
state: 'app.admin.projects',
linkText: 'app.public.common.projects',
2020-04-22 12:31:44 +02:00
linkIcon: 'tasks',
authorizedRoles: ['admin']
2020-02-26 18:05:09 +01:00
},
2016-05-09 18:15:04 +02:00
{
state: 'app.admin.open_api_clients',
2019-12-16 16:54:40 +01:00
linkText: 'app.public.common.open_api_clients',
2020-04-22 12:31:44 +02:00
linkIcon: 'cloud',
authorizedRoles: ['admin']
2016-05-09 18:15:04 +02:00
}
].filter(Boolean).concat(Fablab.adminNavLinks);
}
2018-11-21 11:08:53 +01:00
]);