index.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. const templates = require('./_templates.js'),
  2. config = require('../../config.js');
  3. module.exports.exec = function(req, res) {
  4. if (!req.account.cguReadAndAccepted) {
  5. if (config.allowNewAccounts)
  6. return {
  7. status: 200,
  8. body: templates.header("Mimou - CGU", ["style.css"])
  9. + `<section class="maci-wrapper fixed-width"><div class="maci-content">
  10. <header id="cguHeader">Merci d'accepter les Conditions Generales d'Utilisation suivantes:</header>
  11. <textarea id="cguContent" class="full-width"></textarea>
  12. <footer class="button-container"><button id="cguButton">J'accepte les Conditions Generales d'Utilisation</button></footer>
  13. </div></section>`
  14. +templates.footer(["cgu.min.js"])
  15. };
  16. else
  17. return require('./_403.js').exec(req, res);
  18. }
  19. var serviceProviderOptionList = "";
  20. for (var serviceName in config.services)
  21. serviceProviderOptionList += `<option value="${config.services[serviceName].connectLink}">${serviceName}</option>`;
  22. return {
  23. status: 200
  24. ,body: templates.header("Mimouchat", ["style.css", "styleResponsive.css", "_customsheet"], ['<link href="favicon_err.png" type="image/png" rel="icon" id="linkFavicon" />'])
  25. +`<aside class="chat-context" id="chatCtx">
  26. <div class="chat-context-rooms" id="chatList">
  27. <div class="chan-search-wrapper"><input type="search" id="chanSearch" class="chan-search-input" /></div>
  28. <ul class="chat-context-channellist" id="chanList"></ul>
  29. </div>
  30. <nav class="chat-context-menu">
  31. <a id="ctxMenuSettings" href="javascript:void(0);"></a>
  32. <a id="ctxMenuLogout" href="javascript:void(0);"></a>
  33. </nav>
  34. </aside>
  35. <div class="chat-context-menuButton" id="chatCtxButton"></div>
  36. <section id="settings" class="maci-setting hidden">
  37. <header class="settingHead">
  38. <h3 id="settingTitle"></h3>
  39. <div id="settingDiscardClose"></div>
  40. </header>
  41. <div class="settingBody">
  42. <aside class="settingNav">
  43. <ul id="settingMenuItems">
  44. <li id="setting-menu-services" data-target="services"></li>
  45. <li id="setting-menu-display" data-target="display"></li>
  46. <li id="setting-menu-privacy" data-target="privacy"></li>
  47. </ul>
  48. </aside>
  49. <div class="settingContent">
  50. <section class="settings-services">
  51. <h4 id="settings-services-title"></h4>
  52. <div class="button-container"><button id="settings-serviceAddButton"></button></div>
  53. <div class="hidden" id="settings-serviceAddSection">
  54. <select id="settings-serviceAddServiceList">`
  55. +serviceProviderOptionList
  56. +`</select>
  57. <div class="button-container"><button id="settings-serviceAddConfirm"></button></div>
  58. </div>
  59. <ul class="settings-service-list" id="settings-serviceList"></ul>
  60. <div class="settings-service-list-empty error-block" id="settings-serviceListEmpty"></div>
  61. </section>
  62. <section class="settings-display">
  63. <h4 id="settings-display-title"></h4>
  64. <label><span id="settings-displayEmojiProviderLbl"></span><select id="settings-displayEmojiProvider"></select></label>
  65. <label><span id="settings-displayDisplayAvatarLbl"></span><input type="checkbox" value="1" id="settings-displayDisplayAvatar"></label>
  66. <label><span id="settings-displayColorfulNamesLbl"></span><input type="checkbox" value="1" id="settings-displayColorfulNames"></label>
  67. </section>
  68. <section class="settings-privacy">
  69. <h4 id="settings-privacy-title"></h4>
  70. </section>
  71. </div>
  72. </div>
  73. <footer class="settingFooter">
  74. <button id="settingCommit"></button>
  75. </footer>
  76. </section>
  77. <div class="chatsystem-container no-room-selected" id="chatSystemContainer">
  78. <header class="chatsystem-header" id="chatsystemHeader">
  79. <span class="chatsystem-title" id="currentRoomTitle"></span><span id="currentRoomStar" class="chatsystem-header-star"></span>
  80. </header>
  81. <div class="chatsystem-content" id="chatWindow"></div>
  82. <ul class="chatsystem-whoistyping" id="whoistyping"></ul>
  83. <div class="chatsystem-control">
  84. <div id="replyToContainer" class="replyto-container"></div>
  85. <ul id="slashList" class="chat-command-list"></ul>
  86. <form id="msgForm" class="msgform">
  87. <textarea id="msgInput" class="msgform-input" autocomplete="off" rows=1></textarea>
  88. <a id="emojiButton" class="button msgform-oneline"/></a>
  89. <a id="attachFile" href="#!" class="button msgform-oneline"><img src="paperclip.svg" alt="Send file" class="attach-file-icon" /></a>
  90. <a id="msgFormSubmit" class="button msgform-oneline">&gt;</a>
  91. </form>
  92. </div>
  93. </div>
  94. <div class="hidden file-upload-container" id="fileUploadContainer"><form id="fileUploadForm" enctype="multipart/form-data">
  95. <input type="file" id="fileUploadInput" />
  96. <div id="fileUploadError" class="file-upload-error hidden"></div>
  97. <a id="fileUploadCancel" class="button"/></a>
  98. <input type="submit" class="button"/>
  99. </form></div>
  100. <div class="error" id="neterror"></div>`
  101. +templates.footer(["mimouchat.min.js"])
  102. };
  103. };