1 2 3$('form').each(function () { 4 $(this).unbind("invalid-form.validate"); // remove old handler 5 $(this).bind("elementValidation", function (event, element, result) { 6 //console.log("Something is invalid"); 7 }); 8 $(this).bind("invalid-form.validate", function (f, v) { 9 //console.log(v); 10 var settngs = v.settings; 11 var oldErrorFunction = settngs.errorPlacement; 12 var oldSucessFunction = settngs.success; 13 settngs.errorPlacement = function (error, element) { 14 $(element).parent('div').find(".fa").remove(); 15 $(element).after($('<i class="fa fa-close feedback-icon"></i>')); 16 if (element.val() == '') { 17 $(element).parent('div').find(".fa").remove(); 18 } 19 oldErrorFunction(error, element); 20 } 21 settngs.success = function (error) { 22 oldSucessFunction(error); 23 } 24 25 }); 26 27}); 28 29(function ($) { 30 $.validator.unobtrusive.adapters.addBool("checkboxrequired", "required"); 31}(jQuery)); 32 33function convertUTCDateToLocalDate(date) { 34 var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000); 35 36 var offset = date.getTimezoneOffset() / 60; 37 var hours = date.getHours(); 38 39 newDate.setHours(hours - offset); 40 41 return newDate; 42} 43 44function startBlock(elementName) { 45 var element = $('#' + elementName); 46 if (element != null) { 47 element.block( 48 { 49 message: '<div class="fa fa-spinner fa-spin"></div>', 50 //message: '<div><i class="fa faa-pulse animated"><img id="imgIcon" src="/Content/images/icon.png" style="border: none; height: 46px;" /></i></div>', 51 css: { background: 'none', border: 'none' } 52 }); 53 } 54} 55 56function endBlock(elementName) { 57 var element = $('#' + elementName); 58 if (element != null) { 59 element.unblock(); 60 } 61} 62 63function getParameterByName(name) { 64 name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 65 var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); 66 67 return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 68} 69 70function renderPOSTData(divId, data, errorMessage) { 71 startBlock(divId); 72 73 $.ajax({
74 method: "POST", 75 url: $("#" + divId).data('url'), 76 data: data, 77 success: function (e) { 78 $("#" + divId).html(e); 79 }, 80 error: function (e) { 81 endBlock(divId); 82 //notifyError(errorMessage); 83 notifyError(errorMessage); 84 } 85 }); 86} 87 88function renderGETDataUrl(divId, url, errorMessage, callback) { 89 startBlock(divId); 90 91 $.ajax({ 92 method: "GET", 93 url: url, 94 success: function (e) { 95 $("#" + divId).html(e); 96 if (callback != null) 97 callback(); 98 }, 99 error: function (e) { 100 endBlock(divId); 101 $("#" + divId).html('<div class=alert alert-danger fade in"><i class="fa-fw fa fa-info"></i><strong>Error!</strong>' + errorMessage + '</div>'); 102 } 103 }); 104} 105 106// Custom string extension to get local date time from UTC date time 107String.prototype.toLocalDateTime = function () { 108 let date = this; 109 if (new Date(date).getYear() < 0) 110 date = new Date(); 111 return new Date(new Date(date).toLocaleString() + ' UTC'); 112}; 113 114function renderGETData(divId, errorMessage, callback) { 115 startBlock(divId); 116 117 $.ajax({
118 method: "GET", 119 url: $("#" + divId).data('url'), 120 success: function (e) { 121 $("#" + divId).html(e); 122 if (callback != null) 123 callback(); 124 }, 125 error: function (e) { 126 endBlock(divId); 127 $("#" + divId).html('<div class=alert alert-danger fade in"><i class="fa-fw fa fa-info"></i><strong>Error!</strong>' + errorMessage + '</div>'); 128 } 129 }); 130} 131 132 133function cancelFormGlobal() { 134 window.location.href = '/home/index'; 135 return false; 136} 137function resetFormGlobal(e) { 138 $('#' + e)[0].reset(); 139 $('#' + e + " input").each(function () { 140 var cb = $(this).data("kendoComboBox"); 141 if (cb) { 142 setTimeout(resetComboBox, 50, cb, 1); 143 } 144 }); 145 return false; 146} 147 148resetComboBox = function (widget, val) { 149 widget.text(''); 150} 151 152function notifyInfo(message) { 153 toastr.info(message, "Info"); 154} 155 156function notifySuccess(message) { 157 toastr.success(message, "Success"); 158} 159 160function notifyError(message) { 161 toastr.error(message, "Error"); 162} 163 164function showInfo(message) { 165 $('#divGlobalMessage').hide(); 166 $('#divGlobalMessageType').removeClass(); 167 $('#divGlobalMessageType').addClass('alert alert-info fade in'); 168 $('#divGlobalMessageType').html(''); 169 $('#divGlobalMessageType').append('<button class="close" data-dismiss="alert"> Ã </button>'); 170 $('#divGlobalMessageType').append('<i class="fa-fw fa fa-info"></i> '); 171 $('#divGlobalMessageType').append('<strong>Info! </strong>' + message); 172 $('#divGlobalMessage').show(); 173} 174function showError(message) { 175 $('#divGlobalMessage').hide(); 176 $('#divTableErrorMessage').hide(); 177 $('#divGlobalMessageType').removeClass(); 178 $('#divGlobalMessageType').addClass('alert alert-danger fade in'); 179 $('#divGlobalMessageType').html(''); 180 $('#divGlobalMessageType').append('<button class="close" data-dismiss="alert"> Ã </button>'); 181 $('#divGlobalMessageType').append('<i class="fa-fw fa fa-times"></i> '); 182 $('#divGlobalMessageType').append('<strong>Error! </strong>' + message); 183 $('#divGlobalMessage').show(); 184} 185function showSuccess(message) { 186 $('#divGlobalMessage').hide(); 187 $('#divTableErrorMessage').hide(); 188 $('#divGlobalMessageType').removeClass(); 189 $('#divGlobalMessageType').addClass('alert alert-success fade in'); 190 $('#divGlobalMessageType').html(''); 191 $('#divGlobalMessageType').append('<button class="close" data-dismiss="alert"> Ã </button>'); 192 $('#divGlobalMessageType').append('<i class="fa-fw fa fa-check"></i> '); 193 $('#divGlobalMessageType').append('<strong>Success </strong>' + message); 194 $('#divGlobalMessage').show(); 195} 196 197function showTableError(message) { 198 $('#divTableErrorMessage').hide(); 199 $('#divTableErrorMessageType').removeClass(); 200 $('#divTableErrorMessageType').addClass('alert alert-danger'); 201 $('#divTableErrorMessageType').html(''); 202 $('#divTableErrorMessageType').append('<button class="close" data-dismiss="alert"> Ã </button>'); 203 $('#divTableErrorMessageType').append('<i class="fa-fw fa fa-times"></i> '); 204 $('#divTableErrorMessageType').append('<strong>Error! </strong>' + message); 205 $('#divTableErrorMessage').show(); 206} 207 208function showTableSucess(message) { 209 $('#divTableErrorMessage').hide(); 210 $('#divTableErrorMessageType').removeClass(); 211 $('#divTableErrorMessageType').addClass('alert alert-success'); 212 $('#divTableErrorMessageType').html(''); 213 $('#divTableErrorMessageType').append('<button class="close" data-dismiss="alert"> Ã </button>'); 214 $('#divTableErrorMessageType').append('<i class="fa-fw fa fa-check"></i> '); 215 $('#divTableErrorMessageType').append('<strong>Success </strong>' + message); 216 $('#divTableErrorMessage').show(); 217} 218 219function exportToExcel(table, fileName) { 220 $("#" + table).table2excel({ 221 //exclude: ".excludeThisClass", 222 name: "Worksheet Name", 223 filename: fileName //do not include extension 224 }); 225 226} 227 228//KENDO GRID SELECT 229 230function clearSelection(gridId) { 231 $('#' + gridId + ' :checkbox').prop('checked', false); 232 $('#' + gridId + ' table tbody tr').removeClass('k-state-selected'); 233 showActions(gridId); 234 refreshData(); 235} 236 237function checkAll(ele, gridId) { 238 var state = $(ele).is(':checked'); 239 gridId = $(gridId).attr('id'); 240 $('#' + gridId + ' :checkbox[name=chkItem]').prop('checked', state); 241 242 243 if (state == true) { 244 $('#' + gridId + ' table').find("input:checkbox[name=chkItem]:checked").each(function () { 245 $(this).closest('tr').addClass('k-state-selected'); 246 }); 247 } else { 248 $('#' + gridId + ' table').find("input:checkbox[name=chkItem]").each(function () { 249 $(this).closest('tr').removeClass('k-state-selected'); 250 }); 251 } 252 refreshData(); 253 showActions(gridId); 254} 255 256function checkMe(ele, gridId) { 257 gridId = $(gridId).attr('id'); 258 if ($(ele).is(':checked')) { 259 $(ele).closest('tr').addClass('k-state-selected'); 260 } 261 else { 262 $(ele).closest('tr').removeClass('k-state-selected'); 263 } 264 refreshData(); 265 showActions(gridId); 266} 267 268function showActions(gridId) { 269 if ($('#' + gridId + ' :checkbox[name=chkItem]:checked').length > 0) { 270 $('#div' + gridId + ' :input').prop("disabled", false); 271 $('#span' + gridId).text('Selected Items: ' + $('#' + gridId + ' :checkbox[name=chkItem]:checked').length + ' | '); 272 $('#lnk' + gridId).show(); 273 } 274 else { 275 $('#div' + gridId + ' :input').prop("disabled", true); 276 $('#span' + gridId).text(''); 277 $('#lnk' + gridId).hide(); 278 $('#' + gridId + ' :checkbox[name=chkAll]').prop("checked", false); 279 } 280} 281 282function sync_handler(e) { 283 this.read(); 284} 285 286function kendoGridErrorHandle(e) { 287 try { 288 kendoGridAnimationEnd(e); 289 } catch (err) { 290 291 } 292 if (e.xhr != null && e.xhr.status == 99) { 293 notifyError(e.xhr.responseText); 294 return; 295 } 296 if (e.errors) { 297 var message = ""; 298 $.each(e.errors, function (key, value) { 299 if ('errors' in value) { 300 $.each(value.errors, function () { 301 message += this + "\n"; 302 }); 303 } 304 }); 305 notifyError("Update Failed: " + message); 306 } 307} 308 309function kendoGridAnimationEnd(e) { 310 if (e.status == "error" || e.type == "update" || e.type == "create" || e.type == "destroy") { 311 var activeGrid = findGridByDataSource(e.sender); 312 var activeGridId = activeGrid.wrapper.attr("id"); 313 var grid = $('#' + activeGridId).data("kendoGrid"); 314 var gridTable = grid.table && grid.table.jquery ? grid.table[0] : grid.table; 315 if (window.GBComponents && typeof GBComponents.hideLoading === "function") { 316 GBComponents.hideLoading(gridTable); 317 } else if (window.kendo && kendo.ui && kendo.ui.progress) { 318 kendo.ui.progress(grid.table, false); 319 } 320 } 321} 322 323function integerFilter(element) { 324 element.kendoNumericTextBox({ 325 format: "n0" 326 });
327} 328 329function formatCurrency(value, places, symbol, thousand, decimal) { 330 places = !isNaN(places = Math.abs(places)) ? places : 2; 331 symbol = symbol !== undefined ? symbol : "$"; 332 thousand = thousand || ","; 333 decimal = decimal || "."; 334 var number = value, 335 negative = number < 0 ? "-" : "", 336 i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "", 337 j = (j = i.length) > 3 ? j % 3 : 0; 338 return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : ""); 339}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.