Отображение и редактирование файлов модуля ГитЖС | Display and editing of GitJS module files
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

249 Zeilen
5.9KB

  1. /*
  2. * ВЫБОР ФАЙЛА
  3. */
  4. /*
  5. ЗадатьУказанныйФайл = function(мир)
  6. {
  7. мир.файл = мир.файлы[мир.номерВыбранногоФайла];
  8. };
  9. // // // //
  10. НеОтслеживатьРедактирование = function(мир)
  11. {
  12. мир.отслеживатьРедактирование = false;
  13. };
  14. // // // //
  15. ОтслеживатьРедактирование = function(мир)
  16. {
  17. мир.отслеживатьРедактирование = true;
  18. };
  19. // // // //
  20. ЗадатьПараметрФайла = function(мир)
  21. {
  22. var файл = мир.файлы[мир.номерВыбранногоФайла];
  23. задатьПараметрВСтрокеПоиска("📁", файл);
  24. };
  25. // // // //
  26. ОтобразитьСодержимоеВыбранногоФайла = function(мир)
  27. {
  28. var файл = мир.файлы[мир.номерВыбранногоФайла];
  29. var содержимое = мир.временноеСодержимое[файл];
  30. if (!содержимое)
  31. {
  32. содержимое = мир.редактируемыйМодуль.содержимое[файл];
  33. };
  34. мир.редактор.session.setValue(содержимое);
  35. };
  36. */
  37. /*
  38. * ПУСК
  39. */
  40. /*
  41. const ИМЯ = "Главред | Glavred";
  42. // // // //
  43. ЗадатьВременноеСодержимое = function(мир)
  44. {
  45. мир.временноеСодержимое = {};
  46. };
  47. // // // //
  48. ЗадатьКнопкуСохранения = function(мир)
  49. {
  50. var кнопка = мир.макет.элементы.действие
  51. .replace("${название}", "💾")
  52. .replace(/\$\{id\}/g, `${мир.макет.константы.сохранить}`)
  53. ;
  54. $(`#${мир.макет.константы.действия}`).append(кнопка);
  55. $(`#${мир.макет.константы.сохранить}-ссылка`).click(function() {
  56. мир.уведомить("выбрали сохранить");
  57. });
  58. };
  59. // // // //
  60. НастроитьОтслеживаниеРедактирования = function(мир)
  61. {
  62. мир.отслеживатьРедактирование = true;
  63. мир.редактор.session.on("change", function(delta) {
  64. if (мир.отслеживатьРедактирование)
  65. {
  66. мир.уведомить("редактирование");
  67. }
  68. });
  69. };
  70. // // // //
  71. ВыбратьУказанныйФайл = function(мир)
  72. {
  73. мир.номерВыбранногоФайла = мир.файлы.indexOf(мир.файл);
  74. мир.уведомить("выбрали файл");
  75. }
  76. // // // //
  77. ВыбратьПервыйФайл = function(мир)
  78. {
  79. мир.номерВыбранногоФайла = 0;
  80. мир.уведомить("выбрали файл");
  81. }
  82. // // // //
  83. ПроверитьНаличиеУказанногоФайла = function(мир)
  84. {
  85. if (
  86. мир.файл &&
  87. мир.файлы.includes(мир.файл)
  88. ) {
  89. мир.уведомить("указанный файл существует");
  90. }
  91. else
  92. {
  93. мир.уведомить("указанный файл не существует");
  94. }
  95. };
  96. // // // //
  97. НастроитьAce = function(мир)
  98. {
  99. мир.редактор = window.ace.edit("редактор");
  100. мир.редактор.session.setMode("ace/mode/javascript");
  101. };
  102. // // // //
  103. ВывестиРазобранныеПараметры = function(мир)
  104. {
  105. console.debug(`
  106. Разобранные параметры редактора:
  107. * 📦: '${мир.указатель}'
  108. * 📁: '${мир.файл}'
  109. `);
  110. };
  111. */
  112. /*
  113. * РЕДАКТИРОВАНИЕ
  114. */
  115. /*
  116. СохранитьВременноеСодержимоеРедактируемогоФайла = function(мир)
  117. {
  118. var файл = мир.файлы[мир.номерВыбранногоФайла];
  119. var содержимое = мир.редактор.session.getValue();
  120. мир.временноеСодержимое[файл] = содержимое;
  121. };
  122. // // // //
  123. ПометитьВыбранныйФайлКакИзменённый = function(мир)
  124. {
  125. $(`#${мир.макет.константы.файл}-${мир.номерВыбранногоФайла}-изменение`).removeAttr("hidden");
  126. };
  127. // // // //
  128. ВывестиРедактирование = function(мир)
  129. {
  130. console.debug("Редактирование");
  131. };
  132. */
  133. /*
  134. * СОХРАНЕНИЕ
  135. */
  136. /*
  137. УведомитьОНеудачномСохраненииИзменений = function(мир)
  138. {
  139. UIkit.notification("Не удалось сохранить изменения", {status: "danger"});
  140. UIkit.notification("Could not save changes", {status: "danger"});
  141. };
  142. // // // //
  143. УведомитьОбУспешномСохраненииИзменений = function(мир)
  144. {
  145. UIkit.notification("Сохранили успешно", {status: "success"});
  146. UIkit.notification("Saved successfully", {status: "success"});
  147. };
  148. // // // //
  149. СохранитьИзменения = function(мир)
  150. {
  151. for (var файл in мир.временноеСодержимое)
  152. {
  153. var содержимое = мир.временноеСодержимое[файл];
  154. мир.редактируемыйМодуль.содержимое[файл] = содержимое;
  155. }
  156. мир.временноеСодержимое = {};
  157. мир.модули.сохранили.подписатьРаз(function() {
  158. мир.уведомить("сохранили изменения");
  159. });
  160. мир.модули.неСохранили.подписатьРаз(function() {
  161. мир.уведомить("не сохранили изменения");
  162. });
  163. мир.модули.сохранить(мир.редактируемыйМодуль.указатель);
  164. };
  165. */