O controller é responsável por validar as informações passadas pelo usuário no template de execução, ao clicar em executar a diretiva vai procurar no controller a função exec(), a partir dela deve ser feita a validação das informações e se necessário a sua "transformação" (parser de cada produto) antes do envio para o servidor.
define(['index', 'directive-base', 'directive-crud', 'directive-execution'], function(index) {
'use strict';
var executionController = function ($rootScope, $scope, appViewService, executionFactory) {
var self = this;
// *********************************************************************************
// *** Variables
// *********************************************************************************
self.model = {};
// *********************************************************************************
// *** Functions
// *********************************************************************************
self.loadDefault = function () {
// Define valores padrões para "Notificação"
self.model.notify = true;
self.model.notifyEmail = true;
self.model.notifyEmailList = '[email protected]; [email protected]';
// Define valores padrões para "Execução"
self.model.path = 'c:\\tmp';
self.model.filename = 'arquivo.log';
self.model.servidor = 'SERVIDOR 1';
self.model.schedule = {};
self.model.schedule.type = 'TODAY';
self.model.schedule.repeat = false;
};
self.exec = function () {
// tratar os dados
...
// enviar os dados
executionFactory.send(self.model);
console.log('Exec of execution');
};
self.cancel = function () {
self.model = {};
console.log('Cancel of execution');
};
// *********************************************************************************
// *** Control Initialize
// *********************************************************************************
self.init = function () {
appViewService.startView('Execution', 'totvs-html-framework-sample.execution.Control', self);
self.loadDefault();
};
if ($rootScope.currentuserLoaded) {
self.init();
}
// *********************************************************************************
// *** Events Listners
// *********************************************************************************
$scope.$on(TOTVSEvent.rootScopeInitialize, function () {
self.init();
});
};
executionController.$inject = [ '$rootScope', // $rootScope é utilizado para enviar eventos e buscar dados do usuario
'$scope', // $scope é utilizado para criar um listener de eventos
'totvs.app-main-view.Service', // serviço para controlar a abertura da aba e quando a aba é reativada
'totvs-html-framework-sample.execution.Factory']; // Serviço de execução que envia os dados para o servidor
index.register.controller('totvs-html-framework-sample.execution.Control', executionController);
});