1/** 2 * functions used to work with tiles 3 */ 4 5/** 6 * @type string[] all classes that represent tile aligment on page 7 */ 8var TILE_ALIGMENT_CLASSES = ['left', 'left-center', 'center', 'right-center', 'right']; 9 10// contains all tiles that have been removed from medium and must be removed from server 11var tilesToDelete = []; 12 13/** 14 * packs tiles for save on server 15 */ 16function packTiles() { 17 // removes content from tiles to save space 18 $('div[data-tile-type]').each( 19 function (index, elem) { 20 var elem = $(elem); 21 var doNotPack = elem.data("tile-do-not-pack"); 22 if (!doNotPack) { 23 $(elem).empty(); 24 } 25 } 26 ); 27 28 // delete all removed tiles from server 29 for(var i=0; i < tilesToDelete.length; i++) { 30 var removeTileData = tilesToDelete[i]; 31 $.post(ajaxRemoveTileControllerURL, 32 removeTileData, 33 function (response, status, jqXHR) { 34 if (response.result == 'ok') { 35 } else { 36 alert(response.error); 37 } 38 } 39 ); 40 } 41} 42 43function reloadTiles(editable) { 44 if (typeof editable == "undefined" || editable === null) { 45 editable = false; 46 } 47 $('div[data-tile-type]').each( 48 function (index, elem) { 49 var elem = $(elem); 50 // test if do not pack required for this tile 51 // if data-tile-do-not-pack attribure is present and value 1 then do net remove content of tile or reload data as id contain all necessaray data and this data is startic 52 var doNotPack = elem.data("tile-do-not-pack"); 53 if(doNotPack) { 54 if (!editMode) { // value set in views/footer-gs-scripts-common_[edit|web].tmpl 55 elem.find(".js-tile-control").remove(); // only remove controls from tile 56 } 57 return; 58 } 59 60 var url = ajaxReloadTileControllerURL; 61 var tileAlign = getTileAlign(elem); 62 var id = elem.attr('data-tile-data-id'); 63 var data = {'type': elem.attr("data-tile-type"), 'id': elem.attr('data-tile-data-id'), 'editable': Number(editable), 'tileAlign': tileAlign}; 64 $.get(url, {'tile': data}, 65 function (response, status, xhr) { 66 var type = xhr.getResponseHeader("content-type") || ""; 67 var dataType = ""; 68 if (type.indexOf('html') > -1) { 69 dataType = 'html'; 70 } 71 if (type.indexOf('json') > -1) { 72 dataType = 'json'; 73 } 74 //HTML - tile 75 if (dataType == 'html') { 76 elem.before($(response)); 77 78 elem.remove(); 79 80 //json error 81 } else if (dataType == 'json') { 82 //console.log(response); 83 if (response.display) { 84 elem.append('<button onclick="removeTile(this)"> Remove Tile</button>' + "\n " + response.text); 85 } else { 86 elem.hide(); 87 } 88 } 89 90 }); 91 92 } 93 ); 94} 95 96function removeTile(el) { 97 // store info to delete tile from server 98 var tile = $(el).closest('div[data-tile-type]'); 99 tilesToDelete.push({'type': tile.attr("data-tile-type"), 'id': tile.attr('data-tile-data-id')}); 100 101 // remove from medium 102 if( $(el).parent().hasClass('tripple-tile') ) { // is set in tripple 103 $(el).replaceWith('<div class="tile" onclick="setTileInTripple($(this));"></div>'); 104 } else { 105 tile.remove(); 106 } 107 108 fadmin_editableContentChaged(); 109} 110 111function getTileAlign(tile) { 112 tile = $(tile); 113 for (var i = 0; i < TILE_ALIGMENT_CLASSES.length; i++) { 114 var align = TILE_ALIGMENT_CLASSES[i]; 115 if (tile.hasClass(align)) { 116 return align; 117 } 118 } 119 return 'center'; 120} 121 122function setTileAlign(tile, tileAlign) { 123 tile = $(tile); 124 for (var i = 0; i < TILE_ALIGMENT_CLASSES.length; i++) { 125 tile.removeClass(TILE_ALIGMENT_CLASSES[i]); 126 } 127 tile.addClass(tileAlign); 128 fadmin_editableContentChaged(); 129} 130 131function tileFormReset() { 132 $('#fadmin-tile-form')[0].reset(); 133} 134 135var _filterContactsRequestTimeout = null; 136 137function ajaxTileFilterContactsForm() { 138 var form = $('#tabs-tiles-tile-contact input'); 139 140 var url = ajaxFilterTileContactsURL; 141 142 if (_filterContactsRequestTimeout !== null) { 143 clearTimeout(_filterContactsRequestTimeout); 144 _filterContactsRequestTimeout = null; 145 } 146 var reloadFunc = function () { 147 $.get(url, form.serialize(), function (response) { 148 var resultHtml = ""; 149 var data = response.data; 150 151 for(var i=0; i < data.page.length; i++) { 152 var element = data.page[i]; 153 resultHtml += '<li class="fadmin__widgets-list__item" onclick="selectTileContact('+ element.i
153d +', $(this).find(\'.fadmin__widgets-list__item__name\').html() )" >' // is done in this manner to avoid problem with " 154 +'<span class="fadmin__widgets-list__item__id">'+ element.id +'</span>' 155 +'<span class="fadmin__widgets-list__item__name">'+ element.name +'</span>' 156 +'</li>'; 157 } 158 159 $('#tabs-tiles-tile-contact .js-results-container').html(resultHtml); 160 $('#tabs-tiles-tile-contact .js-results-count').html(data.totalCount); 161 162 _filterContactsRequestTimeout = null; 163 }); 164 }; 165 _filterContactsRequestTimeout = setTimeout(reloadFunc, 200); 166} 167 168function selectTileContact(id, name) { 169 $('#tabs-tiles-tile-contact [name="contactId"]').val(id); 170 $('#tabs-tiles-tile-contact .js-selected-contact-container').html(""+ id +" - "+ name); 171} 172 173function ajaxFilterJobOffersForm() { 174 var form = $('#fadmin-tile-form'); 175 176 var url = ajaxFilterTileJobOffersURL; 177 $.get(url, form.serialize(), function (response) { 178 var resultHtml = ""; 179 var data = response.data; 180 181 for(var i=0; i < data.page.length; i++) { 182 var element = data.page[i]; 183 resultHtml += '<li class="fadmin__widgets-list__item" onclick="selectJobOffer('+ element.id +', $(this).find(\'.fadmin__widgets-list__item__name\').html() )" >' // is done in this manner to avoid problem with " 184 +'<span class="fadmin__widgets-list__item__id">'+ element.id +'</span>' 185 +'<span class="fadmin__widgets-list__item__name">'+ element.name +'</span>' 186 +'</li>'; 187 } 188 189 $('#js-job-offer-search-results-container').html(resultHtml); 190 $('#js-job-offer-search-results-count').html(data.totalCount); 191 }); 192} 193 194function selectJobOffer(id, name) { 195 $('#fadmin-tile-form [name="jobOfferId"]').val(id); 196 $('#fadmin-tile-form .js-selected-job-order-container').html(""+ id +" - "+ name); 197} 198 199 200function ajaxFilterPublicationForm() { 201 var form = $('#fadmin-tile-form'); 202 203 var url = ajaxFilterTilePublicationsURL; 204 $.post(url, form.serialize(), function (response) { 205 var resultHtml = ""; 206 var data = response.data; 207 208 for(var i=0; i < data.page.length; i++) { 209 var element = data.page[i]; 210 resultHtml += '<li class="fadmin__widgets-list__item" onclick="selectPublication('+ element.id +', $(this).find(\'.fadmin__widgets-list__item__name\').html() )" >' // is done in this manner to avoid problem with " 211 +'<span class="fadmin__widgets-list__item__id">'+ element.id +'</span>' 212 +'<span class="fadmin__widgets-list__item__name">'+ element.name +'</span>' 213 +'</li>'; 214 } 215 216 $('#publication-pined-publications-search-form-results-container').html(resultHtml); 217 $('#publication-pined-publications-search-form-results-count').html(data.totalCount); 218 }); 219} 220 221function selectPublication(id, name) { 222 $('#fadmin-tile-form [name="publicationId"]').val(id); 223 $('#fadmin-tile-form .js-selected-publication-container').html(""+ id +" - "+ name); 224} 225 226function setTileInTripple(that) { 227 var params = {}; 228 fadmin_setLoading(); 229 $.get(ajaxGetTileFormControllerURL, params, function (data) { 230 // shows popup 231 fadminPopup.showHTML(data); 232 $('#fadmin-gs-add-tile-form__btn').click(function (e) { 233 e.preventDefault(); 234 var url = ajaxSaveTileControllerURL; 235 var form = $('#fadmin-tile-form'); 236 var serialized = serializeFormToObject(form); 237 $.post(url, {'formData': serialized}, 238 function (response, status, xhr) { 239 var type = xhr.getResponseHeader("content-type") || ""; 240 var dataType = ""; 241 if (type.indexOf('html') > -1) { 242 dataType = 'html'; 243 } 244 if (type.indexOf('json') > -1) { 245 dataType = 'json'; 246 } 247 //console.log(dataType) 248 if (dataType == 'html') { 249 //if (response.result == 'ok') { 250 var responseHTML = response; 251 252 //that.insertTile(responseHTML); 253 254 that.replaceWith(responseHTML); 255 256 fadminPopup.hide(); 257 258 fadmin_editableContentChaged(); 259 } else if (dataType == 'json') { 260 if (response.result == 'error') { 261 //TODO: lepšà zobrazovanà chyb 262 alert(response.error); 263 } 264 265 } 266 }); 267 //*/ 268 }); 269 }); 270 271} 272
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.