import addCustomerTemplate from './add-customer.tpl.html';
import customerCard from './customer-card.tpl.html';
export default function CustomerController(customerService, $state, $stateParams, $translate) {
var customerActionsList = [
{
onAction: function ($event, item) {
openCustomerUsers($event, item);
},
name: function() { return $translate.instant('user.users') },
details: function() { return $translate.instant('customer.manage-customer-users') },
icon: "account_circle"
},
{
onAction: function ($event, item) {
openCustomerDevices($event, item);
},
name: function() { return $translate.instant('device.devices') },
details: function() { return $translate.instant('customer.manage-customer-devices') },
icon: "devices_other"
},
{
onAction: function ($event, item) {
openCustomerDashboards($event, item);
},
name: function() { return $translate.instant('dashboard.dashboards') },
details: function() { return $translate.instant('customer.manage-customer-dashboards') },
icon: "dashboard"
},
{
onAction: function ($event, item) {
vm.grid.deleteItem($event, item);
},
name: function() { return $translate.instant('action.delete') },
details: function() { return $translate.instant('customer.delete') },
icon: "delete"
}
];
var vm = this;
vm.customerGridConfig = {
refreshParamsFunc: null,
deleteItemTitleFunc: deleteCustomerTitle,
deleteItemContentFunc: deleteCustomerText,
deleteItemsTitleFunc: deleteCustomersTitle,
deleteItemsActionTitleFunc: deleteCustomersActionTitle,
deleteItemsContentFunc: deleteCustomersText,
fetchItemsFunc: fetchCustomers,
saveItemFunc: saveCustomer,
deleteItemFunc: deleteCustomer,
getItemTitleFunc: getCustomerTitle,
itemCardTemplateUrl: customerCard,
actionsList: customerActionsList,
onGridInited: gridInited,
addItemTemplateUrl: addCustomerTemplate,
addItemText: function() { return $translate.instant('customer.add-customer-text') },
noItemsText: function() { return $translate.instant('customer.no-customers-text') },
itemDetailsText: function() { return $translate.instant('customer.customer-details') }
};
if (angular.isDefined($stateParams.items) && $stateParams.items !== null) {
vm.customerGridConfig.items = $stateParams.items;
}
if (angular.isDefined($stateParams.topIndex) && $stateParams.topIndex > 0) {
vm.customerGridConfig.topIndex = $stateParams.topIndex;
}
vm.openCustomerUsers = openCustomerUsers;
vm.openCustomerDevices = openCustomerDevices;
vm.openCustomerDashboards = openCustomerDashboards;
function deleteCustomerTitle(customer) {
return $translate.instant('customer.delete-customer-title', {customerTitle: customer.title});
}
function deleteCustomerText() {
return $translate.instant('customer.delete-customer-text');
}
function deleteCustomersTitle(selectedCount) {
return $translate.instant('customer.delete-customers-title', {count: selectedCount}, 'messageformat');
}
function deleteCustomersActionTitle(selectedCount) {
return $translate.instant('customer.delete-customers-action-title', {count: selectedCount}, 'messageformat');
}
function deleteCustomersText() {
return $translate.instant('customer.delete-customers-text');
}
function gridInited(grid) {
vm.grid = grid;
}
function fetchCustomers(pageLink) {
return customerService.getCustomers(pageLink);
}
function saveCustomer(customer) {
return customerService.saveCustomer(customer);
}
function deleteCustomer(customerId) {
return customerService.deleteCustomer(customerId);
}
function getCustomerTitle(customer) {
return customer ? customer.title : '';
}
function openCustomerUsers($event, customer) {
if ($event) {
$event.stopPropagation();
}
$state.go('home.customers.users', {customerId: customer.id.id});
}
function openCustomerDevices($event, customer) {
if ($event) {
$event.stopPropagation();
}
$state.go('home.customers.devices', {customerId: customer.id.id});
}
function openCustomerDashboards($event, customer) {
if ($event) {
$event.stopPropagation();
}
$state.go('home.customers.dashboards', {customerId: customer.id.id});
}
}