Rich Redmine Wiki Editor

nothing to write

当前为 2015-02-13 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Rich Redmine Wiki Editor
  3. // @namespace d.hatena.ne.jp/den8/
  4. // @version 1.0.4
  5. // @description nothing to write
  6. // @author k.bigwheel
  7. // @match *://*/*/edit
  8. // @grant none
  9. // @require http://code.jquery.com/jquery-2.1.3.min.js
  10. // @licence GPLv2
  11. // ==/UserScript==
  12.  
  13. function moveEditor(parentDiv) {
  14. var editorFrame = $("<div></div>");
  15. var editor = $("form.edit_content#wiki_form");
  16. editor.detach();
  17. editorFrame.append(editor);
  18. editorFrame.css("width", "50%");
  19. editorFrame.css("float", "left");
  20. parentDiv.append(editorFrame);
  21. }
  22.  
  23. function movePreview(parentDiv) {
  24. var preview = $("div#preview");
  25. preview.detach();
  26. preview.css("width", "50%");
  27. preview.css("float", "right");
  28. preview.css("overflow", "scroll");
  29. preview.css("height", "600px");
  30. preview.css("resize", "vertical");
  31. parentDiv.append(preview);
  32. }
  33.  
  34. function renderPreview() {
  35. $("form.edit_content>p>a").click();
  36. }
  37.  
  38. $(document).ready(function() {
  39. if ($('meta[name="description"]').attr("content") == "Redmine") {
  40. var newFrame = $("<div></div>");
  41. $("div#content h2").after(newFrame);
  42. moveEditor(newFrame);
  43. movePreview(newFrame);
  44. // http://memocarilog.info/jquery/7203 ここで言及されてるideom
  45. // 本当は直近でリクエストを出した直後の場合、出したリクエストがまだ帰ってきていない場合、
  46. // リクエストが帰ってきた直後の場合などはリクエストを出さないようにしたほうがRedMineへの負荷は下がるが
  47. // そこまでするの面倒。それ用のプラグインかライブラリが間違いなくあるはずなのでそれを使う。
  48. var timer = false;
  49. $("textarea#content_text").keyup(function() {
  50. if (timer !== false)
  51. clearTimeout(timer);
  52. timer = setTimeout(renderPreview, 1000);
  53. });
  54. renderPreview(); // 最初から描画しておく
  55. }
  56. });