--- /dev/null
+;(function($) {\r
+ $.fn.previsu_spip = function(settings) {\r
+ var options;\r
+\r
+ options = {\r
+ previewParserPath: '' ,\r
+ previewParserVar: 'data',\r
+ textEditer: 'Editer',\r
+ textVoir: 'Voir'\r
+ };\r
+ $.extend(options, settings);\r
+\r
+ return this.each(function() {\r
+ var $$, textarea, tabs, preview;\r
+ $$ = $(this);\r
+ textarea = this;\r
+\r
+ // init and build previsu buttons\r
+ function init() {\r
+ $$.addClass("pp_previsualisation");\r
+ tabs = $('<div class="markItUpTabs"></div>').prependTo($$.parent());\r
+ $(tabs).append(\r
+ '<a href="#previsuVoir" class="previsuVoir">' + options.textVoir + '</a>' +\r
+ '<a href="#previsuEditer" class="previsuEditer on">' + options.textEditer + '</a>'\r
+ );\r
+ \r
+ preview = $('<div class="markItUpPreview"></div>').insertAfter(tabs);\r
+ preview.hide();\r
+ \r
+ $('.previsuVoir').click(function(){\r
+ mark = $(this).parent().parent();\r
+ objet = mark.parents('.formulaire_spip')[0].className.match(/formulaire_editer_(\w+)/);\r
+ champ = mark.parents('li')[0].className.match(/editer_(\w+)/);\r
+ $(mark).find('.markItUpPreview').height(\r
+ $(mark).find('.markItUpHeader').height()\r
+ + $(mark).find('.markItUpEditor').height()\r
+ + $(mark).find('.markItUpFooter').height()\r
+ );\r
+ $(mark).find('.markItUpHeader').hide();\r
+ $(mark).find('.markItUpEditor').hide();\r
+ $(mark).find('.markItUpFooter').hide();\r
+ $(this).addClass('on').next().removeClass('on');\r
+ $(mark).find('.markItUpPreview').show()\r
+ .addClass('ajaxLoad')\r
+ .html(renderPreview(\r
+ $(mark).find('textarea.pp_previsualisation').val(),\r
+ champ[1].toUpperCase(),\r
+ objet[1])\r
+ )\r
+ .removeClass('ajaxLoad');\r
+ return false;\r
+ });\r
+ $('.previsuEditer').click(function(){\r
+ mark = $(this).parent().parent();\r
+ $(mark).find('.markItUpPreview').hide();\r
+ $(mark).find('.markItUpHeader').show();\r
+ $(mark).find('.markItUpEditor').show();\r
+ $(mark).find('.markItUpFooter').show();\r
+ $(this).addClass('on').prev().removeClass('on');\r
+ return false;\r
+ });\r
+ }\r
+\r
+\r
+ function renderPreview(val, champ, objet) { \r
+ var phtml;\r
+ if (options.previewParserPath !== '') {\r
+ $.ajax( {\r
+ type: 'POST',\r
+ async: false,\r
+ url: options.previewParserPath,\r
+ data: 'champ='+champ\r
+ +'&objet='+objet\r
+ +'&' + options.previewParserVar+'='+encodeURIComponent(val),\r
+ success: function(data) {\r
+ phtml = data; \r
+ }\r
+ } );\r
+ }\r
+ return phtml;\r
+ }\r
+ \r
+ init();\r
+ });\r
+ };\r
+})(jQuery);\r