index.mustache.html 6.6 KB

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