1"use strict"; 2 3(function ($) { 4 $.fn['amShared'] = {}; 5 6 $.fn['amShared']._getJSON = function (url, params) { 7 return new Promise(function (resolve, reject) { 8 var retriesRemaining = 1; 9 10 function request() { 11 $.getJSON(url, params).done(resolve).fail(function (jqXHR, textStatus, errorThrown) { 12 if (retriesRemaining > 0) { 13 retriesRemaining -= 1; 14 window.setTimeout(request, 150); 15 return; 16 } 17 18 reject(errorThrown || textStatus || jqXHR); 19 }); 20 } 21 22 request(); 23 }); 24 }; 25 26 $.fn['amShared']._bindFormEvents = function (form) { 27 form.on('focus', '.events2-missing-field', function (event) { 28 $(this).removeClass('events2-missing-field'); 29 }); 30 }; 31 32 $.fn['amShared']._isFormClean = function (form) { 33 var clean = true; 34 var requiredFields = $('label>.required-field', form); 35 36 for (var ii = requiredFields.length - 1; ii >= 0; ii--) { 37 var input = $(requiredFields[ii]).closest('label').parent().find('.am-input'); 38 var inputClean = true; 39 40 if (input.get(0)) { 41 switch (input.get(0).tagName.toLowerCase()) { 42 case 'input': 43 switch (input.attr('type')) { 44 case 'checkbox': 45 inputClean = input.is(':checked'); 46 break; 47 48 default: 49 inputClean = input.val().trim().length > 0; 50 } 51 52 break; 53 54 case 'select': 55 if (input.attr('id') === 'ticket-dd') { 56 var selected = input.children('option:selected').val(); 57 inputClean = typeof selected !== 'undefined' && selected !== null ? selected.length > 0 : false; 58 } else { 59 inputClean = input.val().length > 0; 60 } 61 62 break; 63 64 case 'textarea': 65 default: 66 inputClean = input.val().length > 0; 67 } 68 } 69 70 if (!inputClean) { 71 input.addClass("hightlight-field").delay(6000).queue(function () { 72 $(this).removeClass("hightlight-field").dequeue(); 73 }); 74 clean = false; 75 } 76 } 77 78 return clean; 79 }; 80 81 $.fn['amShared']._eraseCookie = function (name) { 82 this._createCookie(name, "", -1); 83 }; 84 85 $.fn['amShared']._createCookie = function (name, value, days) { 86 var expires = ""; 87 88 if (days) { 89 var date = new Date(); 90 date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); 91 expires = "; expires=" + date.toGMTString(); 92 } 93 94 document.cookie = name + "=" + value + expires + "; path=/"; 95 }; 96 97 $.fn['amShared']._readCookie = function (name) { 98 var nameEQ = name + "="; 99 var ca = document.cookie.split(';'); 100 101 for (var i = 0; i < ca.length; i++) { 102 var c = ca[i]; 103 104 while (c.charAt(0) == ' ') { 105 c = c.substring(1, c.length); 106 } 107 108 if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); 109 } 110 111 return null; 112 }; 113 114 $.fn['amShared']._createFieldWithObject = function (field) { 115 return $.fn['amShared']._createField(field.name, field.type, field.title, field.required, field.append, field.helpText, field.min, field.link); 116 }; 117 118 $.fn['amShared']._createField = function (id, type, label, required, append, desc, min, link) { 119 if (!type) type = 'text'; 120 if (!label) label = ''; 121 if (!desc) desc = ''; 122 if (!min) min = '0'; 123 var field = $('<div class="row amf-row"></div>'); 124 field.addClass('am-field-' + type); 125 126 if (append) { 127 $('<div class="col-sm-8"><div class="input-group field"></div></div>').appendTo(field); 128 $('.input-group', field).append(append); 129 } else { 130 $('<div class="col-sm-8 field"></div>').appendTo(field); 131 } 132 133 var isInModal = $(".amPopup .amPopupContent").length > 0; 134 var isInRoomPicker = $("#content .roompicker").length > 0; 135 var isInControlPanel = $(".control-layout").length > 0; 136 var isReserveScreen = $('.amnp-reserve-screen-shared').length > 0; 137 var helpEl = $('<div class="col-sm-4"></div><div class="col-sm-8 am-form-desc">' + desc + '</div>'); 138 var formDescEl = helpEl.filter('.am-form-desc'); 139 140 switch (type) { 141 case 'textarea': 142 field.find('.field').prepend('<textarea class="am-input form-control" id="' + id + '"></textarea>'); 143 break; 144 145 case 'select': 146 field.find('.field').prepend('<select class="am-input form-control" id="' + id + '"></select>'); 147 break; 148 149 case 'number': 150 field.find('.field').prepend('<input type="' + type + '" class="am-input form-control" min="' + min + '" pattern="[0-9]" id="' + id + '">'); 151 break; 152 153 case 'checkbox': 154 field.find('.field').prepend('<input type="' + type + '" class="am-input" id="' + id + '">'); 155 var checkboxElContainer = field.find('.field input').parent(); 156
157 if (isInModal || isInRoomPicker) { 158 checkboxElContainer.removeClass('col-sm-8').addClass('col-sm-1').css('padding-left', 0).css('padding-right', 0).css('padding-top', '7px'); 159 $(helpEl).filter('.col-sm-4').css('display', 'none'); 160 formDescEl.removeClass('col-sm-8').addClass('col-sm-6').css('padding-top', '8px').css('padding-left', 0); 161 } 162 163 if (isInControlPanel && isReserveScreen) { 164 formDescEl.css('padding-top', 0); 165 checkboxElContainer.css('padding-top', 0); 166 } 167 168 break; 169 170 default: 171 field.find('.field').prepend('<input type="' + type + '" class="am-input form-control" id="' + id + '">'); 172 break; 173 } 174 175 var labelEl = $('<label for="' + id + '" class="col-sm-4 control-label">' + label + ' </label>').prependTo(field); 176 if (required) labelEl.append('<span class="required-field"></span>'); 177 178 if (undefined !== link && false !== link) { 179 var linkHref = ''; 180 var currentDesc = $.trim(formDescEl.text()); 181 182 if (typeof link === 'object' && null !== link) { 183 linkHref = link.href || link.url || link.link || ''; 184 185 if (!currentDesc && link.text) { 186 formDescEl.text(link.text); 187 } 188 } else { 189 linkHref = link; 190 191 if (!currentDesc && link) { 192 formDescEl.text(link); 193 } 194 } 195 196 if (linkHref) { 197 formDescEl.wrapInner('<a target="_blank" href="' + linkHref + '"></a>'); 198 } 199 } 200 201 helpEl.appendTo(field); 202 field.on('click', 'input,textarea,select', function () { 203 $(this).removeClass('hightlight-field'); 204 }); 205 return field; 206 }; 207})(jQuery);
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.