dialogo al cambiar los datos

al realizar un put, machacamos el objeto con la respuesta
This commit is contained in:
nelo 2017-01-16 10:11:11 +01:00
parent 0dcb581c78
commit dabde7e133
8 changed files with 132 additions and 46 deletions

View File

@ -8,21 +8,20 @@ export const COMPONENT = {
bindings: {
client: '<'
},
controller: function($http, copyObject, equalsObject, $transitions, $state) {
controller: function($http, copyObject, equalsObject, $transitions, $element) {
var self = this;
var deregister = $transitions.onStart({ }, callback);
this.$onChanges = function(changes) {
if (this.client) {
this.clientOld = copyObject(this.client);
}
this.copyClient();
}
};
this.$onDestroy = function() {
deregister();
}
};
$http.get('/client/api/SalesPeople').then(
json => this.sales = json.data
@ -31,7 +30,7 @@ export const COMPONENT = {
function callback(transition) {
if (!equalsObject(self.client, self.clientOld)) {
self.state = transition.to().name;
var dialog = document.querySelector('dialog');
var dialog = $element[0].querySelector('dialog');
dialog.showModal();
return false;
}
@ -40,10 +39,20 @@ export const COMPONENT = {
this.submit = function() {
if (!equalsObject(this.client, this.clientOld)) {
this.client.modify = "BasicData";
$http.put('/client/api/Clients', this.client);
$http.put('/client/api/Clients', this.client).then(
json => {
this.client = json.data;
this.copyClient();
}
);
}
};
this.copyClient = function() {
this.clientOld = {};
copyObject(this.client, this.clientOld);
};
}
};
COMPONENT.controller.$inject = ['$http', 'copyObject', 'equalsObject', '$transitions', '$state'];
COMPONENT.controller.$inject = ['$http', 'copyObject', 'equalsObject', '$transitions', '$element'];
module.component(NAME, COMPONENT);

View File

@ -1,11 +1,11 @@
<dialog class="mdl-dialog">
<div class="mdl-dialog__content">
<p>
Allow this site to collect usage data to improve your experience?
¿Desea salir sin guardar?
</p>
</div>
<div class="mdl-dialog__actions mdl-dialog__actions--full-width">
<button type="button" class="mdl-button" ng-click="clientConfirm.accept()">Agree</button>
<button type="button" class="mdl-button close" ng-click="clientConfirm.cancel()">Disagree</button>
<button type="button" class="mdl-button" ng-click="clientConfirm.accept()">Aceptar</button>
<button type="button" class="mdl-button close" ng-click="clientConfirm.cancel()">Cancelar</button>
</div>
</dialog>

View File

@ -18,3 +18,4 @@
</vn-vertical>
</vn-card>
</form>
<vn-confirm-client client="create.model" client-old="create.model" state="create.state"></vn-confirm-client>

View File

@ -62,3 +62,4 @@
</vn-vertical>
<vn-card>
</form>
<vn-confirm-client client="fiscal.client" client-old="fiscal.clientOld" state="fiscal.state"></vn-confirm-client>

View File

@ -8,22 +8,60 @@ export const COMPONENT = {
bindings: {
client: '<'
},
controller: function($http) {
controller: function($http, copyObject, equalsObject, $transitions, $element) {
var self = this;
var deregister = $transitions.onStart({ }, callback);
$http.get('/client/api/Countries').then(
json => this.countries = json.data
);
$http.get('/client/api/Provinces').then(
json => this.provinces = json.data
);
$http.get('/client/api/PaymentMethods').then(
json => this.payments = json.data
);
this.submit = function() {
$http.put('/client/api/Clients', this.client);
if (!equalsObject(this.client, this.clientOld)) {
this.client.modify = "FiscalData";
$http.put('/client/api/Clients', this.client).then(
json => {
this.client = json.data;
this.copyClient();
}
);
}
};
this.$onChanges = function(changes) {
if (this.client) {
this.copyClient();
}
};
this.$onDestroy = function() {
deregister();
};
function callback(transition) {
if (!equalsObject(self.client, self.clientOld)) {
self.state = transition.to().name;
var dialog = $element[0].querySelector('dialog');
dialog.showModal();
return false;
}
}
this.copyClient = function() {
this.clientOld = {};
copyObject(this.client, this.clientOld);
};
}
};
COMPONENT.controller.$inject = ['$http'];
COMPONENT.controller.$inject = ['$http', 'copyObject', 'equalsObject', '$transitions', '$element'];
module.component(NAME, COMPONENT);

View File

@ -8,3 +8,4 @@
</vn-vertical>
</vn-card>
</form>
<vn-confirm-client client="web.client" client-old="web.clientOld" state="web.state"></vn-confirm-client>

View File

@ -8,11 +8,47 @@ export const COMPONENT = {
bindings: {
client: '<'
},
controller: function($http) {
controller: function($http, copyObject, equalsObject, $transitions, $element) {
var self = this;
var deregister = $transitions.onStart({ }, callback);
this.submit = function() {
$http.put('/client/api/Clients', this.client);
if (!equalsObject(this.client, this.clientOld)) {
this.client.modify = "WebAccess";
$http.put('/client/api/Clients', this.client).then(
json => {
this.client = json.data;
this.copyClient();
}
);
}
};
this.$onChanges = function(changes) {
if (this.client) {
this.copyClient();
}
};
this.$onDestroy = function() {
deregister();
};
function callback(transition) {
if (!equalsObject(self.client, self.clientOld)) {
self.state = transition.to().name;
var dialog = $element[0].querySelector('dialog');
dialog.showModal();
return false;
}
}
this.copyClient = function() {
this.clientOld = {};
copyObject(this.client, this.clientOld);
};
}
};
COMPONENT.controller.$inject = ['$http'];
COMPONENT.controller.$inject = ['$http', 'copyObject', 'equalsObject', '$transitions', '$element'];
module.component(NAME, COMPONENT);