PageSourceSearch

https://www.binb.info/typo3conf/ext/px_erweiterung_news/Classes/Controller/handler.js?5183

js binb.info collected 2026-10-05 10:55:18 UTC 7,587 bytes, 269 lines download raw bytes

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.