Blame view

sources/apps/ownpad_lite/js/etherpad.js 3.24 KB
42e4f8d60   Kload   add all apps
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  (function( $ ){
  
    $.fn.pad = function( options ) {
      var settings = {
        'host'              : 'http://beta.etherpad.org',
        'baseUrl'           : '/p/',
        'showControls'      : false,
        'showChat'          : false,
        'showLineNumbers'   : false,
        'userName'          : 'unnamed',
        'useMonospaceFont'  : false,
        'noColors'          : false,
        'hideQRCode'        : false,
        'width'             : 100,
        'height'            : 100,
        'border'            : 0,
        'borderStyle'       : 'solid',
        'toggleTextOn'      : 'Disable Rich-text',
        'toggleTextOff'     : 'Enable Rich-text'
      };
  
      var $self = this;
      if (!$self.length) return;
      if (!$self.attr('id')) throw new Error('No "id" attribute');
  
      var useValue = $self[0].tagName.toLowerCase() == 'textarea';
      var selfId = $self.attr('id');
      var epframeId = 'epframe'+ selfId;
      // This writes a new frame if required
      if ( !options.getContents ) {
        if ( options ) {
          $.extend( settings, options );
        }
  
        var iFrameLink = '<iframe id="'+epframeId;
            iFrameLink = iFrameLink +'" name="'+epframeId;
            iFrameLink = iFrameLink +'" src="'+settings.host+settings.baseUrl+settings.padId;
            iFrameLink = iFrameLink + '?showControls='+settings.showControls;
            iFrameLink = iFrameLink + '&showChat='+settings.showChat;
            iFrameLink = iFrameLink + '&showLineNumbers='+settings.showLineNumbers;
            iFrameLink = iFrameLink + '&useMonospaceFont='+settings.useMonospaceFont;
            iFrameLink = iFrameLink + '&userName=' + settings.userName;
            iFrameLink = iFrameLink + '&noColors=' + settings.noColors;
            iFrameLink = iFrameLink + '&hideQRCode=' + settings.hideQRCode;
            iFrameLink = iFrameLink +'" style="border:'+settings.border;
            iFrameLink = iFrameLink +'; border-style:'+settings.borderStyle;
  //          iFrameLink = iFrameLink +'; width:'+settings.width;
  //          iFrameLink = iFrameLink +'; height:'+settings.height;
            iFrameLink = iFrameLink +';" width="'+ '100%';//settings.width;
            iFrameLink = iFrameLink +'" height="'+ settings.height;
            iFrameLink = iFrameLink +'"></iframe>';
  
  
        var $iFrameLink = $(iFrameLink);
  
        if (useValue) {
          var $toggleLink = $('<a href="#'+ selfId +'">'+ settings.toggleTextOn +'</a>').click(function(){
            var $this = $(this);
            $this.toggleClass('active');
            if ($this.hasClass('active')) $this.text(settings.toggleTextOff);
            $self.pad({getContents: true});
            return false;
          });
          $self
            .hide()
            .after($toggleLink)
            .after($iFrameLink)
          ;
        }
        else {
          $self.html(iFrameLink);
        }
      }
  
      // This reads the etherpad contents if required
      else {
        var frameUrl = $('#'+ epframeId).attr('src').split('?')[0];
        var contentsUrl = frameUrl + "/export/html";
  
        // perform an ajax call on contentsUrl and write it to the parent
        $.get(contentsUrl, function(data) {
  
          if (useValue) {
            $self.val(data).show();
          }
          else {
            $self.html(data);
          }
  
          $('#'+ epframeId).remove();
        });
      }
  
  
      return $self;
    };
  })( jQuery );