sidonath (owner)

Revisions

  • 6a6cf5 sidonath Fri Jan 30 14:36:38 -0800 2009
  • c9ad7b sidonath Fri Jan 30 14:28:58 -0800 2009
  • e94796 sidonath Fri Jan 30 14:28:01 -0800 2009
gist: 55312 Download_button fork
public
Public Clone URL: git://gist.github.com/55312.git
Embed All Files: show embed
about-me-preview.user.js #
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
// ==UserScript==
// @name last.fm About Me Preview
// @namespace http://z3c.info/
// @description Displays the Preview button when editing "About You" section in user settings
// @include http://www.last.fm/settings
// @include http://www.lastfm*/settings
// ==/UserScript==
 
$ = unsafeWindow.$;
$$ = unsafeWindow.$$;
uwd = unsafeWindow.document;
 
var Preview = {
  request: function (previewText) {
    this.previewButtonText = previewText;
    var tac = $$('textarea[name="bio"]')[0].value;
 
    GM_xmlhttpRequest({
      method: "POST",
      url: 'http://' + window.location.hostname + '/ajax/renderarticle/',
      headers: {
        "User-Agent": "Greasemokey script",
        "Accept": "text/monkey,text/xml",
        "Content-Type": 'application/x-www-form-urlencoded'
        },
      data: 'content=' + encodeURIComponent(tac),
      onload: Preview.onLoad
    });
  },
 
  onLoad: function (details) {
    Preview.display(details.responseText);
    $('editorPreview').disabled = false;
    $('editorPreview').value = Preview.previewButtonText;
  },
 
  display: function (preview) {
    $('editorPreviewPane').update( preview);
  }
};
 
var Handle = {
  editorPreview: {
    click: function (e) {
      var previewText = $('editorPreview').value
 
      setTimeout(function () {
        Preview.request(previewText);
      }, 0);
 
      $('editorPreview').disabled = true;
      $('editorPreview').value = "Loa... wait for it... ding...";
      e.stop();
    }
  }
};
 
$$("textarea[name='bio']")[0]
  .up() // td
    .insert(
      uwd.createElement('p')
        .insert(
          uwd.createElement('input')
            .writeAttribute('id', 'editorPreview')
            .writeAttribute('type', 'button')
            .writeAttribute('value', 'Preview')
        ))
  .up()
  .next()
    .insert({
      after: uwd.createElement('tr')
        .insert(uwd.createElement('td')
          .addClassName("label")
          .insert('<label for="blah">Preview</label>')
        )
        .insert(uwd.createElement('td')
          .addClassName("element")
          .insert(uwd.createElement('div')
            .writeAttribute('id', 'editorPreviewContainer')
            .insert(uwd.createElement('div')
              .writeAttribute('id', 'editorPreviewPane')
              .setStyle({
                'font-size': '10px',
                width: '300px',
                padding: '15px',
                background: 'url(http://cdn.last.fm/flatness/grids/fiflufi_right_top_gradient.5.png) right bottom transparent'
              })
            )
          )
        )
      });
 
$('editorPreview')
  .observe("click", Handle.editorPreview.click, false)