/*global define*/ /** * Sends a request for update docdatapay * * @class de_epages.docdatapay.ui.docdatapaystatus * * @uses jQuery * @uses ep * @uses ep.ajax * @uses ep.fn.busy * @uses ep.ui.dialog * * */ define('de_epages/docdatapay/ui/docdatapaystatus', [ 'jquery', 'ep', '$dict!ep/dict', '$ready!', 'ep/ajax', 'ep/fn/busy', 'ep/ui/dialog', ], function($, ep, epDict) { 'use strict'; var tStatusDocdataPayQuestion = epDict.translate('{StatusDocdataPayQuestion}'); var tYes = epDict.translate('{yes}'); var tCancel = epDict.translate('{Cancel}'); var tError = epDict.translate('{ErrorDuringUpdate}'); /** * @param {String} UIControlParameters JS Object with UI control parameters. */ return function(UIControlParameters) { var currentWindow = UIControlParameters.CurrentWindow || window; var visible = IsVisible(UIControlParameters); if (visible) { UIControlParameters.StatusLink.on('click', function(event) { event.preventDefault(); var dialog = ep('<div/>') .append('<div>'+ tStatusDocdataPayQuestion +'</div>') .uiDialog({ modal: true, width: 350, height: 150, buttons: [{ id: 'YesId', text: tYes, click: function() { handleDocdataPayStatus(ep(this), UIControlParameters.Objectid, currentWindow); ep(this).busy('show'); } }, { id: 'CancelId', text: tCancel, click: function() { ep(this).uiDialog('close'); } }] }); dialog.uiDialog('open'); }); } }; function IsVisible(UIControlParameters) { UIControlParameters.DisplayStatus.hide(); if (UIControlParameters.PaymentTypeAlias == "DocdataPay") { UIControlParameters.DisplayStatus.show(); if (UIControlParameters.TransStatus != "STATUS_PAID") { UIControlParameters.StatusLink.removeClass("Disabled"); return true; } else { UIControlParameters.StatusLink.addClass("Disabled"); return false; } } return false; } function handleDocdataPayStatus(context, objectid, currentWindow) { // handle the ajax request when cancelling or activating the invoice ep.ajax({ data: { 'ObjectID': objectid, 'ChangeAction': 'JSONchangeOrderStatus' }, cache: false, type: "POST", dataType: "json" }) .done(function(jsonData) { var status = jsonData.status; context.busy('hide'); if (status == 'ok' ) { context.empty(); context.append('<div id="Response" class="DialogMessage MessageWarning">OK</div>'); context.uiDialog('close'); currentWindow.location.reload(); } else if (status == 'error') { context.empty(); context.append('<div id="Response" class="DialogMessage MessageWarning">ERROR</div>'); context.uiDialog('close'); if($("#DocDataPayActionsNotificationDiv").length>0){ $("#DocDataPayActionsNotificationDiv").remove(); } $('#Notification').prepend('<div id="DocDataPayActionsNotificationDiv" class="DialogMessage MessageWarning" hidden>'+ tError +'</div>'); $("#DocDataPayActionsNotificationDiv").show(); } else { context.empty(); context.append('<div id="Response" class="DialogMessage MessageWarning">ERROR_DIF</div>'); context.uiDialog('close'); if($("#DocDataPayActionsNotificationDiv").length>0){ $("#DocDataPayActionsNotificationDiv").remove(); } $('#Notification').prepend('<div id="DocDataPayActionsNotificationDiv" class="DialogMessage MessageWarning" hidden>'+ tError +'</div>'); $("#DocDataPayActionsNotificationDiv").show(); } }) .fail(function(jsonData) { context.busy('hide'); context.empty(); context.buttons.empty(); context.append('<div class="DialogMessage MessageWarning">ajax error</div>'); }); } });