diff --git a/utils/jquery.utils.js b/utils/jquery.utils.js index 6cefb2c..177012c 100644 --- a/utils/jquery.utils.js +++ b/utils/jquery.utils.js @@ -1,277 +1,278 @@ -$.fn.validate = function () { - if (this.prop('tagName') === 'FORM') { - var isOk = true; - - $.each(this.find('input, select, textarea'), function () { - if ($(this).attr('required')) { - if ($(this).val() === '' || $(this).parent().hasClass('has-error')) { - $(this).focus().blur().focus(); - isOk = false; - return false; - } - } - }); - - return isOk; - } else { - console.log(this.prop('tagName') + ' is not Form') - return false; - } -} - -$.fn.getParams = function (actions, pswdEncrypt) { - pswdEncrypt = typeof pswdEncrypt !== 'undefined' ? pswdEncrypt : false; - - if (this.prop('tagName') === 'FORM') { - data = { - params: {}, - options: {} - }; - - if (actions) { - data.options['action'] = this.attr('data-action') != undefined ? this.attr('data-action') : null; - data.options['url'] = this.attr('action') != undefined ? this.attr('action') : null; - } - - - $.each(this.find('input, select, textarea'), function () { - if ($(this).val() !== '' && $(this).attr('name') != undefined) { - if ($(this).attr('data-form') !== 'not') { - if ($(this).attr('type') == 'radio') { - if ($(this).is(':checked')) { - data.params[$(this).attr('name')] = ($(this).attr('data-option') == "on" || $(this).attr('data-option') == '1') ? true : false; - } - } else if ($(this).attr('type') == 'password') { - var pswd = $(this).val(); - - if (pswdEncrypt) - pswd = sha512(pswd); - - data.params[$(this).attr('name')] = pswd; - } else if ($(this).attr('type') == 'hidden') { - data.options[$(this).attr('name')] = $(this).val(); - } else if ($(this).attr('type') == 'file') { - data[$(this).attr('name')] = $(this)[0].files[0]; - } else if ($(this).attr('type') == 'button') { - - } else { - data.params[$(this).attr('name')] = $(this).val(); - } - } - } - }); - - return data; - } else { - console.log(this.prop('tagName') + ' is not Form') - return false; - } -}; - -$.fn.setParams = function (params, deleteEmptys) { - var select; - deleteEmptys = deleteEmptys === undefined ? false : deleteEmptys; - if (params) { - if (this.prop('tagName') === 'FORM') { - $('body').find('.btn-save').html('Actualizar').removeClass('btn-primary').addClass('btn-warning'); - $.each(this.find('input, select, textarea, button'), function () { - var name = $(this).attr('name'); - if ($(this).attr('type') === 'button' || $(this).attr('type') === 'submit') { - if ($(this).html() == 'Guardar') { - $(this).html('Actualizar').removeClass('btn-primary').addClass('btn-warning'); - $(this).attr('data-update', '1'); - } - } else if ($(this).attr('type') === 'radio') { - if (params[name] != undefined) { - if (params[name] && $(this).attr('data-option') == 'on') { - $('input[name="' + name + '"]')[1].removeAttribute('checked'); - $(this).attr('checked', 'checked'); - } else if (!params[name] && $(this).attr('data-option') == 'off') { - $('input[name="' + name + '"]')[0].removeAttribute('checked'); - $(this).attr('checked', 'checked'); - } - } - } - - if (params[name] !== undefined) - $(this).val(params[name]); - else { - if (deleteEmptys){ - $(this).parent('.form-group').remove(); - } - } - - - - }); - } - } -} - -$.fn.onChange = function (now, old) { - var flag = false, - query = '', - changes = { - Expression: '', - AttributeValues: {} - }; - - if (now) { - $.each(now.params, function (i, val) { - if (old[i] !== undefined) { - if (old[i] != val) { - query += i + '=:' + i + ','; - changes.AttributeValues[':' + i] = val; - flag = true; - } - } - }); - - if (flag) { - changes.Expression = 'set ' + query.slice(0, -1);; - return changes; - } else { - return {}; - } - } -} - -$.fn.clear = function () { - if (this.prop('tagName') === 'FORM') { - this[0].reset(); - this.find('button').attr('disabled', 'disabled'); - $('body').find('.btn-save').html('Guardar').removeClass('btn-warning').addClass('btn-primary'); - } else { - console.log(this.prop('tagName') + ' is not Form') - return false; - } -}; - -$.fn.fill = function (optionDefault, key, value, data) { - optionDefault = typeof optionDefault === undefined ? 'una opción' : optionDefault; - if (this.prop('tagName') === 'SELECT') { - var option = ''; - $(this).empty(); - $.each(data, function (i, val) { - option += ''; - }); - - $(this).append(option); - } else { - console.log(this.prop('tagName') + ' is not select') - return false; - } -}; - -String.prototype.getExtension = function () { - var re = /(?:\.([^.]+))?$/; - return re.exec(this)[1]; -} - -String.prototype.format = function () { - var args = arguments; - return this.replace(/{(\d+)}/g, function (match, number) { - return typeof args[number] != 'undefined' ? args[number] : match; - }); -}; - -String.prototype.urlParamsUnique = function () { - var p = '', - bef = null, - url = this.split('?'), - getParams = url[1].split('&'); - - getParams.forEach(function (qs) { - if (qs.split('=')[0] != bef) - p += qs + '&'; - - bef = qs.split('=')[0]; - }); - - return url[0] + '?' + p.slice(0, -1); -}; - -Array.prototype.isEmpty = function () { - return this.length > 0 ? true : false; -}; - -String.prototype.padLeft = function (pad) { - return (pad + this).slice(-pad.length); -} - -Date.prototype.format = function (format, separator) { - format = typeof format !== 'undefined' ? format : 'yyyy-mm-dd'; - separator = typeof separator !== 'undefined' ? separator : '-'; - - var year = this.getFullYear(), - month = (this.getMonth() + 1).toString().padLeft('00'), - day = this.getDate().toString().padLeft('00'); - - switch (format) { - case 'mmddyyyy': return month + separator + day + separator + year; - break; - case 'ddmmyyyy': return day + separator + month + separator + year; - break; - case 'yyyymmdd': return year + separator + month + separator + day; - break; - case 'yyyyddmm': return year + separator + day + separator + month; - break; - default: return year + separator + month + separator + day; - break; - } -}; - -// Builds the HTML Table out of myList. -var buildHtmlTable = function (selector, data, type = 'horizontal') { - if (type == 'vertical') { - var columns = Object.keys(data[0]); - for (var i = 0; i < data.length; i++) { - var row$ = $(''); - var align = Object.keys(data[i]); - for (var colIndex = 0; colIndex < columns.length; colIndex++) { - var cellHead = columns[colIndex], - cellValue = data[i][columns[colIndex]]; - if (cellValue == null) cellValue = ""; - row$.append($('') - .append($('').html(cellHead)) - .append($('').html(cellValue)) - ); - } - $(selector).append(row$); - } - } - else { - var columns = addAllColumnHeaders(data, selector); - $(selector).append($('')); - for (var i = 0; i < data.length; i++) { - var row$ = $(''); - var align = Object.keys(data[i]); - for (var colIndex = 0; colIndex < columns.length; colIndex++) { - var cellValue = data[i][columns[colIndex]]; - if (cellValue == null) cellValue = ""; - row$.append($('').html(cellValue)); - } - $(selector).find('tbody').append(row$); - } - } -} -// Adds a header row to the table and returns the set of columns. -// Need to do union of keys from all records as some records may not contain -// all records. -var addAllColumnHeaders = function (data, selector) { - var columnSet = []; - var headerTr$ = $(''); - - for (var i = 0; i < data.length; i++) { - var rowHash = data[i]; - for (var key in rowHash) { - if ($.inArray(key, columnSet) == -1) { - columnSet.push(key); - headerTr$.append($('').html(key)); - } - } - } - $(selector).append(headerTr$); - - return columnSet; -} +$.fn.validate = function () { + if (this.prop('tagName') === 'FORM') { + var isOk = true; + + $.each(this.find('input, select, textarea'), function () { + if ($(this).attr('required')) { + if ($(this).val() === '' || $(this).parent().hasClass('has-error')) { + $(this).focus().blur().focus(); + isOk = false; + return false; + } + } + }); + + return isOk; + } else { + console.log(this.prop('tagName') + ' is not Form') + return false; + } +} + +$.fn.getParams = function (actions, pswdEncrypt) { + pswdEncrypt = typeof pswdEncrypt !== 'undefined' ? pswdEncrypt : false; + + if (this.prop('tagName') === 'FORM') { + data = { + params: {}, + options: {} + }; + + if (actions) { + data.options['action'] = this.attr('data-action') != undefined ? this.attr('data-action') : null; + data.options['url'] = this.attr('action') != undefined ? this.attr('action') : null; + } + + + $.each(this.find('input, select, textarea'), function () { + if ($(this).val() !== '' && $(this).attr('name') != undefined) { + if ($(this).attr('data-form') !== 'not') { + if ($(this).attr('type') == 'radio') { + if ($(this).is(':checked')) { + data.params[$(this).attr('name')] = ($(this).attr('data-option') == "on" || $(this).attr('data-option') == '1') ? true : false; + } + } else if ($(this).attr('type') == 'password') { + var pswd = $(this).val(); + + if (pswdEncrypt) + pswd = sha512(pswd); + + data.params[$(this).attr('name')] = pswd; + } else if ($(this).attr('type') == 'hidden') { + data.options[$(this).attr('name')] = $(this).val(); + } else if ($(this).attr('type') == 'file') { + data[$(this).attr('name')] = $(this)[0].files[0]; + } else if ($(this).attr('type') == 'button') { + + } else { + data.params[$(this).attr('name')] = $(this).val(); + } + } + } + }); + + return data; + } else { + console.log(this.prop('tagName') + ' is not Form') + return false; + } +}; + +$.fn.setParams = function (params, deleteEmptys) { + var select; + deleteEmptys = deleteEmptys === undefined ? false : deleteEmptys; + if (params) { + if (this.prop('tagName') === 'FORM') { + $('body').find('.btn-save').html('Actualizar').removeClass('btn-primary').addClass('btn-warning'); + $.each(this.find('input, select, textarea, button'), function () { + var name = $(this).attr('name'); + if ($(this).attr('type') === 'button' || $(this).attr('type') === 'submit') { + if ($(this).html() == 'Guardar') { + $(this).html('Actualizar').removeClass('btn-primary').addClass('btn-warning'); + $(this).attr('data-update', '1'); + } + } else if ($(this).attr('type') === 'radio') { + if (params[name] != undefined) { + if (params[name] && $(this).attr('data-option') == 'on') { + $('input[name="' + name + '"]')[1].removeAttribute('checked'); + $(this).attr('checked', 'checked'); + } else if (!params[name] && $(this).attr('data-option') == 'off') { + $('input[name="' + name + '"]')[0].removeAttribute('checked'); + $(this).attr('checked', 'checked'); + } + } + } + + if (params[name] !== undefined) + $(this).val(params[name]); + else { + if (deleteEmptys){ + $(this).parent('.form-group').remove(); + } + } + + + + }); + } + } +} + +$.fn.onChange = function (now, old) { + var flag = false, + query = '', + changes = { + Expression: '', + AttributeValues: {} + }; + + if (now) { + $.each(now.params, function (i, val) { + if (old[i] !== undefined) { + if (old[i] != val) { + query += i + '=:' + i + ','; + changes.AttributeValues[':' + i] = val; + flag = true; + } + } + }); + + if (flag) { + changes.Expression = 'set ' + query.slice(0, -1);; + return changes; + } else { + return {}; + } + } +} + +$.fn.clear = function () { + if (this.prop('tagName') === 'FORM') { + this[0].reset(); + this.find('button').attr('disabled', 'disabled'); + $('body').find('.btn-save').html('Guardar').removeClass('btn-warning').addClass('btn-primary'); + } else { + console.log(this.prop('tagName') + ' is not Form') + return false; + } +}; + +$.fn.fill = function (optionDefault, key, value, data) { + optionDefault = typeof optionDefault === undefined ? 'una opción' : optionDefault; + if (this.prop('tagName') === 'SELECT') { + var option = ''; + $(this).empty(); + $.each(data, function (i, val) { + option += ''; + }); + + $(this).append(option); + } else { + console.log(this.prop('tagName') + ' is not select') + return false; + } +}; + +String.prototype.getExtension = function () { + var re = /(?:\.([^.]+))?$/; + return re.exec(this)[1]; +} + +String.prototype.format = function () { + var args = arguments; + return this.replace(/{(\d+)}/g, function (match, number) { + return typeof args[number] != 'undefined' ? args[number] : match; + }); +}; + +String.prototype.urlParamsUnique = function () { + var p = '', + bef = null, + url = this.split('?'), + getParams = url[1].split('&'); + + getParams.forEach(function (qs) { + if (qs.split('=')[0] != bef) + p += qs + '&'; + + bef = qs.split('=')[0]; + }); + + return url[0] + '?' + p.slice(0, -1); +}; + +Array.prototype.isEmpty = function () { + return this.length > 0 ? true : false; +}; + +String.prototype.padLeft = function (pad) { + return (pad + this).slice(-pad.length); +} + +Date.prototype.format = function (format, separator) { + format = typeof format !== 'undefined' ? format : 'yyyy-mm-dd'; + separator = typeof separator !== 'undefined' ? separator : '-'; + + var year = this.getFullYear(), + month = (this.getMonth() + 1).toString().padLeft('00'), + day = this.getDate().toString().padLeft('00'); + + switch (format) { + case 'mmddyyyy': return month + separator + day + separator + year; + break; + case 'ddmmyyyy': return day + separator + month + separator + year; + break; + case 'yyyymmdd': return year + separator + month + separator + day; + break; + case 'yyyyddmm': return year + separator + day + separator + month; + break; + default: return year + separator + month + separator + day; + break; + } +}; + +// Builds the HTML Table out of myList. +var buildHtmlTable = function (selector, data, type = 'horizontal') { + if (type == 'vertical') { + var columns = Object.keys(data[0]); + for (var i = 0; i < data.length; i++) { + var row$ = $(''); + var align = Object.keys(data[i]); + for (var colIndex = 0; colIndex < columns.length; colIndex++) { + var cellHead = columns[colIndex], + cellValue = data[i][columns[colIndex]]; + if (cellValue == null) cellValue = ""; + row$.append($('') + .append($('').html(cellHead)) + .append($('').html(cellValue)) + ); + } + $(selector).append(row$); + } + } + else { + var columns = addAllColumnHeaders(data, selector); + $(selector).append($('')); + for (var i = 0; i < data.length; i++) { + var row$ = $(''); + var align = Object.keys(data[i]); + for (var colIndex = 0; colIndex < columns.length; colIndex++) { + var cellValue = data[i][columns[colIndex]]; + if (cellValue == null) cellValue = ""; + row$.append($('').html(cellValue)); + } + $(selector).find('tbody').append(row$); + } + } +} +// Adds a header row to the table and returns the set of columns. +// Need to do union of keys from all records as some records may not contain +// all records. +// add. +var addAllColumnHeaders = function (data, selector) { + var columnSet = []; + var headerTr$ = $(''); + + for (var i = 0; i < data.length; i++) { + var rowHash = data[i]; + for (var key in rowHash) { + if ($.inArray(key, columnSet) == -1) { + columnSet.push(key); + headerTr$.append($('').html(key)); + } + } + } + $(selector).append(headerTr$); + + return columnSet; +}