index.mustache.html 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Web Sandbox</title>
  5. <link rel="stylesheet" href="/css/normalize.css">
  6. <link rel="stylesheet" href="/css/main.css">
  7. {{#testMode}}<link rel="stylesheet" href="/css/qunit-2.4.1.css">{{/testMode}}
  8. <link rel="stylesheet" href="/css/vendor/pure-grids-min.css">
  9. <link rel="stylesheet" href="/css/vendor/pure-grids-responsive-min.css">
  10. <link rel="stylesheet" href="/css/styles.css">
  11. <style type="text/css" media="screen">
  12. </style>
  13. </head>
  14. <body>
  15. <div class="panel-container">
  16. <div class="panel-left">
  17. <div id="navbar">
  18. <button id="menu-btn" class="btn icon-menu"></button>
  19. <a id="nav-back-home" href="/">Web Sandbox</a>
  20. {{#testMode}}<a id="test-reload-btn" href="/?testing=1" style="float:right;"><button class="btn icon-loop2"></button></a>{{/testMode}}
  21. </div>
  22. <div id="nav-menus">
  23. <div id="menu-repo" class="pure-g">
  24. <div class="pure-u-1">
  25. <span class="cat-title">Collections d'exemples</span>
  26. <ul class="nav-menu">{{#menuRepo}}
  27. <li><a href="/{{slug}}">{{title}}</a></li>{{/menuRepo}}
  28. </ul>
  29. </div>
  30. </div>
  31. <div id="menu-example" class="pure-g nav-menu">{{#menuExample}}
  32. <div class="pure-u-1 pure-u-md-1-2">
  33. <span class="cat-title">{{category.title}}</span>
  34. <ul data-id="{{category.slug}}">{{#examples}}
  35. <li><a href="/{{{slug}}}">{{title}}</a></li>{{/examples}}</ul>
  36. </div>{{/menuExample}}</div>
  37. </div>
  38. <div id="notification" class="alert-box"></div>
  39. <div class="panel-inner">
  40. {{#errorMessage}}
  41. <div id="server-alert" class="alert-box error">{{errorMessage}}</div>
  42. {{/errorMessage}}
  43. <div class="details-div">
  44. <section id="details-repo" class="inline-block">
  45. {{#repo}}
  46. <strong>{{_.collection}} </strong><span>{{title}}</span>
  47. {{/repo}}
  48. </section>
  49. <section id="add-repo" class="inline-block">
  50. <button class="add-btn inline-block h-collapsed fast in"><span class="icon-plus rounded"></span></button>
  51. <form class="inline-block h-collapsed">
  52. <input type="text" name="title" class="input-sm" value="" placeholder="{{_.collectionName}}" required />
  53. <button type="button" class="icon-cross rounded"></button><!--
  54. --><button type="submit" class="icon-checkmark rounded"></button>
  55. </form>
  56. </section>
  57. </div>
  58. <div>
  59. <section id="details-example" class="inline-block">
  60. {{#example}}
  61. <strong>{{_.example}} </strong><span>{{title}}</span>
  62. {{/example}}
  63. </section>
  64. <section id="add-example" class="inline-block">
  65. <button class="add-btn inline-block h-collapsed fast{{#repo}} in{{/repo}}"><span class="icon-plus rounded"></span></button>
  66. <form class="inline-block h-collapsed">
  67. <input type="text" name="title" class="input-sm" value="" placeholder="{{_.exampleName}}" required />
  68. <button type="button" id="add-example-cancel" class="icon-cross rounded red"></button><!--
  69. --><button type="submit" id="add-example-save" class="icon-checkmark rounded green"></button>
  70. </form>
  71. </section>
  72. </div>
  73. <!-- <button id="save-changes" class="icon-cloud-upload green"></button> -->
  74. </div>
  75. <div id="editor-wrapper"{{^showEditor}} style="display: none";{{/showEditor}}>
  76. <ul id="tabs">{{#files}}
  77. <li class="tab-{{type}}" data-type="{{type}}">{{name}}</li>
  78. {{/files}}
  79. <li id="add-file"><button class="add-btn inline-block h-collapsed fast{{#repo}} in{{/repo}}">+</button>
  80. <form class="inline-block h-collapsed">
  81. <input type="text" name="title" class="input-xs input-light-border" value="" placeholder="{{_.fileNameWithExt}}" required />
  82. <button type="button" id="add-example-cancel" class="icon-cross rounded red"></button><!--
  83. --><button type="submit" id="add-example-save" class="icon-checkmark rounded green"></button>
  84. </form></li>
  85. </ul>
  86. <div id="editor"></div>
  87. </div>
  88. <!-- <script type="text/html" id="editor-javascript"></script>
  89. <script type="text/html" id="editor-html"></script>
  90. <script type="text/html" id="editor-css"></script> -->
  91. <!-- <button id="revert-editor">!</button> -->
  92. </div>
  93. <div class="splitter">
  94. </div>
  95. <div class="panel-right">
  96. <iframe id="sandbox-iframe"{{#testMode}} class="test-mode"{{/testMode}} {{#example}}src="/examples/{{repo.path}}/{{example.slug}}"{{/example}}{{^example}}src="/html/start-iframe.html"{{/example}}></iframe>
  97. {{#testMode}}
  98. <div id="qunit"></div>
  99. <div id="qunit-fixture"></div>
  100. {{/testMode}}
  101. </div>
  102. </div>
  103. {{=<% %>=}}
  104. <script data-tmpl-for="menu-example" id="menu-example-tmpl" type="text/x-mustache-tmpl">
  105. {{#menuExample}}
  106. <div class="pure-u-1 pure-u-md-1-2">
  107. <span class="cat-title">{{category.title}}</span>
  108. <ul data-id="{{category.slug}}">{{#examples}}
  109. <li><a href="/{{{slug}}}">{{title}}</a></li>{{/examples}}
  110. </ul>
  111. </div>{{/menuExample}}
  112. </script>
  113. <script data-tmpl-for="details-example" id="details-example-tmpl" type="text/x-mustache-tmpl">
  114. {{#example}}
  115. <strong>{{_.example}} </strong><span>{{title}}</span>
  116. {{/example}}
  117. </script>
  118. <script data-tmpl-for="tabs" id="tabs-tmpl" type="text/x-mustache-tmpl">
  119. {{#files}}
  120. <li class="tab-{{type}}" data-type="{{type}}">{{name}}</li>
  121. {{/files}}
  122. <li>+</li>
  123. </script>
  124. <script data-tmpl-for="details-repo" id="details-example-repo" type="text/x-mustache-tmpl">
  125. {{#repo}}
  126. <strong>{{_.collection}} </strong><span>{{title}}</span>
  127. {{/repo}}
  128. </script>
  129. <%={{ }}=%>
  130. <!-- Vendor scripts -->
  131. <script src="/js/vendor/eventemitter.js"></script>
  132. <script src="/js/vendor/modernizr-3.5.0.min.js"></script>
  133. <script src="/js/plugins.js"></script>
  134. <script src="/js/vendor/jquery-3.2.1.min.js" ></script>
  135. <script src="/js/vendor/jquery-resizable.min.js" ></script>
  136. <script src="/js/vendor/jquery.color.js" ></script>
  137. <script src="/js/vendor/mustache.min.js" ></script>
  138. <script src="/js/vendor/lodash.min.js" ></script>
  139. <script src="/js/vendor/loadJS.js" ></script>
  140. <script src="/js/vendor/ace/ace.js" type="text/javascript" charset="utf-8"></script>
  141. <!-- WS scripts -->
  142. <script id="inline-js-data">
  143. window._ws = {
  144. files: {{{filesJSON}}},
  145. repo: {{{repoJSON}}}
  146. };
  147. </script>
  148. <script src="/js/req-promise.js"></script>
  149. <script src="/js/ws-ui-parts.js"></script>
  150. <script src="/js/ws-notify.js"></script>
  151. <script src="/js/ws-events.js"></script>
  152. <script src="/js/ws-menu.js"></script>
  153. <script src="/js/ws-forms.js"></script>
  154. <script src="/js/editor-local-storage.js"></script>
  155. <script src="/js/ws-editor.js"></script>
  156. {{#testRun}}
  157. <script>
  158. window._ws._path = "{{{appPath}}}";
  159. </script>
  160. <script src="/js/vendor/qunit-2.4.1.js"></script>
  161. <script src="/js/test/ws.test.js"></script>
  162. {{/testRun}}
  163. </body>
  164. </html>