index.mustache.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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" data-slug="{{path}}">
  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" data-slug="{{slug}}">
  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 in"><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>+</li>
  80. </ul>
  81. <div id="editor"></div>
  82. </div>
  83. <!-- <script type="text/html" id="editor-javascript"></script>
  84. <script type="text/html" id="editor-html"></script>
  85. <script type="text/html" id="editor-css"></script> -->
  86. <!-- <button id="revert-editor">!</button> -->
  87. </div>
  88. <div class="splitter">
  89. </div>
  90. <div class="panel-right">
  91. <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>
  92. {{#testMode}}
  93. <div id="qunit"></div>
  94. <div id="qunit-fixture"></div>
  95. {{/testMode}}
  96. </div>
  97. </div>
  98. {{=<% %>=}}
  99. <script data-tmpl-for="menu-example" id="menu-example-tmpl" type="text/x-mustache-tmpl">
  100. {{#menuExample}}
  101. <div class="pure-u-1 pure-u-md-1-2">
  102. <span class="cat-title">{{category.title}}</span>
  103. <ul data-id="{{category.slug}}">{{#examples}}
  104. <li><a href="/{{{slug}}}">{{title}}</a></li>{{/examples}}
  105. </ul>
  106. </div>{{/menuExample}}
  107. </script>
  108. <script data-tmpl-for="details-example" id="details-example-tmpl" type="text/x-mustache-tmpl">
  109. {{#example}}
  110. <strong>{{_.example}} </strong><span>{{title}}</span>
  111. {{/example}}
  112. </script>
  113. <script data-tmpl-for="tabs" id="tabs-tmpl" type="text/x-mustache-tmpl">
  114. {{#files}}
  115. <li class="tab-{{type}}" data-type="{{type}}">{{name}}</li>
  116. {{/files}}
  117. <li>+</li>
  118. </script>
  119. <script data-tmpl-for="details-repo" id="details-example-repo" type="text/x-mustache-tmpl">
  120. {{#repo}}
  121. <strong>{{_.collection}} </strong><span>{{title}}</span>
  122. {{/repo}}
  123. </script>
  124. <%={{ }}=%>
  125. <!-- Vendor scripts -->
  126. <script src="/js/vendor/eventemitter.js"></script>
  127. <script src="/js/vendor/modernizr-3.5.0.min.js"></script>
  128. <script src="/js/plugins.js"></script>
  129. <script src="/js/vendor/jquery-3.2.1.min.js" ></script>
  130. <script src="/js/vendor/jquery-resizable.min.js" ></script>
  131. <script src="/js/vendor/jquery.color.js" ></script>
  132. <script src="/js/vendor/mustache.min.js" ></script>
  133. <script src="/js/vendor/lodash.min.js" ></script>
  134. <script src="/js/vendor/loadJS.js" ></script>
  135. <script src="/js/vendor/ace/ace.js" type="text/javascript" charset="utf-8"></script>
  136. <!-- WS scripts -->
  137. <script id="inline-js-data">
  138. window._ws = {
  139. files: {{{filesJSON}}}
  140. };
  141. </script>
  142. <script src="/js/req-promise.js"></script>
  143. <script src="/js/ws-ui-parts.js"></script>
  144. <script src="/js/ws-notify.js"></script>
  145. <script src="/js/ws-events.js"></script>
  146. <script src="/js/ws-menu.js"></script>
  147. <script src="/js/ws-forms.js"></script>
  148. <script src="/js/editor-local-storage.js"></script>
  149. <script src="/js/ws-editor.js"></script>
  150. {{#testRun}}
  151. <script>
  152. window._ws._path = "{{{appPath}}}";
  153. </script>
  154. <script src="/js/vendor/qunit-2.4.1.js"></script>
  155. <script src="/js/test/ws.test.js"></script>
  156. {{/testRun}}
  157. </body>
  158. </html>