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': "
" + msg + '
', 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; }