PageSourceSearch

https://machilly.fr/plugins-dist/porte_plume/javascript/jquery.previsu_spip.js?1788416878

js machilly.fr collected 2026-09-25 04:15:38 UTC 5,551 bytes, 169 lines download raw bytes

1;(function($) {
2	$.fn.previsu_spip = function(settings) {
3		var options;
4
5		options = {
6			previewParserPath:	'' ,
7			previewParserVar:	'data',
8			textEditer:	'Editer',
9			textVoir:	'Voir',
10			textFullScreen: 'Plein écran'
11		};
12		$.extend(options, settings);
13
14		return this.each(function() {
15
16			var $$, textarea, tabs, preview;
17			$$ = $(this);
18			textarea = this;
19
20			// init and build previsu buttons
21			function init() {
22				$$.addClass("pp_previsualisation");
23				
24				// s'il n'y a pas de barre d'outil, mais qu'on demande une previsu,
25				// insérer une barre d'outil vide.
26				if (! $$.parent().has('.markItUpContainer').length) {
27					$$.barre_outils('vide');
28				}
29				var mark = $$.parent();
30
31
32				tabs = $('<div class="markItUpTabs"></div>').prependTo(mark);
33				$(tabs).append(
34					'<a href="#fullscreen" class="fullscreen">' + options.textFullScreen + '</a>' +
35					'<a href="#previsuVoir" class="previsuVoir">' + options.textVoir + '</a>' +
36					'<a href="#previsuEditer" class="previsuEditer on">' + options.textEditer + '</a>'
37				);
38				
39				preview = $('<div class="markItUpPreview"></div>').insertAfter(mark.find('.markItUpHeader'));
40				preview.hide();
41
42				var is_full_screen = false;
43
44				var objet = mark.parents('.formulaire_spip')[0].className.match(/formulaire_editer_(\w+)/);
45				objet = (objet ? objet[1] : '');
46				var champ = mark.parents('.editer')[0].className.match(/editer_(\w+)/);
47				champ = (champ ? champ[1].toUpperCase() : '');
48				var textarea = mark.find('textarea.pp_previsualisation');
49				var preview = mark.find('.markItUpPreview'); 
50				var dir = textarea.attr('dir');
51				if(dir){
52					preview.attr('dir',dir);
53				}
54
55				tabs.find('.fullscreen').click(function(){
56					// On commence par garder en mémoire la valeur d'origine de la taille du champ
57					if (!mark.is('.fullscreen')) {
58						textarea.data('height-origin', textarea.css('height'));
59					}
60					
61					mark.toggleClass('fullscreen');
62					
63					// Si on vient de passer en fullscreen
64					if (mark.is('.fullscreen')){
65						$('body').addClass('markitup-fullscreen');
66						is_full_screen = true;
67						// afficher les boutons de la barre s'ils étaient masqués (cf prévisu)
68						mark.find('.markItUpHeader a').show();
69						if (!mark.is('.livepreview')){
70							var original_texte="";
71							
72							function refresh_preview(){
73								var texte = textarea.val();
74								if (original_texte == texte){
75									return;
76								}
77								renderPreview(preview.addClass('ajaxLoad'),texte,champ,objet);
78								original_texte = texte;
79							}
80							
81							var timerPreview=null;
82							mark.addClass('livepreview').find('.markItUpEditor').on('keyup click change focus refreshpreview',function(e){
83								if (is_full_screen){
84									if (timerPreview) clearTimeout(timerPreview);
85									timerPreview = setTimeout(refresh_preview,500);
86								}
87							});
88							
89							$(window).on('keyup',function(e){
90								if (is_full_screen) {
91									// Touche Echap pour sortir du mode fullscreen
92									if (e.type=='keyup' && e.keyCode==27 && !markitup_prompt){
93										mark.removeClass('fullscreen');
94										$('body').removeClass('markitup-fullscreen');
95										// On remet la taille d'origine
96										textarea.css('height', textarea.data('height-origin'));
97										is_full_screen = false;
98									}
99								}
100							});
101						}
102						mark.find('.markItUpEditor').trigger('refreshpreview');
103					}
104					// Si on sort du fullscreen
105					else {
106						$('body').removeClass('markitup-fullscreen');
107						// On remet la taille d'origine
108						textarea.css('height', textarea.data('height-origin'));
109						// masquer les boutons de la barre s'ils étaient masqués avant le plein écran (cf prévisu)
110						if ($(this).next().hasClass('on')) {
111							mark.find('.markItUpHeader a').hide();
112						}
113						is_full_screen = false;
114					}
115					
116					return false;
117				});
118
119				tabs.find('.previsuVoir').click(function(){
120					preview.height(
121						  mark.find('.markItUpEditor').height()
122						+ mark.find('.markItUpFooter').height()
123					);
124
125					mark.find('.markItUpHeader a,.markItUpEditor,.markItUpFooter').hide();
126					$(this).addClass('on').next().removeClass('on');
127					renderPreview(
128						preview.show().addClass('ajaxLoad'),
129						mark.find('textarea.pp_previsualisation').val(),
130						champ,
131						objet,
132						false
133					);
134
135					return false;
136				});
137				tabs.find('.previsuEditer').click(function(){
138					mark.find('.markItUpPreview').hide();
139					mark.find('.markItUpHeader a,.markItUpEditor,.markItUpFooter').show();
140					$(this).addClass('on').prev().removeClass('on');
141					
142					return false;
143				});
144			}
145
146			function renderPreview(node, val, champ, objet, async) {
147				if (options.previewParserPath !== '') {
148					$.ajax( {
149						type: 'POST',
150						async: typeof (async)=="undefined"?true:async,
151						url: options.previewParserPath,
152						data: 'champ='+champ
153							+'&objet='+objet
154							+'&' + options.previewParserVar+'='+encodeURIComponent(val),
155						success: function(data) {
156							node.html(data).removeClass('ajaxLoad');
157							//ouvre un nouvel onglet lorsqu'on clique sur un lien dans la prévisualisation
158							$("a",node).attr("target","blank");
159							// désactiver tous les éléments de formulaires
160							$(":input",node).attr("disabled","disabled");
161						}
162					} );
163				}
164			}
165	
166			init();
167		});
168	};
169})(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.