1var px = jQuery.noConflict(); 2var body = px(document); 3var meldung = false; 4 5function Meldung(typ, text) 6{ 7 clearTimeout(meldung); 8 px('.pxwf-meldungen').html('<div class="pxwf-meldung typ-' + typ + '">' + text + '</div>').addClass('aktiv'); 9 meldung = setTimeout(function(){ px('.pxwf-meldungen').removeClass('aktiv'); }, text.length * 200); 10} 11function Formular(inhalt, befehl) 12{ 13 let form = new FormData(); 14 if(befehl) form.append('BEFEHL', befehl); 15 px(inhalt).find('input, textarea, select').each(function() 16 { 17 let e = px(this); 18 if(e.is(':checkbox')) 19 { 20 if(e.hasClass('binary')) form.append(e.attr('name'), (e.prop('checked') === true ? '1' : '0')); 21 else (e.prop('checked') === true ? form.append(e.attr('name'), e.val()) : null); 22 } 23 else if(e.is(':file')) 24 { 25 if(e.prop('files')[0]) for(var i = 0; i < e.get(0).files.length; i++) form.append(e.attr('name') + (e.get(0).files.length > 1 ? '[]' : ''), e.get(0).files[i]); 26 } 27 else form.append(e.attr('name'), e.val()); 28 }); 29 return form; 30} 31function Formular_Setzen(inhalt, name, daten) 32{ 33 e = px(inhalt).find('[name="' + name + '"]'); 34 if(e.is(':checkbox')) 35 { 36 if(e.hasClass('binary')) (daten === 1 ? e.prop('checked', true) : e.prop('checked', false)); 37 else e(':checkbox[value=' + daten + ']').prop("checked","true"); 38 } 39 else e.val(daten); 40} 41function Termin_Leeren() 42{ 43 px('.px-news-be').wrap('<form>').closest('form').get(0).reset(); 44 px('.px-news-be').unwrap(); 45 px('[name="px-news-event-id"]').val(0); 46 px('#facebook_link').val(''); 47 px('#px-news-vorschau').html(''); 48 px('[name="px-news-titel"]').focus(); 49 px('.fileContainer').each(function(){ px(this).children('span').html(px(this).children('small').html()); }); 50} 51function Termin_Auslesen(id) 52{ 53 px.ajax( 54 { 55 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 56 cache : false, 57 type : 'POST', 58 dataType : 'JSON', 59 data : 60 { 61 'BEFEHL': 'BEFEHL_termin_auslesen', 62 'id' : id 63 }, 64 success : function(data) 65 { 66 px('#px-news-kalender input[type="checkbox"]').prop('checked', false); 67 for(let name in data) 68 { 69 Formular_Setzen('.px-news-be .left', name, data[name]); 70 } 71 for(let pid in data['news']) px('#px-news-kalender div input[type="checkbox"][value="' + data['news'][pid] + '"]').prop('checked', true); 72 73 px('[name="px-news-event-id"]').val(id); 74 px('#px-news-vorschau').html(data['termin']); 75 px('#facebook_link').val(data['link']); 76 } 77 }); 78} 79function Termin_Liste() 80{ 81 px.ajax( 82 { 83 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 84 cache : false, 85 type : 'POST', 86 dataType : 'HTML', 87 data : 88 { 89 'BEFEHL': 'BEFEHL_termin_liste', 90 }, 91 success : function(data) 92 { 93 px('.px-news-be .right .scrollbox').html(data); 94 } 95 }); 96} 97 98body.ready(function(){ 99 100 body.on('change','.fileContainer input[type="file"]',function(){ 101 let p = px(this).parent(); 102 p.children('span').html(this.value.split('\\')[2] || p.children('small').html()); 103 }); 104 105 body.on('click', '#px-news-speichern', function(){ 106 let data = Formular('.px-news-be', (px('[name="px-news-event-id"]').val() == 0 ? 'BEFEHL_termin_speichern' : 'BEFEHL_termin_bearbeiten')); 107 if(px('#px-news-kalender input[type="checkbox"]:checked').length === 0) Meldung(3, 'Es muss eine ausspielende News-Seite gewählt werden.'); 108 else 109 { 110 px('.px_overlay').fadeIn(150); 111 px.ajax( 112 { 113 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 114 cache : false, 115 processData : false, 116 contentType : false, 117 type : 'POST', 118 dataType : 'JSON', 119 data : data, 120 success : function(data) 121 { 122 Meldung(data[0], data[1]); 123 Termin_Leeren(); 124 Termin_Liste(); 125 px('#facebook_link').val(data[3]); 126 px('.px_overlay').hide(); 127 }, 128 error : function(xhr) 129 { 130 let text = 'Die News konnten nicht gespeichert werden. Bitte erneut versuchen oder den Support informieren.'; 131 if(xhr.responseJSON && xhr.responseJSON[1]) text = xhr.responseJSON[1]; 132 Meldung(3, text); 133 px('.px_overlay').hide(); 134 } 135 }); 136 } 137 }); 138 139 body.on('click', '#px-news-entfernen', function(){ 140 px.ajax( 141 { 142 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 143 cache : false, 144 type : 'POST', 145 dataType : 'JSON', 146 data : 147 { 148 'BEFEHL': 'BEFEHL_termin_löschen', 149 'id' : px('[name="px-news-event-id"]').val(), 150 }, 151 success : function(data) 152 { 153 Meldung(data[0], data[1]); 154 Termin_Leeren(); 155 Termin_Liste(); 156 } 157 }); 158 }); 159 160 body.on('click', '.px-news-be .right .scrollbox .px-news-zeile', function(){ 161 Termin_Auslesen(px(this).data('id')); 162 }); 163 164 body.on('click', '#px-news-filter', function(e){ 165 e.stopPropagation(); 166 px('.px-news-filter-liste').fadeToggle(100); 167 }); 168 169 body.on('click', '#alle-filter', function(){ 170 px('[name="px-news-filter"]').prop('checked', !px('[name="px-news-filter"]').prop('checked')); 171 let filter = []; 172 px('[name="px-news-filter"]').each(function(){ if(px(this).prop('checked') === true) filter.push(px(this).val()); }); 173 px.ajax( 174 { 175 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 176 cache : false, 177 type : 'POST', 178 dataType : 'HTML', 179 data : 180 { 181 'BEFEHL' : 'BEFEHL_termin_filter', 182 'filter' : filter, 183 }, 184 success : function(data) 185 { 186 px('.px-news-be .right .scrollbox').html(data); 187 } 188 }); 189 }); 190 body.on('click', '#px-news-vereinsfilter', function(){ 191 let filter = []; 192 px('[name="px-news-filter"]').each(function(){ if(px(this).prop('checked') === true) filter.push(px(this).val()); }); 193 px.ajax( 194 { 195 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 196 cache : false, 197 type : 'POST', 198 dataType : 'HTML', 199 data : 200 { 201 'BEFEHL' : 'BEFEHL_termin_v_filter', 202 'filter' : filter, 203 }, 204 success : function(data) 205 { 206 px('.px-news-be .right .scrollbox').html(data); 207 } 208 }); 209 }); 210 211 body.on('click', '[name="px-news-filter"]', function(){ 212 let filter = []; 213 px('[name="px-news-filter"]').each(function(){ if(px(this).prop('checked') === true) filter.push(px(this).val()); }); 214 px.ajax( 215 { 216 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 217 cache : false, 218 type : 'POST', 219 dataType : 'HTML', 220 data : 221 { 222 'BEFEHL' : 'BEFEHL_termin_filter', 223 'filter' : filter, 224 }, 225 success : function(data) 226 { 227 px('.px-news-be .right .scrollbox').html(data); 228 } 229 }); 230 }); 231
232 body.on('click', '.px-news-inhalt.be .entferner', function(){ 233 let aid = px(this).data('id'); 234 var tid = px('[name="px-news-event-id"]').val(); 235 px.ajax( 236 { 237 url : '/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.php', 238 cache : false, 239 type : 'POST', 240 dataType : 'JSON', 241 data : 242 { 243 'BEFEHL' : 'BEFEHL_anhang_löschen', 244 'termin_id' : tid, 245 'anhang_id' : aid 246 }, 247 success : function(data) 248 { 249 Meldung(data[0], data[1]); 250 Termin_Auslesen(tid); 251 } 252 }); 253 }); 254 255 body.on('click', '#px-news-neu', function(){ 256 Termin_Leeren(); 257 }); 258 259 body.on('click','.px-news-titel',function(e){ 260 e.stopPropagation(); 261 // px('.px-news-inhalt').not(this).removeClass('aktiv'); 262 px(this).next('.px-news-inhalt').toggleClass('aktiv'); 263 }); 264 body.on('click','.news_archiv b',function(e){ 265 e.stopPropagation(); 266 px(this).parent('.news_archiv').toggleClass('aktiv'); 267 }); 268 body.on('click', '#facebook_link', function(){ px(this).select(); }); 269});
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.