Редактирование структуры модулей ГитЖС | Editing of GitJS modules' structure
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

382 rindas
13KB

  1. // // // //
  2. УдалитьФайлМодуля = мир =>
  3. {
  4. var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
  5. var файл = файлы[мир.номерФайлаМодуля];
  6. delete мир.редактируемыйМодуль.структура[файл];
  7. delete мир.редактируемыйМодуль.содержимое[файл];
  8. };
  9. // // // //
  10. СпроситьПодтверждениеУдаленияФайлаМодуля = мир =>
  11. {
  12. var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
  13. var файл = файлы[мир.номерФайлаМодуля];
  14. $(`#${мир.макет.зав.файлыПодтверждениеУдаленияИмя}`).html(файл);
  15. UIkit.modal($(`#${мир.макет.зав.файлыПодтверждениеУдаления}`)).show();
  16. };
  17. // // // //
  18. СоздатьДиалогПодтвержденияУдаленияФайлаМодуля = мир =>
  19. {
  20. $(`#${мир.макет.константы.содержимое}`).append(`
  21. <div id="${мир.макет.зав.файлыПодтверждениеУдаления}" uk-modal>
  22. <div class="uk-modal-dialog">
  23. <div class="uk-modal-header">
  24. <h2 class="uk-modal-title">Удалить файл? | Delete the file? </h2>
  25. </div>
  26. <div class="uk-modal-body">
  27. <p id="${мир.макет.зав.файлыПодтверждениеУдаленияИмя}"></p>
  28. </div>
  29. <div class="uk-modal-footer uk-text-right">
  30. <button class="uk-button uk-button-default uk-modal-close" type="button">Отмена | Cancel</button>
  31. <button id="${мир.макет.зав.файлыПодтверждениеУдаленияУдалить}" class="uk-button uk-button-danger uk-modal-close" type="button">Удалить | Delete</button>
  32. </div>
  33. </div>
  34. </div>
  35. `);
  36. $(`#${мир.макет.зав.файлыПодтверждениеУдаленияУдалить}`).click(function() {
  37. мир.уведомить("подтвердили удаление файла модуля");
  38. });
  39. };
  40. // // // //
  41. ОтслеживатьУдалениеФайлаМодуля = мир =>
  42. {
  43. var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
  44. for (var номер in файлы)
  45. {
  46. var idУдалить = мир.макет.зав.файлыСписокУдалить.replace("%номер%", номер);
  47. const номерФайла = номер;
  48. $(`#${idУдалить}`).click(function() {
  49. мир.номерФайлаМодуля = номерФайла;
  50. мир.уведомить("кнопка удаления файла модуля");
  51. });
  52. }
  53. };
  54. // // // //
  55. ОчиститьИзменениеФайловМодуля = мир =>
  56. {
  57. $(`#${мир.макет.зав.файлыИзменение}`).attr("hidden", true);
  58. };
  59. // // // //
  60. ОтобразитьИзменениеФайловМодуля = мир =>
  61. {
  62. $(`#${мир.макет.зав.файлыИзменение}`).removeAttr("hidden");
  63. };
  64. // // // //
  65. ДобавитьФайлМодуля = мир =>
  66. {
  67. мир.редактируемыйМодуль.структура[мир.имяФайлаМодуля] = {};
  68. мир.редактируемыйМодуль.содержимое[мир.имяФайлаМодуля] = "";
  69. };
  70. // // // //
  71. СообщитьОНаличииДубляФайла = мир =>
  72. {
  73. var сообщение = "Такое имя файла уже существует | Such file name is already present";
  74. UIkit.modal.alert(сообщение);
  75. console.error(сообщение);
  76. };
  77. // // // //
  78. ПроверитьОтсутствиеДубляФайла = мир =>
  79. {
  80. for (var файл in мир.редактируемыйМодуль.структура)
  81. {
  82. if (файл == мир.имяФайлаМодуля)
  83. {
  84. мир.уведомить("дубль файла присутствует");
  85. return;
  86. }
  87. мир.уведомить("дубль файла отсутствует");
  88. }
  89. };
  90. // // // //
  91. ОтслеживатьДобавлениеФайлаМодуля = мир =>
  92. {
  93. $(`#${мир.макет.зав.добавитьФайлКнопка}`).click(function() {
  94. мир.имяФайлаМодуля = $(`#${мир.макет.зав.добавитьФайлИмя}`).val();
  95. мир.уведомить("кнопка добавления файла модуля");
  96. });
  97. };
  98. // // // //
  99. ОтобразитьСписокФайловМодуля = мир =>
  100. {
  101. var список = "";
  102. var файлы = Object.keys(мир.редактируемыйМодуль.структура).sort();
  103. for (var номер in файлы)
  104. {
  105. // Файл.
  106. var файл = файлы[номер];
  107. // Флаги.
  108. var строкаФлагов = "";
  109. var флаги = мир.редактируемыйМодуль.структура[файл];
  110. for (var флаг in флаги)
  111. {
  112. if (флаг == "исполнить")
  113. {
  114. строкаФлагов += "x";
  115. }
  116. else if (флаг == "двоичный")
  117. {
  118. строкаФлагов += "2";
  119. }
  120. }
  121. // id.
  122. var idИмя = мир.макет.зав.файлыСписокИмя.replace("%номер%", номер);
  123. var idФлаги = мир.макет.зав.файлыСписокФлаги.replace("%номер%", номер);
  124. var idУдалить = мир.макет.зав.файлыСписокУдалить.replace("%номер%", номер);
  125. список += `
  126. <tr>
  127. <td>
  128. <input id="${idИмя}" value="${файл}" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name">
  129. </td>
  130. <td>
  131. <input id="${idФлаги}" value="${строкаФлагов}" class="uk-input uk-margin-small" type="text" placeholder="Флаги | Flags">
  132. </td>
  133. <td>
  134. <button id="${idУдалить}" class="uk-button uk-button-danger">
  135. <span uk-icon="minus"></span>
  136. </button>
  137. </td>
  138. </tr>
  139. `;
  140. }
  141. $(`#${мир.макет.зав.файлыСписок}`).html(список);
  142. };
  143. // // // //
  144. ОтобразитьСтруктуруПунктаФайловЗава = мир =>
  145. {
  146. $(`#${мир.макет.константы.содержимое}`).html(`
  147. <div class="зав-отступ">
  148. <div uk-grid style="margin-left: 0px">
  149. <input id="${мир.макет.зав.добавитьФайлИмя}" class="uk-input uk-width-expand" type="text" placeholder="Имя файла | File name">
  150. <button id="${мир.макет.зав.добавитьФайлКнопка}" class="uk-button uk-button-primary uk-width-auto uk-margin-left">Добавить файл | Add a file</button>
  151. </div>
  152. <hr class="uk-divider-icon">
  153. <table class="uk-table uk-table-hover uk-table-divider">
  154. <thead>
  155. <tr>
  156. <th>Файл | File</th>
  157. <th>Флаги | Flags</th>
  158. <th>Действия | Actions</th>
  159. </tr>
  160. </thead>
  161. <tbody id="${мир.макет.зав.файлыСписок}">
  162. </tbody>
  163. </table>
  164. </div>
  165. `);
  166. };
  167. // // // //
  168. СохранитьВременноеОписание = мир =>
  169. {
  170. var м = мир.редактируемыйМодуль;
  171. м.имя = $(`#${мир.макет.зав.описаниеИмя}`).val()
  172. м.версия = $(`#${мир.макет.зав.описаниеВерсия}`).val()
  173. м["🏠"] = $(`#${мир.макет.зав.описаниеХранилище}`).val()
  174. };
  175. // // // //
  176. ОчиститьИзменениеОписания = мир =>
  177. {
  178. $(`#${мир.макет.зав.описаниеИзменение}`).attr("hidden", true);
  179. };
  180. // // // //
  181. ОтобразитьИзменениеОписания = мир =>
  182. {
  183. $(`#${мир.макет.зав.описаниеИзменение}`).removeAttr("hidden");
  184. };
  185. // // // //
  186. ОтслеживатьИзменениеОписанияМодуля = мир =>
  187. {
  188. $(`#${мир.макет.зав.описаниеИмя}`).on("input", function() {
  189. мир.уведомить("изменили описание модуля");
  190. });
  191. $(`#${мир.макет.зав.описаниеВерсия}`).on("input", function() {
  192. мир.уведомить("изменили описание модуля");
  193. });
  194. $(`#${мир.макет.зав.описаниеХранилище}`).on("input", function() {
  195. мир.уведомить("изменили описание модуля");
  196. });
  197. };
  198. // // // //
  199. ОтобразитьОписаниеМодуля = мир =>
  200. {
  201. var м = мир.редактируемыйМодуль;
  202. $(`#${мир.макет.зав.описаниеИмя}`).val(м.имя);
  203. $(`#${мир.макет.зав.описаниеВерсия}`).val(м.версия);
  204. $(`#${мир.макет.зав.описаниеХранилище}`).val(м["🏠"]);
  205. };
  206. // // // //
  207. ОтобразитьСтруктуруПунктаОписанияЗава = мир =>
  208. {
  209. $(`#${мир.макет.константы.содержимое}`).html(`
  210. <div class="зав-отступ">
  211. <form>
  212. <input id="${мир.макет.зав.описаниеИмя}" class="uk-input uk-margin-small" type="text" placeholder="Имя | Name">
  213. <input id="${мир.макет.зав.описаниеВерсия}" class="uk-input uk-margin-small" type="text" placeholder="Версия | Version">
  214. <input id="${мир.макет.зав.описаниеХранилище}" class="uk-input uk-margin-small" type="text" placeholder="Хранилище | Repository">
  215. </form>
  216. </div>
  217. `);
  218. };
  219. // // // //
  220. ЗадатьВидСодержимогоМенюЗава = мир =>
  221. {
  222. задатьВид(`
  223. .зав-отступ
  224. {
  225. padding: 1em;
  226. }
  227. `)
  228. };
  229. // // // //
  230. ОтобразитьВыборПунктаФайловЗава = мир =>
  231. {
  232. $(`#${мир.макет.зав.файлы}`).addClass("uk-active");
  233. };
  234. // // // //
  235. ОтобразитьВыборПунктаОписанияЗава = мир =>
  236. {
  237. $(`#${мир.макет.зав.описание}`).addClass("uk-active");
  238. };
  239. // // // //
  240. ЗадатьРазделМенюЗава = мир =>
  241. {
  242. мир.макет.зав = {
  243. "описание": "зав-описание",
  244. "описаниеСсылка": "зав-описание-ссылка",
  245. "описаниеИзменение": "зав-описание-изменение",
  246. "описаниеИмя": "зав-описание-имя",
  247. "описаниеВерсия": "зав-описание-версия",
  248. "описаниеХранилище": "зав-описание-хранилище",
  249. "файлы": "зав-файлы",
  250. "файлыСсылка": "зав-файлы-ссылка",
  251. "файлыИзменение": "зав-файлы-изменение",
  252. "файлыСписок": "зав-файлы-список",
  253. "файлыСписокИмя": "зав-файлы-список-имя-%номер%",
  254. "файлыСписокФлаги": "зав-файлы-список-флаги-%номер%",
  255. "файлыСписокУдалить": "зав-файлы-список-удалить-%номер%",
  256. "файлыПодтверждениеУдаления": "зав-файлы-подтверждение-удаления",
  257. "файлыПодтверждениеУдаленияИмя": "зав-файлы-подтверждение-удаления-имя",
  258. "файлыПодтверждениеУдаленияУдалить": "зав-файлы-подтверждение-удаления-удалить",
  259. "добавитьФайлИмя": "зав-файлы-добавить-файл-имя",
  260. "добавитьФайлКнопка": "зав-файлы-добавить-файл-кнопка",
  261. };
  262. $(`#${мир.макет.константы.меню}`).append(`
  263. <ul class="uk-nav uk-nav-default tm-nav">
  264. <li class="uk-nav-header">📦 Модуль | Module</li>
  265. <li id="${мир.макет.зав.описание}">
  266. <a id="${мир.макет.зав.описаниеСсылка}"><span id="${мир.макет.зав.описаниеИзменение}" hidden>&#8226; </span>Описание | Description</a>
  267. </li>
  268. <li id="${мир.макет.зав.файлы}">
  269. <a id="${мир.макет.зав.файлыСсылка}"><span id="${мир.макет.зав.файлыИзменение}" hidden>&#8226; </span>Файлы | Files</a>
  270. </li>
  271. </ul>
  272. `);
  273. $(`#${мир.макет.зав.описаниеСсылка}`).click(function() {
  274. мир.уведомить("выбрали пункт описания зава");
  275. });
  276. $(`#${мир.макет.зав.файлыСсылка}`).click(function() {
  277. мир.уведомить("выбрали пункт файлов зава");
  278. });
  279. };