Mirror of Quill
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
7.5 KiB

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>Quill Editor</title>
  5. <meta charset="utf-8">
  6. <link rel="pingback" href="https://webmention.io/aaronpk/xmlrpc" />
  7. <link rel="webmention" href="https://webmention.io/aaronpk/webmention" />
  8. <meta name="apple-mobile-web-app-capable" content="yes" />
  9. <!-- standard viewport tag to set the viewport to the device's width
  10. , Android 2.3 devices need this so 100% width works properly and
  11. doesn't allow children to blow up the viewport width-->
  12. <meta name="viewport" content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" />
  13. <!-- width=device-width causes the iPhone 5 to letterbox the app, so
  14. we want to exclude it for iPhone 5 to allow full screen apps -->
  15. <meta name="viewport" content="initial-scale=1.0,user-scalable=no,maximum-scale=1" media="(device-height: 568px)" />
  16. <link rel="stylesheet" href="/editor-files/medium-editor/css/medium-editor.min.css">
  17. <link rel="stylesheet" href="/editor-files/medium-editor/css/themes/default.min.css">
  18. <link rel="stylesheet" href="/editor-files/medium-editor/css/medium-editor-insert-plugin.min.css">
  19. <link rel="stylesheet" href="/editor-files/medium-editor/css/medium-editor-insert-plugin-frontend.min.css">
  20. <link href="/editor-files/font-awesome/css/font-awesome.css" rel="stylesheet">
  21. <script src="/editor-files/jquery-1.11.3.min.js"></script>
  22. <script src="/editor-files/jquery-ui-1.11.4.custom/jquery-ui.min.js"></script>
  23. <script src="/editor-files/jquery.fileupload.js"></script>
  24. <script src="/editor-files/jquery.iframetransport.js"></script>
  25. <script src="/editor-files/handlebars.min.js"></script>
  26. <script src="/editor-files/medium-editor/js/medium-editor.min.js"></script>
  27. <script src="/editor-files/medium-editor/js/medium-editor-insert-plugin.min.js"></script>
  28. <script src="/libs/localforage.js"></script>
  29. <script src="/js/jquery-1.7.1.min.js"></script>
  30. <script src="/libs/tokenfield/bootstrap-tokenfield.min.js"></script>
  31. <link rel="stylesheet" href="/libs/tokenfield/bootstrap-tokenfield.min.css">
  32. <link rel="stylesheet" href="/libs/tokenfield/tokenfield-typeahead.min.css">
  33. <link rel="stylesheet" href="/editor-files/style.css">
  34. <link rel="apple-touch-icon" sizes="57x57" href="/images/quill-icon-57.png">
  35. <link rel="apple-touch-icon" sizes="72x72" href="/images/quill-icon-72.png">
  36. <link rel="apple-touch-icon" sizes="114x114" href="/images/quill-icon-114.png">
  37. <link rel="apple-touch-icon" sizes="144x144" href="/images/quill-icon-144.png">
  38. <link rel="icon" href="/favicon.ico" type="image/x-icon">
  39. <script src="/js/script.js"></script>
  40. <script src="/js/date.js"></script>
  41. <script src="/js/cassis.js"></script>
  42. </head>
  43. <body>
  44. <div class="toolbar">
  45. <div class="toolbar-left">
  46. <span class="item"><a href="/"><img src="/editor-files/quill-logo-36.png" width="36" height="31" class="logo"></a></span>
  47. <?php if($this->user): ?>
  48. <span class="item text"><b><?= display_url($this->user->url) ?></b></span>
  49. <?php endif; ?>
  50. <span class="item text"><span id="draft-status">Draft</span></span>
  51. </div>
  52. <div class="toolbar-right">
  53. <button class="btn" id="publish_btn">Publish <i class="fa fa-caret-down"></i></button>
  54. <button class="btn" id="new_btn">New</button>
  55. </div>
  56. <div class="clear"></div>
  57. </div>
  58. <div class="micropub-html-warning hidden"><div>
  59. <button class="btn btn-default" id="micropub-html-btn">Upgrade me!</button>
  60. <b>Upcoming change!</b>
  61. The Micropub spec now requires HTML content be sent as a nested object, <code>content[html]=&lt;b&gt;example&lt;/b&gt;</code>.
  62. You can <a href="http://indiewebcamp.com/Micropub-brainstorming#HTML_Escaping">read more about the change here</a>.
  63. When you are ready to receive the content as an object, click the button to switch.
  64. </div></div>
  65. <div class="publish-dropdown hidden">
  66. <div class="arrow"></div>
  67. <div class="dropdown-content action-publish">
  68. <div style="float:right"><button class="btn btn-medium" id="publish-confirm">Publish Now</button></div>
  69. <div style="clear:right; margin-bottom: 4px;"></div>
  70. <table id="publish-fields">
  71. <tr>
  72. <td>Tags:</td>
  73. <td><input type="text" class="form-field-small" placeholder="" id="post-tags"></td>
  74. </tr>
  75. <tr>
  76. <td>Slug:</td>
  77. <td><input type="text" class="form-field-small" id="post-slug"></td>
  78. </tr>
  79. <tr>
  80. <td>Status:</td>
  81. <td>
  82. <select id="post-status" class="form-select-small">
  83. <option value="published">Published</option>
  84. <option value="draft">Draft</option>
  85. </select>
  86. <a href="/docs/post-status" class="small hidden" target="_blank" id="published-status-warning">read this first!</a>
  87. </td>
  88. </tr>
  89. <tr>
  90. <td>Syndication:</td>
  91. <td>
  92. <select id="post-syndicate" class="form-select-small">
  93. <option value="no">No</option>
  94. <option value="yes">Yes</option>
  95. </select>
  96. </td>
  97. </tr>
  98. <tr class="form-group">
  99. <td>
  100. <label for="note_syndicate-to"><a href="javascript:reload_syndications()">Reload</a></label></td>
  101. <td id="syndication-container">
  102. <?php
  103. if($this->syndication_targets) {
  104. echo '<ul>';
  105. foreach($this->syndication_targets as $syn) {
  106. echo '<li>'
  107. . '<button data-syndicate-to="'.(isset($syn['uid']) ? htmlspecialchars($syn['uid']) : htmlspecialchars($syn['target'])).'" class="btn btn-default btn-block">'
  108. . ($syn['favicon'] ? '<img src="'.htmlspecialchars($syn['favicon']).'" width="16" height="16"> ' : '')
  109. . htmlspecialchars($syn['target'])
  110. . '</button>'
  111. . '</li>';
  112. }
  113. echo '</ul>';
  114. }
  115. ?>
  116. </td>
  117. </tr>
  118. <tr>
  119. <td>Publish:</td>
  120. <td><input type="text" class="form-field-small" id="post-publish-date" value="now" placeholder="YYYY-MM-DD hh:mm:ss"></td>
  121. </tr>
  122. </table>
  123. <div class="helptext hidden" id="publish-in-progress">
  124. Posting... <!-- TODO replace this with a CSS animated spinner -->
  125. </div>
  126. <div class="helptext hidden" id="publish-success">
  127. <div><a href="" id="publish-success-url">View your post</a></div>
  128. </div>
  129. <div class="helptext hidden" id="publish-error">
  130. <div>Something went wrong! Below is the response from your Micropub endpoint.</div><br>
  131. <pre id="publish-error-debug"></pre>
  132. </div>
  133. </div>
  134. <div class="dropdown-content action-signin hidden">
  135. <div class="helptext">You need to sign in before you can publish! Don't worry, your draft will still be here when you finish signing in.</div>
  136. <input type="url" class="form-field-small" placeholder="yourdomain.com" id="signin-domain">
  137. <button class="btn btn-small" id="signin-btn">Sign In</button>
  138. <div class="helptext small"><a href="/docs">How does this work?</a></div>
  139. </div>
  140. </div>
  141. <div class="container">
  142. <input id="post-name" type="text" value="" placeholder="Title">
  143. <input id="post-description" type="text" value="" placeholder="Description">
  144. <input id="post-image" type="text" value="" placeholder="Banner Image">
  145. <div id="content" class="editable"></div>
  146. </div>
  147. <script src="/editor-files/editor.js"></script>
  148. <?= partial('partials/syndication-js') ?>
  149. </body>
  150. </html>