function AssignDatePicker(field_id) {
$('#' + field_id).datepicker({
dateFormat: 'dd-mm-yy',
date: $('#' + field_id).val(),
current: $('#' + field_id).val(),
starts: 1,
position: 'r',
onBeforeShow: function () {
$('#' + field_id).DatePickerSetDate($('#' + field_id).val(), true);
},
onChange: function (formated, dates) {
$('#' + field_id).val();
//$('#' + field_id).DatePickerHide();
}
});
}
function AssignDateTimePicker(field_id) {
$('#' + field_id).datetimepicker({
dateFormat: 'dd-mm-yy',
timeFormat: 'hh:mm',
stepMinute: 10,
date: $('#' + field_id).val(),
current: $('#' + field_id).val(),
starts: 1,
position: 'r',
onBeforeShow: function () {
$('#' + field_id).DatePickerSetDate($('#' + field_id).val(), true);
},
onChange: function (formated, dates) {
$('#' + field_id).val(formated);
//$('#' + field_id).DatePickerHide();
}
});
}
function AssignAutocompleteWithId(text_field_id, hidden_field_id, path) {
$('#' + text_field_id).autocomplete({
delay: 0,
source: function (request, response) {
$.ajax({
url: path,
dataType: "json",
data: {
search: request.term
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
response($.map(data, function (item) {
return {
label: item.name,
value: item.id
}
}));
}
});
},
search: function (event, ui) {
$('#' + hidden_field_id).val('');
},
//minLength: 2,
select: function (event, ui) {
var old_value = $('#' + hidden_field_id).val();
var new_value = ui.item.value;
alert("Autocomplete With ID\r\nOLD VALUE: " + old_value + "\r\nNEW VALUE: " + new_value);
if (new_value != old_value) {
process_control_value_changed(control, old_value, new_value);
}
$('#' + text_field_id).hide();
$('#' + text_field_id).val(ui.item.label);
$('#' + hidden_field_id).val(new_value);
return false;
}
});
}
function AssignLabeledAutocompleteWithId(text_field_id, hidden_field_id, label_id, path) {
var ctrl_label = $('#' + label_id);
var ctrl_hidden = $('#' + hidden_field_id);
var ctrl_text = $('#' + text_field_id);
var parentControl = $('#' + ctrl_hidden.attr("parent_control_id"));
var autocomplete_id = ctrl_hidden.val();
var autocomplete_label = ctrl_text.val();
menu_is_open = false;
ctrl_label.click(function () {
if (ctrl_hidden.hasClass("disabled")) return;
ctrl_label.hide();
if (ctrl_hidden.val() == '') {
ctrl_text.val("");
}
else {
ctrl_text.val(autocomplete_label);
}
ctrl_text.show().focus().select();
});
ctrl_text.focusout(function () {
if (ctrl_text.is(':visible') && menu_is_open == false) {
ctrl_text.hide();
//alert("Hidden Value: " + $('#' + hidden_field_id).val());
if (ctrl_text.val() == '') {
ctrl_hidden.val('');
autocomplete_id = '';
autocomplete_label = '';
}
if (ctrl_hidden.val() == '' || ctrl_hidden.val() == null) {
//alert("Placeholder");
ctrl_label.html(ctrl_text.attr('placeholder'));
}
else {
ctrl_label.html(autocomplete_label);
}
ctrl_label.show();
}
}).blur(function () {
if (ctrl_text.is(':visible') && menu_is_open == false) {
ctrl_text.hide();
//alert("Hidden Value: " + $('#' + hidden_field_id).val());
if (ctrl_hidden.val() == '' || ctrl_hidden.val() == null) {
//alert("Placeholder");
ctrl_label.html(ctrl_text.attr('placeholder'));
}
else {
ctrl_label.html(autocomplete_label);
}
ctrl_label.show();
}
});
// ctrl_text.keydown(function(event){
// //alert('Key Pressed: ' + event.which);
// if(event.which == 27 )
// {
// ctrl_text.hide();
// if(ctrl_hidden.val() == '' || ctrl_hidden.val() == null)
// {
// //alert("Placeholder");
// ctrl_label.html(ctrl_text.attr('placeholder'));
// }
// else
// {
// ctrl_label.html(autocomplete_label);
// }
// ctrl_label.show();
// }
// else if( event.which == 13 )
// {
// //alert('Enter Pressed');
// if (event.preventDefault)
// {
// event.preventDefault();
// } else {
// event.returnValue = false;
// }
// return false;
// }
// });
ctrl_text.hide();
if (ctrl_hidden.val() == '' || ctrl_hidden.val() == null) {
ctrl_label.html(ctrl_text.attr('placeholder'));
}
else {
ctrl_text.val(autocomplete_label);
}
ctrl_label.show();
ctrl_text.autocomplete({
delay: 0,
source: function (request, response) {
//alert(path);
var ajax_options = {};
ajax_options["search"] = request.term;
ajax_options[parentControl.attr("property_name")] = parentControl.val();
$.ajax({
url: path,
dataType: getJsonTypeForAjax( $(location).attr('href') ,path),
data: ajax_options,
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (json_result) {
//alert("JSON RESUTL: " + $.toJSON(json_result));
if (json_result.status == "ok") {
response($.map(json_result.data, function (item) {
return {
label: item.name,
value: item.id
}
}));
}
},
error: function(xhr, ajaxOptions, thrownError){
//alert("ERROR: " + $.toJSON(xhr));
//alert("AJAX Options: " + $.toJSON(ajaxOptions));
//alert("AJAX Thrown Error: " + $.toJSON(thrownError));
}
});
},
//minLength: 2,
select: function (event, ui) {
var old_value = ctrl_hidden.val();
var new_value = ui.item.value;
autocomplete_id = ui.item.value;
autocomplete_label = ui.item.label;
ctrl_text.val(ui.item.label);
ctrl_hidden.val(ui.item.value);
ctrl_text.hide();
ctrl_label.html(ctrl_text.val());
ctrl_label.show();
if (new_value != old_value) {
//alert("Autocomplete With ID\r\nOLD VALUE: " + old_value + "\r\nNEW VALUE: " + new_value);
process_control_value_changed(ctrl_hidden, old_value, new_value);
}
// // PROCESSING CHILD COMBO: BEGIN
// var child_id = ctrl_hidden.attr('child_field');
// var child_datasource_url = ctrl_hidden.attr('child_datasource');
// //alert("Child Datasource: " + child_datasource_url);
//
// if(child_id != null && child_id != undefined)
// {
// var child_control = $('#' + child_id);
//
//
// makeAjaxCall(child_datasource_url, {
// method: 'get',
// dataType: 'json',
// data: {parent_id: ui.item.value},
// success: function(combo_data)
// {
// //alert($.toJSON(data));
// child_control.removeAttr('disabled');
// $('#' + child_id + ' option:gt(0)').remove();
// $.each(combo_data, function(combo_data_index, combo_data_entry) {
// child_control.append("");
// });
// child_control.trigger("liszt:updated");
// },
// error: function(response)
// {
// //alert("Response Code: " + response.status);
// showFancyMessage("Failed to Retrieve Data from Source");
// }
// });
// }
// PROCESSING CHILD COMBO: END
return false;
},
open: function () {
menu_is_open = true;
},
close: function () {
menu_is_open = false;
//alert("Menu Closed.\r\n Active Element: " + $(document.activeElement));
// if(ctrl_text != $(document.activeElement))
// {
// ctrl_text.hide();
// if(ctrl_hidden.val() == '' || ctrl_hidden.val() == null)
// {
// //alert("Placeholder");
// ctrl_label.html(ctrl_text.attr('placeholder'));
// }
// else
// {
// ctrl_label.html(autocomplete_label);
// }
// ctrl_label.show();
// }
}
});
}
// Check/Uncheck All Checkboxes
function CheckAllItems(all_checker_class, item_class) {
//alert("Alert from CheckAllItems")
checked_status = $(all_checker_class).is(':checked')
//alert("All Items Checked: "+ checked_status)
//alert("Item Class: "+ item_class)
$(item_class).each(function () {
if (checked_status) {
//alert('Each: Check');
$(this).attr('checked', 'checked');
}
else {
//alert('Each: Uncheck');
$(this).removeAttr('checked')
}
});
}
// Validates if all checkboxes checked.
// if do CheckAll checkbox, if not - unckeck
function ValidateCheckedItems(all_checker_class, item_class) {
var checked_all = true
$(item_class).each(function () {
if ($(this).is(':checked') == false) {
checked_all = false;
}
});
if (checked_all) {
$(all_checker_class).attr('checked', 'checked');
}
else {
$(all_checker_class).removeAttr('checked')
}
}
function CollectCheckedCheckboxes(css_class, id_attr_name) {
//alert("Start Collecting Checkbpexs");
var checked_items = new Array();
$(css_class).each(function () {
if ($(this).is(':checked')) {
checked_items.push($(this).attr(id_attr_name));
}
});
//alert("Checboxes Collected");
return checked_items;
}
function MassUpdateSelected(request, itemClass, path, message) {
var checked_items = new Array();
//alert("MassUpdate for Click")
var do_ok = false;
fancyConfirm(
message,
function (isOk) {
if (!isOk) return;
$(itemClass).each(function () {
if ($(this).is(':checked')) {
checked_items.push($(this).attr('value'));
}
});
request = request == undefined || request == null ? new Object() : request;
if (["html", "json"].indexOf(request.dataType) < 0) {
request.dataType = "html";
}
if (["get", "post", "put", "delete"].indexOf(request.method) < 0) {
request.method = "post"
}
$.ajax({
url: path,
type: request.method,
dataType: request.dataType,
data: {
'current_url': window.location.href,
'value': request.value,
'item_ids[]': checked_items
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
try {
data = $.parseJSON(data);
}
catch (e) {
}
if (jQuery.type(data) == "string") {
$('#list_container').html(data);
}
else if (jQuery.type(data) == "object") {
if (data.status == "authenticate") {
$(location).attr('href', data.result_url);
}
else if (data.status == "access_denied") {
showFancyMessage(data.message);
}
else if (data.status == "ok") {
//alert("JSON: DATA HTML\r\n " + );
$('#list_container').html($("
").html(data.html).text());
$('#action_result_message').html($("").html(data.message).text());
$('#action_result_message').slideDown(300).delay(2000).fadeOut(400);
$('.all_items_checker').removeAttr('checked')
}
else if (data.status == "error") {
showFancyMessage(data.message);
}
else {
showFancyMessage("Unexpected Error!!!");
}
}
},
error: function (data) {
showFancyMessage("Unexpected Error!!!");
}
});
}
);
return false;
}
function MassUpdateSelectedNoConfirm(request, itemClass, path) {
DoMassUpdateSelected(request, itemClass, path, true);
return false;
}
function DoMassUpdateSelected(request, itemClass, path, doDownload) {
var checked_items = new Array();
if (!doDownload) return;
$(itemClass).each(function () {
if ($(this).is(':checked')) {
checked_items.push($(this).attr('value'));
}
});
request = request == undefined || request == null ? new Object() : request;
if (["html", "json"].indexOf(request.dataType) < 0) {
request.dataType = "html";
}
if (["get", "post", "put", "delete"].indexOf(request.method) < 0) {
request.method = "post"
}
$.ajax({
url: path,
type: request.method,
dataType: request.dataType,
data: {
'current_url': window.location.href,
'value': request.value,
'item_ids[]': checked_items
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
if (jQuery.type(data) == "string") {
$('#list_container').html(data);
}
else if (jQuery.type(data) == "object") {
if (data.status == "authenticate") {
$(location).attr('href', data.result_url);
}
else if (data.status == "access_denied") {
showFancyMessage(data.message);
}
else if (data.status == "ok") {
//alert("JSON: DATA HTML\r\n " + );
// $('#list_container').html($("").html(decode_utf8(base64decode(data.html))).text());
// $('#action_result_message').html($("").html(data.message).text());
// $('#action_result_message').slideDown(300).delay(2000).fadeOut(400);
// $('.all_items_checker').removeAttr('checked')
$('#action_result_message').html(decode_utf8(base64decode(data.html)));
$('#action_result_message').slideDown(300).delay(2000).fadeOut(400);
$('.all_items_checker').removeAttr('checked')
}
else if (data.status == "error") {
showFancyMessage(decode_utf8(base64decode(data.message)));
}
else {
showFancyMessage("Unexpected Error!!!");
}
}
},
error: function (data) {
showFancyMessage("Unexpected Error!!!");
}
});
}
function MassActions(newValue, path, itemClass, confirm_message) {
var do_ok = false;
fancyConfirm(
confirm_message,
function (isOk) {
if (!isOk) return;
$.ajax({
url: path,
type: 'post',
dataType: "html",
data: {
'current_url': window.location.href,
'value': newValue,
'item_ids[]': CollectCheckedCheckboxes(itemClass, "value")
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
//alert("Ajax Success");
$('#content_container').html(data);
},
error: function (data) {
//alert("Ajax Error\r\n" + $.toJSON(data));
}
});
}
);
return false;
}
function DownloadOrders(checkboxClass, checkBoxAttr, messageContainer) {
pathes = CollectCheckedCheckboxes(checkboxClass, checkBoxAttr);
$(messageContainer).html("");
for (i = 0; i < pathes.length; i++) {
$.ajax({
url: pathes[i],
type: 'post',
dataType: "json",
data: {
'current_url': window.location.href
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
$(messageContainer).show();
$(messageContainer).append('' + decode_utf8(base64decode(data.message)) + '
');
},
error: function (data) {
//alert("
// Ajax Error\r\n" + $.toJSON(data));
}
});
}
return false;
}
function DownloadOrderFromOneSite(path, messageContainer) {
$(messageContainer).html("");
$.ajax({
url: path,
type: 'post',
dataType: "json",
data: {
'current_url': window.location.href
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
$(messageContainer).show();
$(messageContainer).append('' + decode_utf8(base64decode(data.message)) + '
');
$(messageContainer).slideDown(300).delay(2000).fadeOut(400);
},
error: function (data) {
//alert("
// Ajax Error\r\n" + $.toJSON(data));
}
});
return false;
}
function fancyConfirm(msg, callback) {
var ret;
$.fancybox(
{
'modal': true,
'content': "',
afterShow: function () {
$("#fancyconfirm_cancel").click(function () {
ret = false;
$.fancybox.close();
})
$("#fancyConfirm_ok").click(function () {
ret = true;
$.fancybox.close();
})
},
afterClose: function () {
if (typeof callback == 'function') {
callback.call(this, ret);
}
}
}
);
}
function PostSelectedItems(path, item_class) {
//alert('Path: ' + path + '\r\nItem Class' + item_class)
var checked_items = [];
$(item_class).each(function () {
if ($(this).is(':checked')) {
checked_items.push(jQuery.parseJSON($(this).attr('id')));
}
});
}
function PostFormWithConfirm(form, message) {
if (form == null || form === undefined) return false;
if (jQuery.type(form) === "string") {
form = $(form)
}
fancyConfirm(
message,
function (isOk) {
if (!isOk) return;
//alert("Form To Confirm: " + jQuery.type(form))
form.submit();
}
);
}
// Функция декодирования строки из base64
function base64decode(str) {
// Символы для base64-преобразования
var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg' +
'hijklmnopqrstuvwxyz0123456789+/=';
var b64decoded = '';
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
str = str.replace(/[^a-z0-9+/=]/gi, '');
for (var i = 0; i < str.length;) {
enc1 = b64chars.indexOf(str.charAt(i++));
enc2 = b64chars.indexOf(str.charAt(i++));
enc3 = b64chars.indexOf(str.charAt(i++));
enc4 = b64chars.indexOf(str.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
b64decoded = b64decoded + String.fromCharCode(chr1);
if (enc3 < 64) {
b64decoded += String.fromCharCode(chr2);
}
if (enc4 < 64) {
b64decoded += String.fromCharCode(chr3);
}
}
return b64decoded;
}
// Функция кодирования строки в base64
function base64encode(str) {
// Символы для base64-преобразования
var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg' +
'hijklmnopqrstuvwxyz0123456789+/=';
var b64encoded = '';
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
for (var i = 0; i < str.length;) {
chr1 = str.charCodeAt(i++);
chr2 = str.charCodeAt(i++);
chr3 = str.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = isNaN(chr2) ? 64 : (((chr2 & 15) << 2) | (chr3 >> 6));
enc4 = isNaN(chr3) ? 64 : (chr3 & 63);
b64encoded += b64chars.charAt(enc1) + b64chars.charAt(enc2) +
b64chars.charAt(enc3) + b64chars.charAt(enc4);
}
return b64encoded;
}
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
function InPlaceEdit(id, value) {
var request = request == undefined || request == null ? new Object() : request;
$.ajax({
url: path,
type: 'post',
dataType: 'html',
data: {
'current_url': window.location.href,
'value': value,
'id': id
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
if (jQuery.type(data) == "string") {
$('#list_container').html(data);
}
else if (jQuery.type(data) == "object") {
if (data.status == "authenticate") {
$(location).attr('href', data.result_url);
}
else if (data.status == "access_denied") {
showFancyMessage(data.message);
}
else if (data.status == "ok") {
//alert("JSON: DATA HTML\r\n " + );
// $('#list_container').html($("").html(decode_utf8(base64decode(data.html))).text());
// $('#action_result_message').html($("").html(data.message).text());
// $('#action_result_message').slideDown(300).delay(2000).fadeOut(400);
// $('.all_items_checker').removeAttr('checked')
$('#action_result_message').html(decode_utf8(base64decode(data.html)));
$('#action_result_message').slideDown(300).delay(2000).fadeOut(400);
$('.all_items_checker').removeAttr('checked')
}
else if (data.status == "error") {
showFancyMessage(decode_utf8(base64decode(data.message)));
}
else {
showFancyMessage("Unexpected Error!!!");
}
}
},
error: function (data) {
showFancyMessage("Unexpected Error!!!");
}
});
}
//****************************************************/
//********************** NEW *************************/
//****************************************************/
// Processes Mass Action for Records and Print Results to request.onSuccess
function processMassAction(path, itemIds, request) {
request = request == undefined || request == null ? new Object() : request;
if (["html", "json"].indexOf(request.dataType) < 0) {
request.dataType = "html";
}
if (["get", "post", "put", "delete"].indexOf(request.method) < 0) {
request.method = "post"
}
$.ajax({
url: path,
type: request.method,
dataType: request.dataType,
data: {
'current_url': window.location.href,
'value': request.value,
'item_ids[]': itemIds
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
if (jQuery.type(data) == "string") {
request.onSuccess(data);
}
else if (jQuery.type(data) == "object") {
if (data.status == "authenticate") {
$(location).attr('href', data.result_url);
}
else if (data.status == "access_denied") {
showFancyMessage(decode_utf8(base64decode(data.message)));
}
else if (data.status == "ok") {
request.onSuccess(data);
}
else if (data.status == "error") {
showFancyMessage(decode_utf8(base64decode(data.message)));
}
else {
showFancyMessage("Unexpected Result Format!!!");
}
}
},
error: function (data) {
showFancyMessage("Unexpected Error!!!");
}
});
}
// Gets selected value in select
function getSelectedValueForSelect(select_id) {
if (select_id.indexOf('#') != 0) select_id = "#" + select_id;
return $(select_id + " :selected").val();
}
// Navigates to URL
function navigateToUrl(url) {
if (url != undefined && url != "") {
window.location.href = url;
}
}
// Navigates to value Selected in SELECT control
function navigateToSelectedInSelect(select_id) {
navigateToUrl(getSelectedValueForSelect(select_id));
}
function collectCheckedItems(cssSelector, attrName) {
var checked_items = new Array();
if (!doDownload) return;
$(cssSelector).each(function () {
if ($(this).is(':checked')) {
checked_items.push($(this).attr(attrName));
}
});
}
function showFancyMessage(message, options) {
$.fancybox(
message,
{
maxWidth: 600,
maxHeight: 300,
fitToView: false,
width: '70%',
height: '70%',
autoSize: false,
autoCenter: true,
closeClick: false,
openEffect: 'none',
closeEffect: 'none'
}
);
}
function ShowFancyPage1(page_url) {
//alert("page Url: " + page_url)
$.ajax(page_url, {
type: "POST",
dataType: "html",
cache: false,
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
$.blockUI({ message: '' });
},
success: function (data) {
//alert("Ajax Success\r\n" + data);
$.fancybox(data, {
maxWidth: 600,
maxHeight: 300,
fitToView: false,
width: '70%',
height: '70%',
autoSize: false,
closeClick: false,
openEffect: 'none',
closeEffect: 'none',
'afterClose': function () {
parent.location.reload(true);
}
}); // fancybox
}, // success
error: function (data) {
showFancyMessage("Loading Error");
},
complete: function () {
$.unblockUI();
}
});// ajax
}
function showFancyPage(page_url, options) {
options = options == null ? {} : options;
options.method = options.method != null && options.method != undefined && ["get", "post", "put", "delete"].indexOf(options.method) > 0 ? options.method : 'get';
options.dataType = options.dataType != null && options.dataType != undefined && ["html", "json", "xml", "csv", "xls"].indexOf(options.dataType) > 0 ? options.dataType : 'html';
options.layout = options.layout != null && options.layout != undefined ? options.layout : true;
$.ajax(page_url, {
type: options.method,
dataType: options.dataType,
cache: false,
data: {layout: options.layout },
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data) {
//alert("Ajax Success\r\n" + data);
$.fancybox(data, {
maxWidth: 800,
maxHeight: 600,
fitToView: false,
autoSize: false,
closeClick: false,
openEffect: 'none',
//type: 'iframe',
closeEffect: 'none',
afterClose: function () {
//parent.location.reload(true);
}
}); // fancybox
}, // success
error: function (data) {
showFancyMessage("Loading Error");
}
});// ajax
}
function makeJsonCall(url, options) {
options = options == null ? {} : options;
options.method = normalizeHttpMethod(options.method);
options.dataType = normalizeDataType(options.dataType);
//alert("Ajax Method: " + options.method);
//alert("Make Ajax Call - DataType: " + options.dataType);
options.data = options.data == null || options.data == undefined ? {} : options.data;
$.getJSON(url, options.data, function (data, status, xrs) {
//alert("JSON IS OK");
if (jQuery.isFunction(options.success)) {
options.success(data);
}
});
}
function makeAjaxCall(url, options) {
options = options == null ? {} : options;
options.method = normalizeHttpMethod(options.method);
options.dataType = normalizeDataType(options.dataType);
//alert("Ajax Method: " + options.method);
//alert("Make Ajax Call - DataType: " + options.dataType);
options.data = options.data == null || options.data == undefined ? {} : options.data;
$.ajax(url, {
type: options.method,
dataType: options.dataType,
cache: false,
data: options.data,
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
},
success: function (data, status, xhr) {
if (xhr.status == 204) {
var redirectUrl = $.cookie("RedirectURL");
if (redirectUrl != undefined && redirectUrl != null) {
makeAjaxCall(redirectUrl,
{
method: 'get',
data: { layout: false },
success: options.success,
error: options.error,
complete: options.complete
});
return;
}
}
if (jQuery.isFunction(options.success))
{
options.success(data);
}
}, // success
error: function (data) {
//alert("makeAjaxCall - Error\r\nStatus: " + data.status + "\r\nStatus Text: " + data.statusText + "\r\nResponse Text: " + data.responseText);
if (jQuery.isFunction(options.error))
{
options.error(data);
}
},
complete: function (data, status) {
//alert("makeAjaxCall - Complete: " + $.toJSON(xmlHttpRequest));
//alert("makeAjaxCall - Error\r\nStatus: " + data.status + "\r\nStatus Text: " + data.statusText + "\r\nResponse Text: " + data.responseText);
if (jQuery.isFunction(options.complete))
{
options.complete(data, status);
}
}
});// ajax
}
function serializeToJson(form) {
var formAsJson = {};
var form_array = form.serializeArray();
$.each(form_array, function () {
if (formAsJson[this.name]) {
if (!formAsJson[this.name].push) {
formAsJson[this.name] = [formAsJson[this.name]];
}
formAsJson[this.name].push(this.value || '');
} else {
formAsJson[this.name] = this.value || '';
}
});
return formAsJson;
}
function normalizeHttpMethod(method) {
if (method == undefined || method == null) {
return "get";
}
if (["get", "post", "put", "delete"].indexOf(method) > 0) {
return method;
}
else {
return "get";
}
}
function normalizeDataType(dataType) {
if (dataType == undefined || dataType == null) {
return 'html';
}
if (["html", "json", "jsonp", "xml", "csv", "xls", "ajaxhtml"].indexOf(dataType) > 0) {
return dataType;
}
else {
return 'html';
}
}
function getJsonTypeForAjax(path1, path2)
{
var path1_url = $.url(path1);
var path2_url = $.url(path2);
var host1 = path1_url.attr("host").toLowerCase();
var host2 = path2_url.attr("host").toLowerCase();
//alert("PATH1: " + path1 + "\r\nPATH2: " + path2 + "\r\nJSON Type: " + (host1 == host2 ? "json" : "jsonp"));
return host1 == host2 ? "json" : "jsonp";
}
(function ($) {
$.fn.simpleImagePicker = function (options) {
var settings = sanitize_options(options);
//alert("Image Picker Processing");
this.filter("input").each(
function () {
//alert("Image Picker Attached");
var input = $(this);
var value = input.attr('value');
var select_label = settings.label;
if (select_label == null) {
select_label = "Select Image";
}
if (settings.label != null) {
select_label = input.attr('select-label');
}
//alert(select_label);
var content_tag = null;
var image_tag = $('');
if (value != null && value != "") {
var thumb_url = input.attr('thumb-url');
if (thumb_url != null) {
image_tag.attr('src', thumb_url + "?id=" + value);
}
}
content_tag = $('').append(select_label);
content_tag.click(function () {
showDialog(input);
});
if (content_tag != null) {
input.after(content_tag);
}
input.after('
');
input.after(image_tag);
input.hide();
});
function showDialog(input) {
var url = input.attr('data-url');
var dialog_escaped = "<div class="image-select-dialog" id="image_selector" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" >" +
"<div class="modal-header">" +
"<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>" +
"<h3 id="myModalLabel">Image Selector</h3>" +
"</div>" +
"<div class="modal-body">" +
"<ul class="thumbnails row-fluid" id="image_selector_image_list">" +
"</ul>" +
"</div>" +
"<div class="modal-footer">" +
"<div class="pagination pull-right">" +
"<ul>" +
"<li><a id="image_selector_previous_page" class='previous-page'>Prev</a></li>" +
"<li><a id="image_selector_next_page" class='next-page'>Next</a></li>" +
"</ul>" +
"</div>" +
"</div>" +
"</div>";
var dialog_html = $("").html(dialog_escaped).text();
var page = 1;
var selectedImage = null;
$.modal(dialog_html, {
minHeight: 500,
minWidth: 700,
containerCss: {
backgroundColor: "#fff",
borderColor: "#000",
padding: 0
},
opacity: 80,
overlayCss: {backgroundColor: "#bbb"},
closeClass: 'close',
onClose: function (dialog) {
if (settings.onClose != null && jQuery.isFunction(settings.onClose)) {
settings.onClose(selectedImage); //here must be supplied info about selected Image
}
$.modal.close();
},
onShow: function (dialog) {
//console.log("DIALOG");
//console.log(dialog);
//alert(this.content);
$("a#image_selector_previous_page", dialog.data).click(function () {
//alert('Previous Page Click');
page--;
if (page <= 0) {
page = 1;
}
loadImages(url, page, $("div.image-select-dialog", dialog.data), input);
return false;
});
$("a#image_selector_next_page", dialog.data).click(function () {
//alert('Next Page Click');
page++;
loadImages(url, page, $("div.image-select-dialog", dialog.data), input);
return false;
});
loadImages(url, page, $("div.image-select-dialog", dialog.data), input);
}
});
}
function sanitize_options(opts) {
if (opts == null || opts == undefined) {
opts = {}
}
var default_options;
default_options = {
label: "Select Image",
items_per_page: 20
};
return $.extend(default_options, opts);
}
// Do your awesome plugin stuff here
function loadImages(url, page, imagesDailog, ui) {
//alert('Load Images Url: ' + url);
makeAjaxCall(url, {
method: 'get',
dataType: 'json',
data: {page: page },
success: function (data) {
//console.log("Images Dialog");
//console.log(imagesDailog);
if (imagesDailog) {
//console.log("Images Container");
//console.log(imagesContainer);
var result = '';
jQuery.each(data, function (index, item) {
//console.log(item);
result +=
'' +
' ' +
' ' +
' ' +
''
});
//alert(result);
var imagesContainer = imagesDailog.find('ul#image_selector_image_list');
imagesContainer.html(result);
$('a.image-to-select', imagesContainer).dblclick(function () {
var image_id = $(this).attr("image-id");
var image_thumb_url = $(this).attr("image-thumb-url");
//alert("Double Click on Image: Onselect: " + settings.onSelect);
//alert("ImageID: "+ image_id + "\r\nImage Thumb Url: " + image_thumb_url);
if ($.isFunction(settings.on_select)) {
settings.on_select(ui, image_id, image_thumb_url);
}
$.modal.close();
});
imagesContainer.show();
}
},
error: function () {
//showFancyMessage("Error of Loading Edit Page with Ajax");
}
});
}
};
})(jQuery);
function normalizeClassForCss(klass){
return klass.indexOf(".") == 0 ? klass : "." + klass;
}
function normalizeIdForCss(id){
return id.indexOf("#") == 0 ? id : "#" + id;
}