PageSourceSearch

https://poxdorf.de/_Resources/Static/Packages/DigiPublica.Platform…/JavaScript/mediaPortal.js?bust=48a50313

js poxdorf.de collected 2026-10-02 21:21:23 UTC 15,935 bytes, 440 lines download raw bytes

1// ==============================================================================
2// mediaPortal.js
3// ==============================================================================
4
5// ------------------------------------------------------------------------------ 
6// openMediaPopup 
7// ------------------------------------------------------------------------------ 
8function openMediaPopup(title) { 
9  jQuery('body').addClass('modal-open');
10  setCloseStatus(true);
11
12  loadingSearchPopup('start');
13
14  jQuery(".modal.media-bibl").show();
15  jQuery('.h4-media-bibl').text(title);
16
17  jQuery('.modal-close').click(function() {
18    jQuery(this).closest('.modal').hide();
19    jQuery('body').removeClass('modal-open');
20  });
21  jQuery('.cancel').click(function() {
22    jQuery(this).closest('.modal').hide();
23    jQuery('body').removeClass('modal-open');
24  });
25  //Clear Search Input
26  jQuery('.report-filter-clear.media, .modal-close, .cancel').click(function(event) { 
27    jQuery(".sendMedia").css({"display": "none"}) ; 
28    jQuery(".result-media").css({"display": "none"}) ; 
29    jQuery(".keyword-filter").val('') ;  
30    jQuery(".result-media").text('') ; 
31  });
32
33  // key enter in field name-filter-off
34  //isEnterClick();
35}
36
37// ------------------------------------------------------------------------------ 
38// stopAction
39// ------------------------------------------------------------------------------  
40function stopAction(event) { 
41  event.preventDefault(); 
42  event.stopPropagation();
43  event.stopImmediatePropagation(); 
44}
45
46// ------------------------------------------------------------------------------ 
47// Close Media Modal
48// schließe das Fenster und gehe in den Media iframe zur Auswahlseite
49// ------------------------------------------------------------------------------ 
50function closeAndClearMedia(thiswindow,iframe) {  
51  jQuery('.neos-footer > a',jQuery(iframe)).click(); //todo
52  jQuery('.neos-breadcrumb > a',jQuery(iframe)).click();   
53  jQuery('.neos-footer > a',jQuery(iframe)).trigger("click");  //todo
54  jQuery('.neos-footer > a',jQuery(iframe)).text("Zurück zur Media Sammlungen");  
55  var iframe = $('body', $('#neos-media')[0].contentWindow.document);
56  jQuery('body').removeClass('modal-open');
57  thiswindow.hide();   
58} 
59
60
61// ------------------------------------------------------------------------------ 
62// Set Button Image
63// der Bereich wird nur einmal hinzugefügt
64// ------------------------------------------------------------------------------ 
65function setButtonImage(iframe) { 
66  
67  // Dokument oder Image
68  if (jQuery(iframe).find('#neos-preview-image').length) {
69    var image = jQuery(iframe).find('#neos-preview-image > a > img').attr('src');  
70    var imagetext = 'Bild';
71    if (image.indexOf("doc") > 0) { 
72      var imagetext = 'Dokument';
73    }
74  } 
75  if(jQuery('#neos-image',jQuery(iframe)).length) {
76    // nicht mehr hinzufügen   
77  } else {
78    jQuery(iframe).find('#neos-preview-image').prepend('<div id="neos-image" class="neos-image">'+imagetext+' auswählen</div>');    
79  }
80
81  // PDF
82  if(jQuery('#neos-image-pdf',jQuery(iframe)).length) {
83    // nicht mehr hinzufügen   
84  } else {
85    jQuery(iframe).find('#neos-preview-pdf').prepend('<div id="neos-image-pdf" class="neos-image">PDF auswählen</div>');    
86  }
87
88  jQuery(iframe).find('.neos-image').css({
89    "font-size": "1.5rem", 
90    "font-weight": "bold",
91    "padding": ".7rem ",
92    "border": "none",
93    "border-radius": "3rem",
94    "color": "#ffffff",
95    "float": "left",
96    "letter-spacing": "normal !important",
97    "display": "block",
98    "background-color": "#34a665",
99    "margin-top": "1rem",
100    "cursor": "pointer",
101    "z-index": 1,
102    "line-height": "1.3",
103    "position":"absolute"
104  }); 
105} 
106
107// ------------------------------------------------------------------------------ 
108// Show Neos Media Bibliothek
109// ------------------------------------------------------------------------------ 
110jQuery('#add-media-bibl').click(function(event) { 
111  openMediaPopup('Media Bibliothek');
112  loadingSearchPopup('stoploading');  
113
114  //FrameBody
115  var iframe = $('body', $('#neos-media')[0].contentWindow.document);
116  jQuery('.sendMedia').addClass('display-no');
117
118  //Remove Media Menue  
119  $(iframe).ready(function() {
120    jQuery('#neos-top-bar',jQuery(iframe)).remove();  
121    jQuery('.neos-menu',jQuery(iframe)).remove();  
122    jQuery('.neos-breadcrumb',jQuery(iframe)).remove(); 
123    // Bei Klick auf Thumbnail speichert die URL des Thumbnails in localStorage Wichtig hier beim 1x laden
124    jQuery(iframe).on('click', '.neos-thumbnail', function(event) {
125     var thumbnailSrc = jQuery(this).find('.neos-img-container img').attr('src'); 
126     localStorage.setItem('thumbnailSrc',thumbnailSrc);  
127   });
128  });
129  
130  jQuery('#neos-media').on('load', function() { 
131    var iframe = jQuery("#neos-media").contents(); 
132
133    //Entfernen der Bearbeitungs Button von Neos ausser Abbrechen
134    jQuery('.neos-footer > a',jQuery(iframe)).text("Zurück zur Media Sammlungen");  
135    jQuery('.neos-breadcrumb',jQuery(iframe)).remove();  
136    jQuery('#neos-top-bar',jQuery(iframe)).remove();  
137    jQuery('.neos-menu',jQuery(iframe)).remove();  
138    jQuery('.neos-button',jQuery(iframe))
139      .not('.neos-action-cancel',jQuery(iframe)) 
140      .not('#save',jQuery(iframe))     
141      .remove();  
142    
143    // Bei Klick auf Thumbnail speichert die URL des Thumbnails in localStorage  
144    jQuery(iframe).on('click', '.neos-thumbnail', function(event) {
145     var thumbnailSrc = jQuery(this).find('.neos-img-container img').attr('src'); 
146      localStorage.setItem('thumbnailSrc',thumbnailSrc);  
147    });
148
149    // Button zum Auswählen des Bildes auf Bild-Detailseite einfügen
150    setButtonImage(iframe);
151    
152    // Bei Klick auf Button "Bild auswählen" speichert die URL des großen Bildes in localStorage
153    jQuery(iframe).on('click', '#neos-image, #neos-image-pdf', function(event) {    
154      var image = jQuery(iframe).find('#neos-preview-image > a > img').attr('src');  
155      var title = jQuery(iframe).find('#title').val();    
156      var caption = jQuery(iframe).find('#caption').val();   
157      var copyright = jQuery(iframe).find('#copyrightnotice').val();   
158      
159      if (jQuery(iframe).find('#neos-preview-pdf').length) {
160        var pdf = jQuery(iframe).find('#neos-preview-pdf').data('asset-preview-url'); 
161        var image = pdf;
162      }
163      
164      if (image.indexOf("doc") > 0) { 
165        var image = jQuery(iframe).find('#neos-preview-image > a ').attr('href'); 
166      }
167
168      if (image.indexOf("mov") > 0 || image.indexOf("mp4") > 0) { 
169        var image = jQuery(iframe).find('#neos-preview-image > a ').attr('href'); 
170      }
171
172      if (typeof image  == 'undefined') { var image = ''; }
173      if (typeof pdf    == 'undefined') { var pdf = ''; } 
174
175      //localStorage.setItem('image',image);
176      //localStorage.setItem('title',title);
177      //localStorage.setItem('pdf',pdf);
178      
179      // Übernehmen der Media Daten in die Input Felder
180      jQuery("#add-media").triggerHandler("click");  
181      var thumbnailSrc = localStorage.getItem('thumbnailSrc'); 
182      var idvalue =  jQuery('.pos-add-media').last().data('idvalue') -1; 
183      jQuery('.'+idvalue+'-media-mediaName').val(title);
184      jQuery('[name='+idvalue+'-media-mediaDescription]').val(caption);
185      jQuery('[name='+idvalue+'-media-mediaAltText]').val(caption);
186      jQuery('[name='+idvalue+'-media-url]').val(image);
187      jQuery('[name='+idvalue+'-media-previewUrl]').val(thumbnailSrc);
188      jQuery('[name='+idvalue+'-media-copyright]').val(copyright);
189    
190      //Push App
191      jQuery('[name=push-imageURL]').val(image);
192
193      // Schließen des Fensters
194      closeAndClearMedia(jQuery('.media-bibl'),iframe);
195
196      // Stop Action
197      stopAction(event); 
198    });
199  });
200
201});
202
203// -----------------------------------------------------------------------------
204// add Media - hinzufügen von Media (Bilder, Documente,)
205// ------------------------------------------------------------------------------ 
206jQuery('#add-media').click(function(event) { 
207  var iddiv  = '#' + jQuery('.pos-add-media').data('idmedia'); 
208  var idvalue =  jQuery('.pos-add-media').last().data('idvalue'); 
209  var option =  jQuery('.pos-add-media').first().data('select'); 
210  var lang =  jQuery("#selection-language").val();
211  var idnew   = idvalue + 1; 
212
213  if (lang == 'en') {
214    neuesMedia = 'New Media';
215    bildid = 'New Media';
216    bildname = 'medianame';
217    bilddisc = 'mediadescription';
218    copyright = 'Copyright';
219    bildrole = 'Role';
220    bildedit = 'changeable'; 
221    alttext = 'mediaalttext';
222    ja = 'yes' ;
223    nein = 'no' ;
224  } else if (lang == 'fr') {
225    neuesMedia = 'New Media';
226    bildid = 'Nouvelle Media';
227    bildname = 'Nom';
228    bilddisc = 'Description';
229    copyright = 'Copyright';
230    bildrole = 'Rôle';
231    alttext = 'mediaalttext';
232    bildedit = 'changeant';
233    ja = 'oui' ;
234    nein = 'non' ;
235  } else {
236    neuesMedia = 'Neues Medium';
237    bildid = 'Neues Medium';
238    bildname = 'Name';
239    bilddisc = 'Beschreibung';
240    alttext = 'Alternativ Text';
241    copyright = 'Copyright';
242    bildrole = 'Rolle';
243    bildedit = 'änderbar';
244    ja = 'ja' ;
245    nein = 'nein' ;
246  }
247  jQuery(iddiv)
248    .css({"display": "block"}); 
249
250  divh4 = jQuery('<h4 class="clear-both data-container-header" style="margin-bottom:20px;" />') 
251    .attr({'name':idnew+'-media-h4','id':idnew+'-media-h4'}) 
252    .text(neuesMedia)   
253    .appendTo(iddiv);
254
255  //del total
256  var totaldel = jQuery('<span class="icon-minus details-button-no del-media"/>')
257    .data('id',idnew)
258   // .text('-')
259    .appendTo(divh4); 
260  svg = jQuery(setIcon('minus')).appendTo(totaldel);     
261
262  // ---- Bildid 
263  divlabel = jQuery('<div class="floatLeft div-form-label display-no" style="clear:both;" />') 
264    .addClass('pos-add-media')
265    .data('idvalue',idnew )
266    .appendTo(iddiv);
267  labelID = jQuery('<label><span></span></label> ')
268    .attr('id','label_'+idnew+'-media-mediaId')  
269    .text(bildid) 
270    .appendTo(divlabel);
271  divinput = jQuery('<div class="display-no"/>')
272    .appendTo(iddiv);
273  inputID = jQuery('<input type="text" />') 
274    .attr({'type':'text','name':idnew+'-media-mediaId','readonly':'true'})    
275    .val(0) 
276    .appendTo(divinput);
277
278  // ---- Name
279  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
280    .appendTo(iddiv);
281  labelID = jQuery('<label><span></span></label> ')
282    .attr('id','label_'+idnew+'-media-mediaName')  
283    .text(bildname) 
284    .appendTo(divlabel);   
285  divinput = jQuery('<div />')
286    .appendTo(iddiv);
287  inputID = jQuery('<input type="text" />') 
288    .attr({'type':'text','name':idnew+'-media-mediaName','class':idnew+'-media-mediaName','required':'required'})
289    .appendTo(divinput)
290    .focus();
291
292  // ---- Beschreibung
293  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
294    .appendTo(iddiv);
295  labelID = jQuery('<label><span></span></label> ')
296    .attr('id','label_'+idnew+'-media-mediaDescription')  
297    .text(bilddisc) 
298    .appendTo(divlabel);
299  divinput = jQuery('<div />')
300    .appendTo(iddiv);
301  inputID = jQuery('<input type="text" />') 
302    .attr({'type':'text','name':idnew+'-media-mediaDescription'})
303    .appendTo(divinput);
304
305  // ---- Alternativ Text
306  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
307    .appendTo(iddiv);
308  labelID = jQuery('<label><span></span></label> ')
309    .attr('id','label_'+idnew+'-media-mediaAltText')  
310    .text(alttext) 
311    .appendTo(divlabel);
312  divinput = jQuery('<div />')
313    .appendTo(iddiv);
314  inputID = jQuery('<input type="text" />') 
315    .attr({'type':'text','name':idnew+'-media-mediaAltText'})
316    .appendTo(divinput);
317
318  // ---- Url
319  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
320    .appendTo(iddiv);
321  labelID = jQuery('<label><span></span></label> ')
322    .attr('id','label_'+idnew+'-media-url')  
323    .text('Url') 
324    .appendTo(divlabel);
325  divinput = jQuery('<div />')
326    .appendTo(iddiv);
327  inputID = jQuery('<input type="text" />') 
328    .attr({'type':'url','name':idnew+'-media-url'})
329    .appendTo(divinput);
330
331  // ---- Vorschau Url
332  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
333    .appendTo(iddiv);
334  labelID = jQuery('<label><span></span></label> ')
335    .attr('id','label_'+idnew+'-media-previewUrl')  
336    .text('Vorschau Url') 
337    .appendTo(divlabel);
338  divinput = jQuery('<div />')
339    .appendTo(iddiv);
340  inputID = jQuery('<input  type="text" />') 
341    .attr({'type':'url','name':idnew+'-media-previewUrl'})
342    .appendTo(divinput);
343    
344  // ---- CopyRight
345  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
346  .appendTo(iddiv);
347  labelID = jQuery('<label><span></span></label> ')
348    .attr('id','label_'+idnew+'-media-copyright')  
349    .text(copyright) 
350    .appendTo(divlabel);
351  divinput = jQuery('<div />')
352    .appendTo(iddiv);
353  inputID = jQuery('<input type="text" />') 
354    .attr({'type':'text','name':idnew+'-media-copyright'})
355    .appendTo(divinput);
356
357  // ---- Role
358  divlabel = jQuery('<div class="floatLeft div-form-label" style="clear:both;" />') 
359    .appendTo(iddiv);
360  labelID = jQuery('<label><span></span></label> ')
361    .attr('id','label_'+idnew+'-media-mediaRoleId')  
362    .text(bildrole) 
363    .appendTo(divlabel);
364  divinput = jQuery('<div />')
365    .appendTo(iddiv);
366  inputID = jQuery('<select  />') 
367    .attr({'type':'text','name':idnew+'-media-mediaRoleId','class':idnew+'-media-mediaRoleId','required':'required'})
368    .addClass('pos-add-media')
369    .data({'select':option,'idvalue':idnew+1})
370    .append(option) 
371    .appendTo(divinput); 
372
373  jQuery('.'+idnew+'-media-mediaRoleId').find('option:selected').removeAttr('selected');  
374  jQuery('.'+idnew+'-media-mediaRoleId').find('option:disabled').removeAttr('disabled');
375  jQuery('.'+idnew+'-media-mediaRoleId option').first().attr('selected','selected');
376 
377  var idshow = idnew + '-media-'; 
378  var idlabel = 'label_' + idshow; 
379  jQuery('[id^='+idshow+']').toggle('fast');
380  jQuery('[name^='+idshow+']').toggle('fast');
381  jQuery('[id^='+idlabel+']').toggle('fast');
382
383  jQuery('.'+idnew+'-media-mediaName').focus();
384
385  //Function  
386  jQuery('.del-media').click(function(event) { 
387    var id = jQuery(this).data('id'); 
388    delMedia(this);
389    event.stopPropagation();
390    event.stopImmediatePropagation();   
391  });
392
393});
394
395// -----------------------------------------------------------------------------
396// show Details Media
397// ------------------------------------------------------
398jQuery('.show-details-media-button').click(function(event) {     
399  var id = jQuery(this).data('id') + '-media-'; 
400  var idlabel = 'label_' + id;
401  jQuery('[id^='+id+']').toggle('slow','linear');
402  jQuery('[id^='+idlabel+']').toggle('slow','linear');
403  event.stopPropagation();
404  event.stopImmediatePropagation();       
405});
406
407// -----------------------------------------------------------------------------
408// delete Media
409// ------------------------------------------------------------------------------ 
410jQuery('.del-media').click(function(event) { 
411  delMedia(this);
412  event.stopPropagation();
413  event.stopImmediatePropagation();  
414});
415
416function delMedia(row) { 
417  var id = jQuery(row).data('id'); 
418  var r = confirm('Wollen Sie diese Media mit der Nummer ' + id + ' wirklich löschen?\nDo they really want to delete this media');
419  if (r == true) {   
420    //bei bestehenden Medias
421    var mediabox =  id + '-mediaremove'; 
422    jQuery('[id^='+mediabox+']').remove();
423
424    //bei neu hinzugefügten Elementen
425    var elements = id + '-media'; 
426    var labels = 'label_' + id + '-media'; 
427    jQuery('[id^='+elements+']').remove();
428    jQuery('[name^='+elements+']'+'+ label').remove();
429    jQuery('[name^='+elements+']').remove();
430    jQuery('[id^='+labels+']').remove();
431
432    jQuery(this).remove();
433    jQuery(row).remove();    
434  }   
435}
436
437
438
439
440

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.