Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/websdk/static/js/wymeditor/plugins/tidy/jquery.wymeditor.tidy.js
blob: bf30c4cb1c6ead19fc0dc7baffe5c0f9348f5fff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
 * WYMeditor : what you see is What You Mean web-based editor
 * Copyright (c) 2005 - 2009 Jean-Francois Hovinne, http://www.wymeditor.org/
 * Dual licensed under the MIT (MIT-license.txt)
 * and GPL (GPL-license.txt) licenses.
 *
 * For further information visit:
 *        http://www.wymeditor.org/
 *
 * File Name:
 *        jquery.wymeditor.tidy.js
 *        HTML Tidy plugin for WYMeditor
 *
 * File Authors:
 *        Jean-Francois Hovinne (jf.hovinne a-t wymeditor dotorg)
 */

//Extend WYMeditor
WYMeditor.editor.prototype.tidy = function(options) {
  var tidy = new WymTidy(options, this);
  return(tidy);
};

//WymTidy constructor
function WymTidy(options, wym) {

  options = jQuery.extend({

    sUrl:            wym._options.basePath + "plugins/tidy/tidy.php",
    sButtonHtml:     "<li class='wym_tools_tidy'>"
                   + "<a name='CleanUp' href='#'"
                   + " style='background-image:"
                   + " url(" + wym._options.basePath + "plugins/tidy/wand.png)'>"
                   + "Clean up HTML"
                   + "</a></li>",
    
    sButtonSelector: "li.wym_tools_tidy a"
    
  }, options);
  
  this._options = options;
  this._wym = wym;

};

//WymTidy initialization
WymTidy.prototype.init = function() {

  var tidy = this;
            
  jQuery(this._wym._box).find(
    this._wym._options.toolsSelector + this._wym._options.toolsListSelector)
    .append(this._options.sButtonHtml);
  
  //handle click event
  jQuery(this._wym._box).find(this._options.sButtonSelector).click(function() {
    tidy.cleanup();
    return(false);
  });

};

//WymTidy cleanup
WymTidy.prototype.cleanup = function() {

    var wym = this._wym;
    var html = "<html><body>" + wym.xhtml() + "</body></html>";

    jQuery.post(this._options.sUrl, { html: html}, function(data) {

        if(data.length > 0 && data != '0') {
          if(data.indexOf("<?php") == 0) {
            wym.status("Ooops... Is PHP installed?");
          } else {
            wym.html(data);
            wym.status("HTML has been cleaned up.");
          }
        } else {
          wym.status("An error occurred.");
        }
    });
};