Шаблон пускового модуля | Template of a startup module
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
3.7KB

  1. // // // //
  2. ПерезагрузитьПриложениеПослеОбновления = мир =>
  3. {
  4. window.location.reload(false);
  5. };
  6. // // // //
  7. УдалитьМодулиПриложенияПередОбновлением = мир =>
  8. {
  9. var список = мир.списокМодулейПриложенияДляОбновления;
  10. for (var номер in список)
  11. {
  12. var указатель = список[номер];
  13. localStorage.removeItem(указатель);
  14. }
  15. };
  16. // // // //
  17. ПроверитьНаличиеМодулейПриложенияДляОбновления = мир =>
  18. {
  19. if (мир.списокМодулейПриложенияДляОбновления.length)
  20. {
  21. мир.уведомить("присутствуют модули приложения для обновления");
  22. }
  23. else
  24. {
  25. мир.уведомить("отсутствуют модули приложения для обновления");
  26. }
  27. }
  28. // // // //
  29. СоставитьСписокМодулейПриложенияДляОбновления = мир =>
  30. {
  31. var список = [];
  32. var описания = мир.описанияМодулейПриложения;
  33. for (var указатель in описания)
  34. {
  35. var описание = описания[указатель];
  36. var модуль = мир.модули.модульПоУказателю(указатель);
  37. if (
  38. модуль &&
  39. модуль.версия != описание.версия
  40. ) {
  41. список.push(указатель);
  42. }
  43. }
  44. мир.списокМодулейПриложенияДляОбновления = список;
  45. };
  46. // // // //
  47. УведомитьОбОтсутствииОбновленийПриложения = мир =>
  48. {
  49. мир.уведомить("обновления приложения отсутствуют");
  50. };
  51. // // // //
  52. ЗагрузитьОписаниеВсехМодулейПриложения = мир =>
  53. {
  54. var указатели = [УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ];
  55. var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
  56. var содержимое = м.содержимое["/📦"];
  57. var строки = содержимое.split(/\n/);
  58. for (var номер in строки)
  59. {
  60. var строка = строки[номер];
  61. if (!строка.startsWith("#") && строка.length)
  62. {
  63. указатели.push(строка);
  64. }
  65. }
  66. мир.описанияМодулейПриложения = [];
  67. function загрузитьОписание(мир, список, номер, успех, провал)
  68. {
  69. const указатель = список[номер];
  70. мир.взять(
  71. указатель,
  72. function(содержимое) {
  73. var описание = мир.разобрать0000(содержимое);
  74. мир.описанияМодулейПриложения[указатель] = описание;
  75. успех();
  76. },
  77. function(ошибка) {
  78. провал();
  79. }
  80. );
  81. }
  82. сделатьПараллельно(
  83. мир,
  84. указатели,
  85. загрузитьОписание,
  86. function() {
  87. мир.уведомить("загрузили описание всех модулей приложения");
  88. },
  89. function() {
  90. мир.уведомить("не загрузили описание всех модулей приложения");
  91. }
  92. );
  93. };