index.mustache.html 6.6 KB

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