added Menu Setting to Admin UI
parent
ec5ad8792c
commit
efd239be06
|
@ -24,32 +24,6 @@ app
|
||||||
$urlRouterProvider.otherwise("login/login");
|
$urlRouterProvider.otherwise("login/login");
|
||||||
|
|
||||||
$stateProvider
|
$stateProvider
|
||||||
.state('feed', {
|
|
||||||
abstract: true,
|
|
||||||
url: "/feed",
|
|
||||||
templateUrl: "views/common/content.html",
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/login/login.service.js',
|
|
||||||
'app/services/fdd/webmessageanalysis.service.js',
|
|
||||||
'app/services/users/user/user.service.js',
|
|
||||||
'app/controllers/users/user/user.controller.js',
|
|
||||||
'app/controllers/login/login.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('fdd', {
|
.state('fdd', {
|
||||||
abstract: true,
|
abstract: true,
|
||||||
url: "/fdd",
|
url: "/fdd",
|
||||||
|
@ -300,84 +274,6 @@ app
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('equipment', {
|
|
||||||
abstract: true,
|
|
||||||
url: "/equipment",
|
|
||||||
templateUrl: "views/common/content.html",
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/login/login.service.js',
|
|
||||||
'app/services/fdd/webmessageanalysis.service.js',
|
|
||||||
'app/services/users/user/user.service.js',
|
|
||||||
'app/controllers/users/user/user.controller.js',
|
|
||||||
'app/controllers/login/login.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('combinedequipment', {
|
|
||||||
abstract: true,
|
|
||||||
url: "/combinedequipment",
|
|
||||||
templateUrl: "views/common/content.html",
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/login/login.service.js',
|
|
||||||
'app/services/fdd/webmessageanalysis.service.js',
|
|
||||||
'app/services/users/user/user.service.js',
|
|
||||||
'app/controllers/users/user/user.controller.js',
|
|
||||||
'app/controllers/login/login.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('verification', {
|
|
||||||
abstract: true,
|
|
||||||
url: "/verification",
|
|
||||||
templateUrl: "views/common/content.html",
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/login/login.service.js',
|
|
||||||
'app/services/fdd/webmessageanalysis.service.js',
|
|
||||||
'app/services/users/user/user.service.js',
|
|
||||||
'app/controllers/users/user/user.controller.js',
|
|
||||||
'app/controllers/login/login.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings', {
|
.state('settings', {
|
||||||
abstract: true,
|
abstract: true,
|
||||||
url: "/settings",
|
url: "/settings",
|
||||||
|
@ -404,6 +300,392 @@ app
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.state('settings.category', {
|
||||||
|
url: "/category",
|
||||||
|
templateUrl: "views/settings/category/category.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.CATEGORY'
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/category/category.service.js',
|
||||||
|
'app/controllers/settings/category/energycategory.master.controller.js',
|
||||||
|
'app/controllers/settings/category/energycategory.controller.js',
|
||||||
|
'app/services/settings/category/energyitem.service.js',
|
||||||
|
'app/controllers/settings/category/energyitem.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.costcenter', {
|
||||||
|
url: "/costcenter",
|
||||||
|
templateUrl: "views/settings/costcenter/costcenter.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.COSTCENTER',
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/costcenter/costcenter.service.js',
|
||||||
|
'app/services/settings/costcenter/costcentertariff.service.js',
|
||||||
|
'app/services/settings/tariff/tariff.service.js',
|
||||||
|
'app/services/settings/costcenter/costfile.service.js',
|
||||||
|
'app/controllers/settings/costcenter/costcenter.master.controller.js',
|
||||||
|
'app/controllers/settings/costcenter/costcenter.controller.js',
|
||||||
|
'app/controllers/settings/costcenter/costcentertariff.controller.js',
|
||||||
|
'app/controllers/settings/costcenter/costfile.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.tariff', {
|
||||||
|
url: "/tariff",
|
||||||
|
templateUrl: "views/settings/tariff/tariff.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.TARIFF'
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
serie: true,
|
||||||
|
files: ['js/daterangepicker/daterangepicker.min.js', 'js/daterangepicker/daterangepicker.min.css']
|
||||||
|
}, {
|
||||||
|
name: 'daterangepicker',
|
||||||
|
files: ['js/daterangepicker/angular-daterangepicker.min.js']
|
||||||
|
}, {
|
||||||
|
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
||||||
|
}, {
|
||||||
|
name: 'ui.footable',
|
||||||
|
files: ['js/plugins/footable/angular-footable.js']
|
||||||
|
}, {
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/tariff/tariff.service.js',
|
||||||
|
'app/services/settings/tariff/tariff.const.js',
|
||||||
|
'app/services/settings/category/category.service.js',
|
||||||
|
'app/controllers/settings/tariff/tariff.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.contact', {
|
||||||
|
url: "/contact",
|
||||||
|
templateUrl: "views/settings/contact/contact.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.CONTACT'
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/contact/contact.service.js',
|
||||||
|
'app/controllers/settings/contact/contact.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.gateway', {
|
||||||
|
url: "/gateway",
|
||||||
|
templateUrl: "views/settings/gateway/gateway.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.GATEWAY',
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
||||||
|
}, {
|
||||||
|
name: 'ui.footable',
|
||||||
|
files: ['js/plugins/footable/angular-footable.js']
|
||||||
|
}, {
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/gateway/gateway.service.js',
|
||||||
|
'app/controllers/settings/gateway/gateway.master.controller.js',
|
||||||
|
'app/controllers/settings/gateway/gateway.controller.js',
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.datasource', {
|
||||||
|
url: "/data-source",
|
||||||
|
templateUrl: "views/settings/datasource/datasource.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.DATASOURCE'
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
|
||||||
|
files: [
|
||||||
|
'app/services/settings/datasource/datasource.service.js',
|
||||||
|
'app/services/settings/datasource/point.service.js',
|
||||||
|
'app/services/settings/gateway/gateway.service.js',
|
||||||
|
'app/controllers/settings/datasource/datasource.master.controller.js',
|
||||||
|
'app/controllers/settings/datasource/datasource.controller.js',
|
||||||
|
'app/controllers/settings/datasource/point.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.meter', {
|
||||||
|
url: "/meter",
|
||||||
|
templateUrl: "views/settings/meter/meter.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.METER',
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
||||||
|
}, {
|
||||||
|
name: 'ui.footable',
|
||||||
|
files: ['js/plugins/footable/angular-footable.js']
|
||||||
|
}, {
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/costcenter/costcenter.service.js',
|
||||||
|
'app/services/settings/category/category.service.js',
|
||||||
|
'app/services/settings/category/energyitem.service.js',
|
||||||
|
'app/services/settings/meter/meter.service.js',
|
||||||
|
'app/services/settings/meter/offlinemeter.service.js',
|
||||||
|
'app/services/settings/meter/offlinemeterfile.service.js',
|
||||||
|
'app/services/settings/meter/virtualmeter.service.js',
|
||||||
|
'app/services/settings/meter/meterpoint.service.js',
|
||||||
|
'app/services/settings/datasource/datasource.service.js',
|
||||||
|
'app/services/settings/datasource/point.service.js',
|
||||||
|
'app/controllers/settings/meter/meter.master.controller.js',
|
||||||
|
'app/controllers/settings/meter/meter.controller.js',
|
||||||
|
'app/controllers/settings/meter/offlinemeter.controller.js',
|
||||||
|
'app/controllers/settings/meter/offlinemeterfile.controller.js',
|
||||||
|
'app/controllers/settings/meter/virtualmeter.controller.js',
|
||||||
|
'app/controllers/settings/meter/meterpoint.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.sensor', {
|
||||||
|
url: "/sensor",
|
||||||
|
templateUrl: "views/settings/sensor/sensor.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.SENSOR',
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
||||||
|
}, {
|
||||||
|
name: 'ui.footable',
|
||||||
|
files: ['js/plugins/footable/angular-footable.js']
|
||||||
|
}, {
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/sensor/sensor.service.js',
|
||||||
|
'app/services/settings/sensor/sensorpoint.service.js',
|
||||||
|
'app/services/settings/datasource/datasource.service.js',
|
||||||
|
'app/services/settings/datasource/point.service.js',
|
||||||
|
'app/controllers/settings/sensor/sensor.master.controller.js',
|
||||||
|
'app/controllers/settings/sensor/sensor.controller.js',
|
||||||
|
'app/controllers/settings/sensor/sensorpoint.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.equipment', {
|
||||||
|
url: "/equipment",
|
||||||
|
templateUrl: "views/settings/equipment/equipment.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.EQUIPMENT'
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.checkbox', 'ui.select', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/space/space.service.js',
|
||||||
|
'app/services/settings/equipment/equipment.service.js',
|
||||||
|
'app/services/settings/costcenter/costcenter.service.js',
|
||||||
|
'app/services/settings/datasource/point.service.js',
|
||||||
|
'app/services/settings/meter/meter.service.js',
|
||||||
|
'app/services/settings/meter/offlinemeter.service.js',
|
||||||
|
'app/services/settings/meter/virtualmeter.service.js',
|
||||||
|
'app/services/settings/equipment/equipmentmeter.service.js',
|
||||||
|
'app/services/settings/equipment/equipmentparameter.service.js',
|
||||||
|
'app/controllers/settings/equipment/equipment.master.controller.js',
|
||||||
|
'app/controllers/settings/equipment/equipment.controller.js',
|
||||||
|
'app/controllers/settings/equipment/equipmentmeter.controller.js',
|
||||||
|
'app/controllers/settings/equipment/equipmentparameter.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.state('settings.combinedequipment', {
|
||||||
|
url: "/combinedequipment",
|
||||||
|
templateUrl: "views/settings/combinedequipment/combinedequipment.html",
|
||||||
|
data: {
|
||||||
|
pageTitle: 'MENU.SETTINGS.COMBINED_EQUIPMENT'
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
deps: [
|
||||||
|
'$ocLazyLoad',
|
||||||
|
function ($ocLazyLoad) {
|
||||||
|
return $ocLazyLoad.load(['ui.checkbox', 'ui.select', 'toaster']).then(
|
||||||
|
function () {
|
||||||
|
return $ocLazyLoad.load([{
|
||||||
|
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
||||||
|
}, {
|
||||||
|
name: 'oitozero.ngSweetAlert',
|
||||||
|
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
||||||
|
}, {
|
||||||
|
serie: true,
|
||||||
|
files: [
|
||||||
|
'app/services/settings/space/space.service.js',
|
||||||
|
'app/services/settings/combinedequipment/combinedequipment.service.js',
|
||||||
|
'app/services/settings/costcenter/costcenter.service.js',
|
||||||
|
'app/services/settings/datasource/point.service.js',
|
||||||
|
'app/services/settings/equipment/equipment.service.js',
|
||||||
|
'app/services/settings/meter/meter.service.js',
|
||||||
|
'app/services/settings/meter/offlinemeter.service.js',
|
||||||
|
'app/services/settings/meter/virtualmeter.service.js',
|
||||||
|
'app/services/settings/combinedequipment/combinedequipmentequipment.service.js',
|
||||||
|
'app/services/settings/combinedequipment/combinedequipmentmeter.service.js',
|
||||||
|
'app/services/settings/combinedequipment/combinedequipmentparameter.service.js',
|
||||||
|
'app/controllers/settings/combinedequipment/combinedequipment.master.controller.js',
|
||||||
|
'app/controllers/settings/combinedequipment/combinedequipment.controller.js',
|
||||||
|
'app/controllers/settings/combinedequipment/combinedequipmentequipment.controller.js',
|
||||||
|
'app/controllers/settings/combinedequipment/combinedequipmentmeter.controller.js',
|
||||||
|
'app/controllers/settings/combinedequipment/combinedequipmentparameter.controller.js'
|
||||||
|
]
|
||||||
|
}]);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
.state('settings.space', {
|
.state('settings.space', {
|
||||||
url: "/space",
|
url: "/space",
|
||||||
templateUrl: "views/settings/space/space.html",
|
templateUrl: "views/settings/space/space.html",
|
||||||
|
@ -635,283 +917,6 @@ app
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
.state('settings.equipment', {
|
|
||||||
url: "/equipment",
|
|
||||||
templateUrl: "views/settings/equipment/equipment.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.EQUIPMENT'
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.checkbox', 'ui.select', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/space/space.service.js',
|
|
||||||
'app/services/settings/equipment/equipment.service.js',
|
|
||||||
'app/services/settings/costcenter/costcenter.service.js',
|
|
||||||
'app/services/settings/datasource/point.service.js',
|
|
||||||
'app/services/settings/meter/meter.service.js',
|
|
||||||
'app/services/settings/meter/offlinemeter.service.js',
|
|
||||||
'app/services/settings/meter/virtualmeter.service.js',
|
|
||||||
'app/services/settings/equipment/equipmentmeter.service.js',
|
|
||||||
'app/services/settings/equipment/equipmentparameter.service.js',
|
|
||||||
'app/controllers/settings/equipment/equipment.master.controller.js',
|
|
||||||
'app/controllers/settings/equipment/equipment.controller.js',
|
|
||||||
'app/controllers/settings/equipment/equipmentmeter.controller.js',
|
|
||||||
'app/controllers/settings/equipment/equipmentparameter.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.combinedequipment', {
|
|
||||||
url: "/combinedequipment",
|
|
||||||
templateUrl: "views/settings/combinedequipment/combinedequipment.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.COMBINED_EQUIPMENT'
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.checkbox', 'ui.select', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/space/space.service.js',
|
|
||||||
'app/services/settings/combinedequipment/combinedequipment.service.js',
|
|
||||||
'app/services/settings/costcenter/costcenter.service.js',
|
|
||||||
'app/services/settings/datasource/point.service.js',
|
|
||||||
'app/services/settings/equipment/equipment.service.js',
|
|
||||||
'app/services/settings/meter/meter.service.js',
|
|
||||||
'app/services/settings/meter/offlinemeter.service.js',
|
|
||||||
'app/services/settings/meter/virtualmeter.service.js',
|
|
||||||
'app/services/settings/combinedequipment/combinedequipmentequipment.service.js',
|
|
||||||
'app/services/settings/combinedequipment/combinedequipmentmeter.service.js',
|
|
||||||
'app/services/settings/combinedequipment/combinedequipmentparameter.service.js',
|
|
||||||
'app/controllers/settings/combinedequipment/combinedequipment.master.controller.js',
|
|
||||||
'app/controllers/settings/combinedequipment/combinedequipment.controller.js',
|
|
||||||
'app/controllers/settings/combinedequipment/combinedequipmentequipment.controller.js',
|
|
||||||
'app/controllers/settings/combinedequipment/combinedequipmentmeter.controller.js',
|
|
||||||
'app/controllers/settings/combinedequipment/combinedequipmentparameter.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.meter', {
|
|
||||||
url: "/meter",
|
|
||||||
templateUrl: "views/settings/meter/meter.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.METER',
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
|
||||||
}, {
|
|
||||||
name: 'ui.footable',
|
|
||||||
files: ['js/plugins/footable/angular-footable.js']
|
|
||||||
}, {
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/costcenter/costcenter.service.js',
|
|
||||||
'app/services/settings/category/category.service.js',
|
|
||||||
'app/services/settings/category/energyitem.service.js',
|
|
||||||
'app/services/settings/meter/meter.service.js',
|
|
||||||
'app/services/settings/meter/offlinemeter.service.js',
|
|
||||||
'app/services/settings/meter/offlinemeterfile.service.js',
|
|
||||||
'app/services/settings/meter/virtualmeter.service.js',
|
|
||||||
'app/services/settings/meter/meterpoint.service.js',
|
|
||||||
'app/services/settings/datasource/datasource.service.js',
|
|
||||||
'app/services/settings/datasource/point.service.js',
|
|
||||||
'app/controllers/settings/meter/meter.master.controller.js',
|
|
||||||
'app/controllers/settings/meter/meter.controller.js',
|
|
||||||
'app/controllers/settings/meter/offlinemeter.controller.js',
|
|
||||||
'app/controllers/settings/meter/offlinemeterfile.controller.js',
|
|
||||||
'app/controllers/settings/meter/virtualmeter.controller.js',
|
|
||||||
'app/controllers/settings/meter/meterpoint.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.sensor', {
|
|
||||||
url: "/sensor",
|
|
||||||
templateUrl: "views/settings/sensor/sensor.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.SENSOR',
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
|
||||||
}, {
|
|
||||||
name: 'ui.footable',
|
|
||||||
files: ['js/plugins/footable/angular-footable.js']
|
|
||||||
}, {
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/sensor/sensor.service.js',
|
|
||||||
'app/services/settings/sensor/sensorpoint.service.js',
|
|
||||||
'app/services/settings/datasource/datasource.service.js',
|
|
||||||
'app/services/settings/datasource/point.service.js',
|
|
||||||
'app/controllers/settings/sensor/sensor.master.controller.js',
|
|
||||||
'app/controllers/settings/sensor/sensor.controller.js',
|
|
||||||
'app/controllers/settings/sensor/sensorpoint.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.costcenter', {
|
|
||||||
url: "/costcenter",
|
|
||||||
templateUrl: "views/settings/costcenter/costcenter.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.COSTCENTER',
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/costcenter/costcenter.service.js',
|
|
||||||
'app/services/settings/costcenter/costcentertariff.service.js',
|
|
||||||
'app/services/settings/tariff/tariff.service.js',
|
|
||||||
'app/services/settings/costcenter/costfile.service.js',
|
|
||||||
'app/controllers/settings/costcenter/costcenter.master.controller.js',
|
|
||||||
'app/controllers/settings/costcenter/costcenter.controller.js',
|
|
||||||
'app/controllers/settings/costcenter/costcentertariff.controller.js',
|
|
||||||
'app/controllers/settings/costcenter/costfile.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.datasource', {
|
|
||||||
url: "/data-source",
|
|
||||||
templateUrl: "views/settings/datasource/datasource.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.DATASOURCE'
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
|
|
||||||
files: [
|
|
||||||
'app/services/settings/datasource/datasource.service.js',
|
|
||||||
'app/services/settings/datasource/point.service.js',
|
|
||||||
'app/services/settings/gateway/gateway.service.js',
|
|
||||||
'app/controllers/settings/datasource/datasource.master.controller.js',
|
|
||||||
'app/controllers/settings/datasource/datasource.controller.js',
|
|
||||||
'app/controllers/settings/datasource/point.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.category', {
|
|
||||||
url: "/category",
|
|
||||||
templateUrl: "views/settings/category/category.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.CATEGORY'
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/category/category.service.js',
|
|
||||||
'app/controllers/settings/category/energycategory.master.controller.js',
|
|
||||||
'app/controllers/settings/category/energycategory.controller.js',
|
|
||||||
'app/services/settings/category/energyitem.service.js',
|
|
||||||
'app/controllers/settings/category/energyitem.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.energyflowdiagram', {
|
.state('settings.energyflowdiagram', {
|
||||||
url: "/energyflowdiagram",
|
url: "/energyflowdiagram",
|
||||||
templateUrl: "views/settings/energyflowdiagram/energyflowdiagram.html",
|
templateUrl: "views/settings/energyflowdiagram/energyflowdiagram.html",
|
||||||
|
@ -989,11 +994,11 @@ app
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.state('settings.contact', {
|
.state('settings.menu', {
|
||||||
url: "/contact",
|
url: "/menu",
|
||||||
templateUrl: "views/settings/contact/contact.html",
|
templateUrl: "views/settings/menu/menu.html",
|
||||||
data: {
|
data: {
|
||||||
pageTitle: 'MENU.SETTINGS.CONTACT'
|
pageTitle: 'MENU.SETTINGS.MENU',
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
deps: [
|
deps: [
|
||||||
|
@ -1009,8 +1014,9 @@ app
|
||||||
}, {
|
}, {
|
||||||
serie: true,
|
serie: true,
|
||||||
files: [
|
files: [
|
||||||
'app/services/settings/contact/contact.service.js',
|
'app/services/settings/menu/menu.service.js',
|
||||||
'app/controllers/settings/contact/contact.controller.js'
|
'app/controllers/settings/menu/menu.controller.js',
|
||||||
|
'app/controllers/settings/menu/menu.master.controller.js'
|
||||||
]
|
]
|
||||||
}]);
|
}]);
|
||||||
}
|
}
|
||||||
|
@ -1018,6 +1024,7 @@ app
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
.state('settings.emailserver', {
|
.state('settings.emailserver', {
|
||||||
url: "/emailserver",
|
url: "/emailserver",
|
||||||
|
@ -1049,43 +1056,6 @@ app
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
.state('settings.gateway', {
|
|
||||||
url: "/gateway",
|
|
||||||
templateUrl: "views/settings/gateway/gateway.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.GATEWAY',
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'ui.checkbox', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
|
||||||
}, {
|
|
||||||
name: 'ui.footable',
|
|
||||||
files: ['js/plugins/footable/angular-footable.js']
|
|
||||||
}, {
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/gateway/gateway.service.js',
|
|
||||||
'app/controllers/settings/gateway/gateway.master.controller.js',
|
|
||||||
'app/controllers/settings/gateway/gateway.controller.js',
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('settings.gsmmodem', {
|
.state('settings.gsmmodem', {
|
||||||
url: "/gsmmodem",
|
url: "/gsmmodem",
|
||||||
templateUrl: "views/settings/gsmmodem/gsmmodem.html",
|
templateUrl: "views/settings/gsmmodem/gsmmodem.html",
|
||||||
|
@ -1152,49 +1122,6 @@ app
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
.state('settings.tariff', {
|
|
||||||
url: "/tariff",
|
|
||||||
templateUrl: "views/settings/tariff/tariff.html",
|
|
||||||
data: {
|
|
||||||
pageTitle: 'MENU.SETTINGS.TARIFF'
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
deps: [
|
|
||||||
'$ocLazyLoad',
|
|
||||||
function ($ocLazyLoad) {
|
|
||||||
return $ocLazyLoad.load(['ui.select', 'toaster']).then(
|
|
||||||
function () {
|
|
||||||
return $ocLazyLoad.load([{
|
|
||||||
serie: true,
|
|
||||||
files: ['js/daterangepicker/daterangepicker.min.js', 'js/daterangepicker/daterangepicker.min.css']
|
|
||||||
}, {
|
|
||||||
name: 'daterangepicker',
|
|
||||||
files: ['js/daterangepicker/angular-daterangepicker.min.js']
|
|
||||||
}, {
|
|
||||||
files: ['js/plugins/footable/footable.all.min.js', 'css/plugins/footable/footable.core.css']
|
|
||||||
}, {
|
|
||||||
name: 'ui.footable',
|
|
||||||
files: ['js/plugins/footable/angular-footable.js']
|
|
||||||
}, {
|
|
||||||
files: ['js/plugins/sweetalert/sweetalert.min.js', 'css/plugins/sweetalert/sweetalert.css']
|
|
||||||
}, {
|
|
||||||
name: 'oitozero.ngSweetAlert',
|
|
||||||
files: ['js/plugins/sweetalert/angular-sweetalert.min.js']
|
|
||||||
}, {
|
|
||||||
serie: true,
|
|
||||||
files: [
|
|
||||||
'app/services/settings/tariff/tariff.service.js',
|
|
||||||
'app/services/settings/tariff/tariff.const.js',
|
|
||||||
'app/services/settings/category/category.service.js',
|
|
||||||
'app/controllers/settings/tariff/tariff.controller.js'
|
|
||||||
]
|
|
||||||
}]);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.state('users', {
|
.state('users', {
|
||||||
abstract: true,
|
abstract: true,
|
||||||
url: "/users",
|
url: "/users",
|
||||||
|
|
|
@ -0,0 +1,181 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
app.controller('MenuController', function ($scope, $common, $uibModal, MenuService, CostCenterService, ContactService, toaster, $translate, SweetAlert) {
|
||||||
|
$scope.menus = [];
|
||||||
|
$scope.currentMenuID = 1;
|
||||||
|
$scope.currentMenu = {};
|
||||||
|
$scope.currentMenuChildren = [];
|
||||||
|
|
||||||
|
$scope.getAllMenus = function () {
|
||||||
|
MenuService.getAllMenus(function (error, data) {
|
||||||
|
if (!error) {
|
||||||
|
$scope.menus = data;
|
||||||
|
} else {
|
||||||
|
$scope.menus = [];
|
||||||
|
}
|
||||||
|
//create menu tree
|
||||||
|
var treedata = { 'core': { 'data': [], "multiple": false, }, "plugins": ["wholerow"] };
|
||||||
|
for (var i = 0; i < $scope.menus.length; i++) {
|
||||||
|
if ($scope.menus[i].parent_menu_id == null) {
|
||||||
|
var node = {
|
||||||
|
"id": $scope.menus[i].id.toString(),
|
||||||
|
"parent": '#',
|
||||||
|
"text": $scope.menus[i].name,
|
||||||
|
"state": { 'opened': true },
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
var node = {
|
||||||
|
"id": $scope.menus[i].id.toString(),
|
||||||
|
"parent": $scope.menus[i].parent_menu_id.toString(),
|
||||||
|
"text": $scope.menus[i].name,
|
||||||
|
"state": { 'opened': true },
|
||||||
|
};
|
||||||
|
};
|
||||||
|
treedata['core']['data'].push(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
angular.element(menutree).jstree(treedata);
|
||||||
|
//menu tree selected changed event handler
|
||||||
|
angular.element(menutree).on("changed.jstree", function (e, data) {
|
||||||
|
$scope.currentMenuID = parseInt(data.selected[0]);
|
||||||
|
$scope.getMenuChildren($scope.currentMenuID);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.refreshMenuTree = function () {
|
||||||
|
MenuService.getAllMenus(function (error, data) {
|
||||||
|
if (!error) {
|
||||||
|
$scope.menus = data;
|
||||||
|
} else {
|
||||||
|
$scope.menus = [];
|
||||||
|
}
|
||||||
|
//create menu tree
|
||||||
|
var treedata = { 'core': { 'data': [], "multiple": false, }, "plugins": ["wholerow"] };
|
||||||
|
for (var i = 0; i < $scope.menus.length; i++) {
|
||||||
|
if ($scope.menus[i].parent_menu_id == null) {
|
||||||
|
var node = {
|
||||||
|
"id": $scope.menus[i].id.toString(),
|
||||||
|
"parent": '#',
|
||||||
|
"text": $scope.menus[i].name,
|
||||||
|
"state": { 'opened': true},
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
var node = {
|
||||||
|
"id": $scope.menus[i].id.toString(),
|
||||||
|
"parent": $scope.menus[i].parent_menu_id.toString(),
|
||||||
|
"text": $scope.menus[i].name,
|
||||||
|
"state": { 'opened': true},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
treedata['core']['data'].push(node);
|
||||||
|
}
|
||||||
|
var menutree = document.getElementById("menutree");
|
||||||
|
angular.element(menutree).jstree(true).settings.core.data = treedata['core']['data'];
|
||||||
|
angular.element(menutree).jstree(true).refresh();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.getMenuChildren = function (menuid) {
|
||||||
|
MenuService.getMenuChildren(menuid, function (error, data) {
|
||||||
|
if (!error) {
|
||||||
|
$scope.currentMenu = data["current"];
|
||||||
|
$scope.currentMenuChildren = data["children"];
|
||||||
|
} else {
|
||||||
|
$scope.currentMenu = {};
|
||||||
|
$scope.currentMenuChildren = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.editMenu = function (menu) {
|
||||||
|
var modalInstance = $uibModal.open({
|
||||||
|
windowClass: "animated fadeIn",
|
||||||
|
templateUrl: 'views/settings/menu/menu.model.html',
|
||||||
|
controller: 'ModalEditMenuCtrl',
|
||||||
|
resolve: {
|
||||||
|
params: function () {
|
||||||
|
return {
|
||||||
|
menu: angular.copy(menu),
|
||||||
|
menus: angular.copy($scope.menus),
|
||||||
|
timezones: angular.copy($scope.timezones),
|
||||||
|
costcenters: angular.copy($scope.costcenters),
|
||||||
|
contacts: angular.copy($scope.contacts),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
modalInstance.result.then(function (modifiedMenu) {
|
||||||
|
if (modifiedMenu.parent_menu != null) {
|
||||||
|
modifiedMenu.parent_menu_id = modifiedMenu.parent_menu_id;
|
||||||
|
} else {
|
||||||
|
modifiedMenu.parent_menu_id = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
MenuService.editMenu(modifiedMenu, function (error, status) {
|
||||||
|
if (angular.isDefined(status) && status == 200) {
|
||||||
|
var templateName = "COMMON.MENU";
|
||||||
|
templateName = $translate.instant(templateName);
|
||||||
|
|
||||||
|
var popType = 'TOASTER.SUCCESS';
|
||||||
|
var popTitle = $common.toaster.success_title;
|
||||||
|
var popBody = $common.toaster.success_update_body;
|
||||||
|
|
||||||
|
popType = $translate.instant(popType);
|
||||||
|
popTitle = $translate.instant(popTitle);
|
||||||
|
popBody = $translate.instant(popBody, { template: templateName });
|
||||||
|
|
||||||
|
toaster.pop({
|
||||||
|
type: popType,
|
||||||
|
title: popTitle,
|
||||||
|
body: popBody,
|
||||||
|
showCloseButton: true,
|
||||||
|
});
|
||||||
|
$scope.$emit('handleEmitMenuChanged');
|
||||||
|
} else {
|
||||||
|
var templateName = "COMMON.MENU";
|
||||||
|
templateName = $translate.instant(templateName);
|
||||||
|
|
||||||
|
var popType = 'TOASTER.ERROR';
|
||||||
|
var popTitle = $common.toaster.error_title;
|
||||||
|
var popBody = $common.toaster.error_update_body;
|
||||||
|
|
||||||
|
popType = $translate.instant(popType);
|
||||||
|
popTitle = $translate.instant(popTitle);
|
||||||
|
popBody = $translate.instant(popBody, { template: templateName });
|
||||||
|
|
||||||
|
toaster.pop({
|
||||||
|
type: popType,
|
||||||
|
title: popTitle,
|
||||||
|
body: popBody,
|
||||||
|
showCloseButton: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, function () {
|
||||||
|
//do nothing;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.getAllMenus();
|
||||||
|
|
||||||
|
$scope.$on('handleBroadcastMenuChanged', function (event) {
|
||||||
|
$scope.refreshMenuTree();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
app.controller('ModalEditMenuCtrl', function ($scope, $uibModalInstance, params) {
|
||||||
|
$scope.operation = "SETTING.EDIT_MENU";
|
||||||
|
$scope.menu = params.menu;
|
||||||
|
|
||||||
|
$scope.ok = function () {
|
||||||
|
$uibModalInstance.close($scope.menu);
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.cancel = function () {
|
||||||
|
$uibModalInstance.dismiss('cancel');
|
||||||
|
};
|
||||||
|
});
|
|
@ -0,0 +1,8 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
app.controller('MenuMasterController', function($scope) {
|
||||||
|
|
||||||
|
$scope.$on('handleEmitMenuChanged', function(event) {
|
||||||
|
$scope.$broadcast('handleBroadcastMenuChanged');
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,32 @@
|
||||||
|
'use strict';
|
||||||
|
app.factory('MenuService', function($http) {
|
||||||
|
return {
|
||||||
|
getAllMenus:function(callback){
|
||||||
|
$http.get(getAPI()+'menus')
|
||||||
|
.success(function (response, status, headers, config) {
|
||||||
|
callback(null, response);
|
||||||
|
})
|
||||||
|
.error(function (e) {
|
||||||
|
callback(e);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getMenuChildren:function(menuid, callback){
|
||||||
|
$http.get(getAPI()+'menus/'+menuid+'/children')
|
||||||
|
.success(function (response, status, headers, config) {
|
||||||
|
callback(null, response);
|
||||||
|
})
|
||||||
|
.error(function (e) {
|
||||||
|
callback(e);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
editMenu: function(menu, callback) {
|
||||||
|
$http.put(getAPI()+'menus/'+menu.id,{data:menu})
|
||||||
|
.success(function (response, status, headers, config) {
|
||||||
|
callback(null, status);
|
||||||
|
})
|
||||||
|
.error(function (e) {
|
||||||
|
callback(e);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
|
@ -24,7 +24,7 @@ function config($translateProvider) {
|
||||||
DATA_SOURCE: 'Data Source',
|
DATA_SOURCE: 'Data Source',
|
||||||
SENSOR: 'Sensor',
|
SENSOR: 'Sensor',
|
||||||
ENERGY_FLOW_DIAGRAM: 'Energy Flow Diagram',
|
ENERGY_FLOW_DIAGRAM: 'Energy Flow Diagram',
|
||||||
|
MENU: 'Menu',
|
||||||
PERIOD: {
|
PERIOD: {
|
||||||
LABEL: 'Date period',
|
LABEL: 'Date period',
|
||||||
YEAR: 'Year',
|
YEAR: 'Year',
|
||||||
|
@ -33,8 +33,6 @@ function config($translateProvider) {
|
||||||
HOUR: 'Hour',
|
HOUR: 'Hour',
|
||||||
},
|
},
|
||||||
DATE: 'Date Range',
|
DATE: 'Date Range',
|
||||||
BASEMETER: 'Base Meter',
|
|
||||||
ANALYSISMETER: 'Analysis Meter',
|
|
||||||
ANALYSIS: {
|
ANALYSIS: {
|
||||||
LABEL: 'Analysis Type',
|
LABEL: 'Analysis Type',
|
||||||
ENERGY: 'Energy',
|
ENERGY: 'Energy',
|
||||||
|
@ -144,6 +142,7 @@ function config($translateProvider) {
|
||||||
CATEGORY: 'Energy Categories',
|
CATEGORY: 'Energy Categories',
|
||||||
ENERGY_FLOW_DIAGRAM: 'Energy Flow Diagram',
|
ENERGY_FLOW_DIAGRAM: 'Energy Flow Diagram',
|
||||||
DISTRIBUTION_SYSTEM: 'Distribution System',
|
DISTRIBUTION_SYSTEM: 'Distribution System',
|
||||||
|
MENU: 'Menu Settings',
|
||||||
TARIFF: 'Tariff Settings',
|
TARIFF: 'Tariff Settings',
|
||||||
EMAIL_SERVER: 'Email Server Settings',
|
EMAIL_SERVER: 'Email Server Settings',
|
||||||
GSM_MODEM: 'GSM Modem Settings',
|
GSM_MODEM: 'GSM Modem Settings',
|
||||||
|
@ -351,6 +350,13 @@ function config($translateProvider) {
|
||||||
RESTORE: 'Restore',
|
RESTORE: 'Restore',
|
||||||
RESTORE_SUCCESS: 'Restore Success',
|
RESTORE_SUCCESS: 'Restore Success',
|
||||||
RESTORE_FAILED: 'Restore Failed',
|
RESTORE_FAILED: 'Restore Failed',
|
||||||
|
|
||||||
|
SELECT_MENU: 'Select Menu',
|
||||||
|
CURRENT_SELECTED_MENU: 'Current Selected Menu',
|
||||||
|
PARENT_MENU: 'Parent Menu',
|
||||||
|
IS_HIDDEN: 'Is Hidden',
|
||||||
|
CHILD_MENUS: 'Child Menus',
|
||||||
|
EDIT_MENU: 'Edit Menu'
|
||||||
},
|
},
|
||||||
CONTACT: {
|
CONTACT: {
|
||||||
EMAIL: 'Email',
|
EMAIL: 'Email',
|
||||||
|
@ -894,8 +900,7 @@ function config($translateProvider) {
|
||||||
DATA_SOURCE: '数据源',
|
DATA_SOURCE: '数据源',
|
||||||
SENSOR: '传感器',
|
SENSOR: '传感器',
|
||||||
ENERGY_FLOW_DIAGRAM: '能流图',
|
ENERGY_FLOW_DIAGRAM: '能流图',
|
||||||
|
MENU: '菜单',
|
||||||
UTILITY: '效用',
|
|
||||||
PERIOD: {
|
PERIOD: {
|
||||||
LABEL: '选择范围',
|
LABEL: '选择范围',
|
||||||
YEAR: '年',
|
YEAR: '年',
|
||||||
|
@ -904,8 +909,6 @@ function config($translateProvider) {
|
||||||
HOUR: '时',
|
HOUR: '时',
|
||||||
},
|
},
|
||||||
DATE: '日期',
|
DATE: '日期',
|
||||||
BASEMETER: '基准表',
|
|
||||||
ANALYSISMETER: '分析表',
|
|
||||||
ANALYSIS: {
|
ANALYSIS: {
|
||||||
LABEL: '显示方式',
|
LABEL: '显示方式',
|
||||||
ENERGY: '能耗',
|
ENERGY: '能耗',
|
||||||
|
@ -1015,6 +1018,7 @@ function config($translateProvider) {
|
||||||
CATEGORY: '能源分类管理',
|
CATEGORY: '能源分类管理',
|
||||||
ENERGY_FLOW_DIAGRAM: '能流图管理',
|
ENERGY_FLOW_DIAGRAM: '能流图管理',
|
||||||
DISTRIBUTION_SYSTEM: '配电系统管理',
|
DISTRIBUTION_SYSTEM: '配电系统管理',
|
||||||
|
MENU: '菜单管理',
|
||||||
TARIFF: '能源费率管理',
|
TARIFF: '能源费率管理',
|
||||||
EMAIL_SERVER: '邮件服务器设置',
|
EMAIL_SERVER: '邮件服务器设置',
|
||||||
GSM_MODEM: '短信模块设置',
|
GSM_MODEM: '短信模块设置',
|
||||||
|
@ -1230,6 +1234,13 @@ function config($translateProvider) {
|
||||||
RESTORE: '恢复',
|
RESTORE: '恢复',
|
||||||
RESTORE_SUCCESS: '恢复成功',
|
RESTORE_SUCCESS: '恢复成功',
|
||||||
RESTORE_FAILED: '恢复失败',
|
RESTORE_FAILED: '恢复失败',
|
||||||
|
|
||||||
|
SELECT_MENU: '选择菜单',
|
||||||
|
CURRENT_SELECTED_MENU: '当前选定菜单',
|
||||||
|
PARENT_MENU: '上级菜单',
|
||||||
|
IS_HIDDEN: '是否隐藏',
|
||||||
|
CHILD_MENUS: '下级菜单',
|
||||||
|
EDIT_MENU: '编辑菜单'
|
||||||
},
|
},
|
||||||
CONTACT: {
|
CONTACT: {
|
||||||
EMAIL: '邮箱',
|
EMAIL: '邮箱',
|
||||||
|
@ -1758,8 +1769,7 @@ function config($translateProvider) {
|
||||||
DATA_SOURCE: 'Datenquelle',
|
DATA_SOURCE: 'Datenquelle',
|
||||||
SENSOR: 'Sensor',
|
SENSOR: 'Sensor',
|
||||||
ENERGY_FLOW_DIAGRAM: 'Energieflussdiagramm',
|
ENERGY_FLOW_DIAGRAM: 'Energieflussdiagramm',
|
||||||
|
MENU: 'Menü',
|
||||||
UTILITY: 'Nützlichkeit',
|
|
||||||
PERIOD: {
|
PERIOD: {
|
||||||
LABEL: 'Bereich auswählen',
|
LABEL: 'Bereich auswählen',
|
||||||
YEAR: 'Jahr',
|
YEAR: 'Jahr',
|
||||||
|
@ -1768,8 +1778,6 @@ function config($translateProvider) {
|
||||||
HOUR: 'Zeit',
|
HOUR: 'Zeit',
|
||||||
},
|
},
|
||||||
DATE: 'Datum',
|
DATE: 'Datum',
|
||||||
BASEMETER: 'Benchmark-Tabelle',
|
|
||||||
ANALYSISMETER: 'Analysetabelle',
|
|
||||||
ANALYSIS: {
|
ANALYSIS: {
|
||||||
LABEL: 'Anzeigemethode',
|
LABEL: 'Anzeigemethode',
|
||||||
ENERGY: 'Energieverbrauch',
|
ENERGY: 'Energieverbrauch',
|
||||||
|
@ -1879,6 +1887,7 @@ function config($translateProvider) {
|
||||||
CATEGORY: 'Energieklassifizierungsmanagement',
|
CATEGORY: 'Energieklassifizierungsmanagement',
|
||||||
ENERGY_FLOW_DIAGRAM: 'Energieflussdiagramm-Management',
|
ENERGY_FLOW_DIAGRAM: 'Energieflussdiagramm-Management',
|
||||||
DISTRIBUTION_SYSTEM: 'Verwaltung des Verteilungssystems',
|
DISTRIBUTION_SYSTEM: 'Verwaltung des Verteilungssystems',
|
||||||
|
MENU: 'Verwaltung des Menüs',
|
||||||
TARIFF: 'Energieratenmanagement',
|
TARIFF: 'Energieratenmanagement',
|
||||||
EMAIL_SERVER: 'Mailserver-Einstellungen',
|
EMAIL_SERVER: 'Mailserver-Einstellungen',
|
||||||
GSM_MODEM: 'SMS-Moduleinstellungen',
|
GSM_MODEM: 'SMS-Moduleinstellungen',
|
||||||
|
@ -2095,6 +2104,13 @@ function config($translateProvider) {
|
||||||
RESTORE: 'wiederherstellen',
|
RESTORE: 'wiederherstellen',
|
||||||
RESTORE_SUCCESS: 'Erfolgreiche Genesung',
|
RESTORE_SUCCESS: 'Erfolgreiche Genesung',
|
||||||
RESTORE_FAILED: 'Wiederherstellung fehlgeschlagen',
|
RESTORE_FAILED: 'Wiederherstellung fehlgeschlagen',
|
||||||
|
|
||||||
|
SELECT_MENU: 'Menü auswählen',
|
||||||
|
CURRENT_SELECTED_MENU: 'Aktuelles Menü',
|
||||||
|
PARENT_MENU: 'Superior Menü',
|
||||||
|
IS_HIDDEN: 'Ist versteckt',
|
||||||
|
CHILD_MENUS: 'Unteres Menü',
|
||||||
|
EDIT_MENU: 'Menü bearbeiten'
|
||||||
},
|
},
|
||||||
CONTACT: {
|
CONTACT: {
|
||||||
EMAIL: 'Briefkasten',
|
EMAIL: 'Briefkasten',
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
<li ui-sref-active="active"><a ui-sref="settings.shopfloor">{{ 'MENU.SETTINGS.SHOPFLOOR' | translate }}</a></li>
|
<li ui-sref-active="active"><a ui-sref="settings.shopfloor">{{ 'MENU.SETTINGS.SHOPFLOOR' | translate }}</a></li>
|
||||||
<li ui-sref-active="active"><a ui-sref="settings.energyflowdiagram">{{ 'MENU.SETTINGS.ENERGY_FLOW_DIAGRAM' | translate }}</a></li>
|
<li ui-sref-active="active"><a ui-sref="settings.energyflowdiagram">{{ 'MENU.SETTINGS.ENERGY_FLOW_DIAGRAM' | translate }}</a></li>
|
||||||
<li ui-sref-active="active"><a ui-sref="settings.distributionsystem">{{ 'MENU.SETTINGS.DISTRIBUTION_SYSTEM' | translate }}</a></li>
|
<li ui-sref-active="active"><a ui-sref="settings.distributionsystem">{{ 'MENU.SETTINGS.DISTRIBUTION_SYSTEM' | translate }}</a></li>
|
||||||
|
<li ui-sref-active="active"><a ui-sref="settings.menu">{{ 'MENU.SETTINGS.MENU' | translate }}</a></li>
|
||||||
<li ui-sref-active="active"><a ui-sref="settings.emailserver">{{ 'MENU.SETTINGS.EMAIL_SERVER' | translate }}</a></li>
|
<li ui-sref-active="active"><a ui-sref="settings.emailserver">{{ 'MENU.SETTINGS.EMAIL_SERVER' | translate }}</a></li>
|
||||||
<li ui-sref-active="active"><a ui-sref="settings.gsmmodem">{{ 'MENU.SETTINGS.GSM_MODEM' | translate }}</a></li>
|
<li ui-sref-active="active"><a ui-sref="settings.gsmmodem">{{ 'MENU.SETTINGS.GSM_MODEM' | translate }}</a></li>
|
||||||
<li ui-sref-active="active"><a ui-sref="settings.knowledgefile">{{ 'MENU.SETTINGS.KNOWLEDGEFILE' | translate }}</a></li>
|
<li ui-sref-active="active"><a ui-sref="settings.knowledgefile">{{ 'MENU.SETTINGS.KNOWLEDGEFILE' | translate }}</a></li>
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
<div class="wrapper wrapper-content" ng-controller="MenuMasterController">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="tabs-container">
|
||||||
|
|
||||||
|
<uib-tabset>
|
||||||
|
<uib-tab heading="{{'COMMON.MENU' | translate}}">
|
||||||
|
<div class="panel-body" ng-controller="MenuController">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-3">
|
||||||
|
<div class="panel panel-info">
|
||||||
|
<div class="panel-heading">
|
||||||
|
{{'SETTING.SELECT_MENU' | translate}}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body" style="overflow: auto; max-height: 700px;">
|
||||||
|
<div id="menutree"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-9">
|
||||||
|
<div class="panel panel-info">
|
||||||
|
<div class="panel-heading">
|
||||||
|
{{'SETTING.CURRENT_SELECTED_MENU' | translate}}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<table class="table table-bordered table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">{{'SETTING.ID' | translate}}</th>
|
||||||
|
<th class="text-center">{{'SETTING.NAME' | translate}}</th>
|
||||||
|
<th class="text-center">{{'SETTING.PARENT_MENU' | translate}}</th>
|
||||||
|
<th class="text-center">
|
||||||
|
{{'SETTING.IS_HIDDEN' | translate}}
|
||||||
|
</th>
|
||||||
|
<th class="text-center">{{'SETTING.ACTION' | translate}}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr >
|
||||||
|
<td class="text-center">{{ currentMenu.id }}</td>
|
||||||
|
<td class="text-center">{{ currentMenu.name }}</td>
|
||||||
|
<td class="text-center">{{ currentMenu.parent_menu.name }}</td>
|
||||||
|
<td class="text-center">{{ currentMenu.is_hidden }}</td>
|
||||||
|
{{ currentMenu.is_hidden==false?'SETTING.NO':'SETTING.YES' | translate }}
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<a class="btn btn-primary btn-rounded btn-xs"
|
||||||
|
ng-click="editMenu(currentMenu)">{{'SETTING.EDIT' | translate}}</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel panel-info">
|
||||||
|
<div class="panel-heading">
|
||||||
|
{{'SETTING.CHILD_MENUS' | translate}}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<table class="table table-bordered table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr >
|
||||||
|
<th class="text-center">{{'SETTING.ID' | translate}}</th>
|
||||||
|
<th class="text-center">{{'SETTING.NAME' | translate}}</th>
|
||||||
|
<th class="text-center">{{'SETTING.PARENT_MENU' | translate}}</th>
|
||||||
|
<th class="text-center">{{'SETTING.IS_HIDDEN' | translate}}</th>
|
||||||
|
<th class="text-center">{{'SETTING.ACTION' | translate}}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr ng-repeat="menu in currentMenuChildren">
|
||||||
|
<td class="text-center">{{ menu.id }}</td>
|
||||||
|
<td class="text-center">{{ menu.name }}</td>
|
||||||
|
<td class="text-center">{{ menu.parent_menu.name }}</td>
|
||||||
|
<td class="text-center">
|
||||||
|
{{ menu.is_hidden==false?'SETTING.NO':'SETTING.YES' | translate }}
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<a class="btn btn-primary btn-rounded btn-xs"
|
||||||
|
ng-click="editMenu(menu)">{{'SETTING.EDIT' | translate}}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</uib-tab>
|
||||||
|
</uib-tabset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,36 @@
|
||||||
|
<div class="inmodal">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title">{{operation | translate}}</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form role="form" name="form_menu" novalidate class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4 control-label">{{'SETTING.NAME' | translate}}</label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<input ng-model="menu.name" type="text" disabled name="menuname" class="form-control" required>
|
||||||
|
<div class="m-t-xs" ng-show="form_menu.menuname.$invalid && form_menu.menuname.$dirty">
|
||||||
|
<small class="text-danger"
|
||||||
|
ng-show="form_menu.menuname.$error.required">{{'SETTING.INPUT_NAME' | translate}}</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hr-line-dashed"></div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4 control-label">{{'SETTING.IS_HIDDEN' | translate}} </label>
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<div class="checkbox checkbox-success">
|
||||||
|
<input id="chk_menu_is_hidden" type="checkbox" ng-model="menu.is_hidden"
|
||||||
|
ng-checked="menu.is_hidden">
|
||||||
|
<label for="chk_menu_is_hidden">{{'SETTING.IS_HIDDEN' | translate}}</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-white" ng-click="cancel()">{{'SETTING.CANCEL' | translate}}</button>
|
||||||
|
<button type="button" ng-disabled="form_menu.$invalid" class="btn btn-primary"
|
||||||
|
ng-click="ok()">{{'SETTING.SAVE' | translate}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -34,7 +34,7 @@ class MenuCollection:
|
||||||
"path": row['path'],
|
"path": row['path'],
|
||||||
"name": row['name'],
|
"name": row['name'],
|
||||||
"parent_menu_id": row['parent_menu_id'],
|
"parent_menu_id": row['parent_menu_id'],
|
||||||
"is_hidden": row['is_hidden']}
|
"is_hidden": bool(row['is_hidden'])}
|
||||||
|
|
||||||
result.append(temp)
|
result.append(temp)
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ class MenuItem:
|
||||||
"path": rows_menu['path'],
|
"path": rows_menu['path'],
|
||||||
"name": rows_menu['name'],
|
"name": rows_menu['name'],
|
||||||
"parent_menu_id": rows_menu['parent_menu_id'],
|
"parent_menu_id": rows_menu['parent_menu_id'],
|
||||||
"is_hidden": rows_menu['is_hidden']}
|
"is_hidden": bool(rows_menu['is_hidden'])}
|
||||||
|
|
||||||
cursor.close()
|
cursor.close()
|
||||||
cnx.disconnect()
|
cnx.disconnect()
|
||||||
|
@ -149,7 +149,7 @@ class MenuChildrenCollection:
|
||||||
"path": row_current_menu['path'],
|
"path": row_current_menu['path'],
|
||||||
"name": row_current_menu['name'],
|
"name": row_current_menu['name'],
|
||||||
"parent_menu_id": row_current_menu['parent_menu_id'],
|
"parent_menu_id": row_current_menu['parent_menu_id'],
|
||||||
"is_hidden": row_current_menu['is_hidden']}
|
"is_hidden": bool(row_current_menu['is_hidden'])}
|
||||||
current_menu_id = row_current_menu['id']
|
current_menu_id = row_current_menu['id']
|
||||||
|
|
||||||
query = (" SELECT id, path, name, parent_menu_id, is_hidden"
|
query = (" SELECT id, path, name, parent_menu_id, is_hidden"
|
||||||
|
@ -167,7 +167,7 @@ class MenuChildrenCollection:
|
||||||
"path": row['path'],
|
"path": row['path'],
|
||||||
"name": row['name'],
|
"name": row['name'],
|
||||||
"parent_menu": current_menu,
|
"parent_menu": current_menu,
|
||||||
"is_hidden": row['is_hidden']
|
"is_hidden": bool(row['is_hidden'])
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -195,43 +195,34 @@ class MenuWebCollection:
|
||||||
cnx = mysql.connector.connect(**config.myems_system_db)
|
cnx = mysql.connector.connect(**config.myems_system_db)
|
||||||
cursor = cnx.cursor(dictionary=True)
|
cursor = cnx.cursor(dictionary=True)
|
||||||
|
|
||||||
query = (" SELECT id, path, parent_menu_id, is_hidden "
|
query = (" SELECT id, path, parent_menu_id, is_hidden "
|
||||||
" FROM tbl_menus "
|
" FROM tbl_menus "
|
||||||
" WHERE parent_menu_id is NULL "
|
" WHERE parent_menu_id is NULL AND is_hidden == false ")
|
||||||
" AND is_hidden=0 ")
|
|
||||||
cursor.execute(query)
|
cursor.execute(query)
|
||||||
rows_menus = cursor.fetchall()
|
rows_menus = cursor.fetchall()
|
||||||
|
|
||||||
first_paths = {}
|
first_paths = {}
|
||||||
if rows_menus is not None and len(rows_menus) > 0:
|
if rows_menus is not None and len(rows_menus) > 0:
|
||||||
for row in rows_menus:
|
for row in rows_menus:
|
||||||
_id = row['id']
|
first_paths[row['id']] = {
|
||||||
path = row['path']
|
'path': row['path'],
|
||||||
first_paths[_id] = {
|
|
||||||
'path': path,
|
|
||||||
'children': []
|
'children': []
|
||||||
}
|
}
|
||||||
|
|
||||||
query = (" SELECT id, path, parent_menu_id, is_hidden "
|
query = (" SELECT id, path, parent_menu_id, is_hidden "
|
||||||
" FROM tbl_menus "
|
" FROM tbl_menus "
|
||||||
" WHERE parent_menu_id is not NULL "
|
" WHERE parent_menu_id is not NULL AND is_hidden == false ")
|
||||||
" AND is_hidden=0 ")
|
|
||||||
cursor.execute(query)
|
cursor.execute(query)
|
||||||
rows_menus = cursor.fetchall()
|
rows_menus = cursor.fetchall()
|
||||||
|
|
||||||
if rows_menus is not None and len(rows_menus) > 0:
|
if rows_menus is not None and len(rows_menus) > 0:
|
||||||
for row in rows_menus:
|
for row in rows_menus:
|
||||||
_id = row['id']
|
if row['parent_menu_id'] in first_paths.keys():
|
||||||
parent_menu_id = row['parent_menu_id']
|
first_paths[row['parent_menu_id']]['children'].append(row['path'])
|
||||||
path = row['path']
|
|
||||||
if parent_menu_id in first_paths.keys():
|
|
||||||
first_paths[parent_menu_id]['children'].append(path)
|
|
||||||
|
|
||||||
result = dict()
|
result = dict()
|
||||||
for _id, item in first_paths.items():
|
for _id, item in first_paths.items():
|
||||||
first_path = item['path']
|
result[item['path']] = item['children']
|
||||||
children = item['children']
|
|
||||||
result[first_path] = children
|
|
||||||
|
|
||||||
cursor.close()
|
cursor.close()
|
||||||
cnx.disconnect()
|
cnx.disconnect()
|
||||||
|
|
Loading…
Reference in New Issue