comfy_middle_seat 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2261f0af74a7d60998b21a9f85feacdb454614e8f8bec638eb9f7a1aa3b2850
4
- data.tar.gz: 06244651d11d7868006fdb42cea0b0ac9119304af97b42cd563401cd4ee9fd52
3
+ metadata.gz: c2b743bb8f3cdbae17801963c031a890072c7b4694336e155dd0d381a49ec2ff
4
+ data.tar.gz: c73a92f4aa40a06760914731d40cd0c9f7471b5abf20aa3710f522d300353f84
5
5
  SHA512:
6
- metadata.gz: 4f52d95a635172aa91cff2536dc87167656c815e23c743cd648a1d2fccf1cccd875e1a1866081ebaa2837b6b3b17690f1e6b59f321a4aaaa915bdc81464374da
7
- data.tar.gz: 054772f74cc2c0a373bd7939b9a4f47da4f7bfbf71aab88db624da8c6df72614da456c0377d3fd327c9a5a9903f3afc6c823ef5ce0f62c2a642b5b40dc638d17
6
+ metadata.gz: edd044c383fafb4c9c310df6c83e35f365fa5aeac4052f844f0fd8051a89b1b63564af6ad6ddc5a12637a866b700f34ce3342d077ca9e54dacf20b35a3ccec2a
7
+ data.tar.gz: 204fac7b1e4c2b3bfc3677529fede906334ffe97cdda1180a24c19a40c6b8175b0a13e6635b2d5d1ad78cb87e9fdd1c62c604f057f28193ca23065d6375b3374
@@ -15,7 +15,6 @@ import "./base";
15
15
  import "./categories";
16
16
  import "./codemirror";
17
17
  import "./diff";
18
- import "./dirty_forms";
19
18
  import "./draft_forms";
20
19
  import "./file_link";
21
20
  import "./file_upload";
@@ -32,13 +32,11 @@
32
32
  CMS.fileUpload.init();
33
33
  CMS.diff();
34
34
  CMS.draftForms.init();
35
- CMS.dirtyForms.init();
36
35
  };
37
36
 
38
37
  CMS.dispose = () => {
39
38
  CMS.pageFragments.dispose();
40
39
  CMS.draftForms.dispose();
41
- CMS.dirtyForms.dispose();
42
40
  CMS.codemirror.dispose();
43
41
  CMS.wysiwyg.dispose();
44
42
  CMS.files.dispose();
@@ -26,10 +26,6 @@ module Comfy
26
26
  def cms_draft_form_data(*key_parts, record:)
27
27
  namespace = session[:comfy_cms_draft_namespace] ||= SecureRandom.hex(16)
28
28
  {
29
- cms_unsaved_message: t(
30
- 'comfy.admin.cms.forms.unsaved_changes',
31
- default: 'You have unsaved changes. Are you sure you want to leave this page?'
32
- ),
33
29
  cms_draft_key: ['comfy-cms:draft:v1', namespace, *key_parts].join(':'),
34
30
  cms_draft_title: t('comfy.admin.cms.drafts.title', default: 'Unsaved draft found'),
35
31
  cms_draft_message: t(
@@ -64,8 +64,6 @@ ar:
64
64
  snippets: مقتطفات
65
65
  files: ملفات
66
66
 
67
- forms:
68
- unsaved_changes: لديك تغييرات غير محفوظة. هل أنت متأكد أنك تريد مغادرة هذه الصفحة؟
69
67
 
70
68
  search:
71
69
  submit: بحث
@@ -64,8 +64,6 @@ ca:
64
64
  snippets: Fragments
65
65
  files: Arxius
66
66
 
67
- forms:
68
- unsaved_changes: Teniu canvis sense desar. Esteu segur que voleu sortir d'aquesta pàgina?
69
67
 
70
68
  search:
71
69
  submit: Cerca
@@ -64,8 +64,6 @@ cs:
64
64
  snippets: Úryvky
65
65
  files: Soubory
66
66
 
67
- forms:
68
- unsaved_changes: Máte neuložené změny. Opravdu chcete tuto stránku opustit?
69
67
 
70
68
  search:
71
69
  submit: Hledat
@@ -64,8 +64,6 @@ da:
64
64
  snippets: Snippets
65
65
  files: Filer
66
66
 
67
- forms:
68
- unsaved_changes: Du har ændringer, der ikke er gemt. Er du sikker på, at du vil forlade denne side?
69
67
 
70
68
  search:
71
69
  submit: Søg
@@ -64,8 +64,6 @@ de:
64
64
  snippets: Schnipsel
65
65
  files: Dateien
66
66
 
67
- forms:
68
- unsaved_changes: Sie haben ungespeicherte Änderungen. Möchten Sie diese Seite wirklich verlassen?
69
67
 
70
68
  search:
71
69
  submit: Suchen
@@ -64,8 +64,6 @@ en:
64
64
  snippets: Snippets
65
65
  files: Files
66
66
 
67
- forms:
68
- unsaved_changes: You have unsaved changes. Are you sure you want to leave this page?
69
67
 
70
68
  search:
71
69
  submit: Search
@@ -64,8 +64,6 @@ es:
64
64
  snippets: Fragmentos
65
65
  files: Archivos
66
66
 
67
- forms:
68
- unsaved_changes: Tiene cambios sin guardar. ¿Está seguro de que desea salir de esta página?
69
67
 
70
68
  search:
71
69
  submit: Buscar
@@ -64,8 +64,6 @@ fi:
64
64
  snippets: Koodinpätkät
65
65
  files: Tiedostot
66
66
 
67
- forms:
68
- unsaved_changes: Sinulla on tallentamattomia muutoksia. Haluatko varmasti poistua tältä sivulta?
69
67
 
70
68
  search:
71
69
  submit: Hae
@@ -64,8 +64,6 @@ fr:
64
64
  snippets: Fragments
65
65
  files: Fichiers
66
66
 
67
- forms:
68
- unsaved_changes: Vous avez des modifications non enregistrées. Êtes-vous sûr de vouloir quitter cette page ?
69
67
 
70
68
  search:
71
69
  submit: Rechercher
@@ -64,8 +64,6 @@ gr:
64
64
  snippets: Snippets
65
65
  files: Αρχεία
66
66
 
67
- forms:
68
- unsaved_changes: Έχετε μη αποθηκευμένες αλλαγές. Είστε σίγουροι ότι θέλετε να φύγετε από αυτήν τη σελίδα;
69
67
 
70
68
  search:
71
69
  submit: Αναζήτηση
@@ -64,8 +64,6 @@ hr:
64
64
  snippets: Isječci
65
65
  files: Datoteke
66
66
 
67
- forms:
68
- unsaved_changes: Imate nespremljene promjene. Jeste li sigurni da želite napustiti ovu stranicu?
69
67
 
70
68
  search:
71
69
  submit: Pretraži
@@ -64,8 +64,6 @@ it:
64
64
  snippets: Snippet
65
65
  files: Files
66
66
 
67
- forms:
68
- unsaved_changes: Hai modifiche non salvate. Vuoi davvero lasciare questa pagina?
69
67
 
70
68
  search:
71
69
  submit: Cerca
@@ -64,8 +64,6 @@ ja:
64
64
  snippets: スニペット
65
65
  files: ファイル
66
66
 
67
- forms:
68
- unsaved_changes: 保存されていない変更があります。このページを離れてもよろしいですか?
69
67
 
70
68
  search:
71
69
  submit: 検索
@@ -64,8 +64,6 @@ nb:
64
64
  snippets: Snutter
65
65
  files: Filer
66
66
 
67
- forms:
68
- unsaved_changes: Du har ulagrede endringer. Er du sikker på at du vil forlate denne siden?
69
67
 
70
68
  search:
71
69
  submit: Søk
@@ -64,8 +64,6 @@ nl:
64
64
  snippets: Snippets
65
65
  files: Bestanden
66
66
 
67
- forms:
68
- unsaved_changes: U hebt niet-opgeslagen wijzigingen. Weet u zeker dat u deze pagina wilt verlaten?
69
67
 
70
68
  search:
71
69
  submit: Zoeken
@@ -64,8 +64,6 @@ pl:
64
64
  snippets: Snippety
65
65
  files: Pliki
66
66
 
67
- forms:
68
- unsaved_changes: Masz niezapisane zmiany. Czy na pewno chcesz opuścić tę stronę?
69
67
 
70
68
  search:
71
69
  submit: Szukaj
@@ -64,8 +64,6 @@ pt-BR:
64
64
  snippets: Fragmentos
65
65
  files: Arquivos
66
66
 
67
- forms:
68
- unsaved_changes: Você tem alterações não salvas. Tem certeza de que deseja sair desta página?
69
67
 
70
68
  search:
71
69
  submit: Pesquisar
@@ -64,8 +64,6 @@ ru:
64
64
  snippets: Сниппеты
65
65
  files: Файлы
66
66
 
67
- forms:
68
- unsaved_changes: У вас есть несохранённые изменения. Вы уверены, что хотите покинуть эту страницу?
69
67
 
70
68
  search:
71
69
  submit: Поиск
@@ -64,8 +64,6 @@ sk:
64
64
  snippets: Fragmenty
65
65
  files: Súbory
66
66
 
67
- forms:
68
- unsaved_changes: Máte neuložené zmeny. Naozaj chcete opustiť túto stránku?
69
67
 
70
68
  search:
71
69
  submit: Hľadať
@@ -64,8 +64,6 @@ sv:
64
64
  snippets: Snippets
65
65
  files: Filer
66
66
 
67
- forms:
68
- unsaved_changes: Du har osparade ändringar. Är du säker på att du vill lämna den här sidan?
69
67
 
70
68
  search:
71
69
  submit: Sök
@@ -64,8 +64,6 @@ tr:
64
64
  snippets: Pasajlar
65
65
  files: Dosyalar
66
66
 
67
- forms:
68
- unsaved_changes: Kaydedilmemiş değişiklikleriniz var. Bu sayfadan ayrılmak istediğinizden emin misiniz?
69
67
 
70
68
  search:
71
69
  submit: Ara
@@ -64,8 +64,6 @@ uk:
64
64
  snippets: Сніппети
65
65
  files: Файли
66
66
 
67
- forms:
68
- unsaved_changes: У вас є незбережені зміни. Ви впевнені, що хочете залишити цю сторінку?
69
67
 
70
68
  search:
71
69
  submit: Пошук
@@ -64,8 +64,6 @@ zh-CN:
64
64
  snippets: 片段
65
65
  files: 文件
66
66
 
67
- forms:
68
- unsaved_changes: 您有未保存的更改。确定要离开此页面吗?
69
67
 
70
68
  search:
71
69
  submit: 搜索
@@ -64,8 +64,6 @@ zh-TW:
64
64
  snippets: 片段
65
65
  files: 文件
66
66
 
67
- forms:
68
- unsaved_changes: 您有尚未儲存的變更。確定要離開此頁面嗎?
69
67
 
70
68
  search:
71
69
  submit: 搜尋
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ComfyMiddleSeat
4
- VERSION = '4.0.0'
4
+ VERSION = '4.0.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comfy_middle_seat
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Khabarov
@@ -233,7 +233,6 @@ files:
233
233
  - app/assets/javascripts/comfy/admin/cms/codemirror.js
234
234
  - app/assets/javascripts/comfy/admin/cms/custom.js
235
235
  - app/assets/javascripts/comfy/admin/cms/diff.js
236
- - app/assets/javascripts/comfy/admin/cms/dirty_forms.js
237
236
  - app/assets/javascripts/comfy/admin/cms/draft_forms.js
238
237
  - app/assets/javascripts/comfy/admin/cms/file_link.js
239
238
  - app/assets/javascripts/comfy/admin/cms/file_upload.js
@@ -1,201 +0,0 @@
1
- (() => {
2
- const defaultMessage =
3
- "You have unsaved changes. Are you sure you want to leave this page?";
4
-
5
- let forms = [];
6
- let baselines = new WeakMap();
7
- let submittingForms = new WeakSet();
8
- let navigationAllowed = false;
9
-
10
- const controlState = (control) => {
11
- if (!control.name) return null;
12
-
13
- const type = (control.type || "").toLowerCase();
14
- if (["button", "image", "reset", "submit"].includes(type)) return null;
15
-
16
- if (type === "checkbox" || type === "radio") {
17
- return [control.name, type, control.value, control.checked];
18
- }
19
-
20
- if (type === "file") {
21
- return [
22
- control.name,
23
- type,
24
- Array.from(control.files).map((file) => [
25
- file.name,
26
- file.size,
27
- file.lastModified,
28
- ]),
29
- ];
30
- }
31
-
32
- if (control instanceof HTMLSelectElement && control.multiple) {
33
- return [
34
- control.name,
35
- type,
36
- Array.from(control.selectedOptions).map((option) => option.value),
37
- ];
38
- }
39
-
40
- return [control.name, type, control.value];
41
- };
42
-
43
- const formState = (form) =>
44
- JSON.stringify(Array.from(form.elements).map(controlState).filter(Boolean));
45
-
46
- const syncEditors = () => {
47
- if (CMS.codemirror && CMS.codemirror.sync) CMS.codemirror.sync();
48
- if (CMS.wysiwyg && CMS.wysiwyg.sync) CMS.wysiwyg.sync();
49
- };
50
-
51
- const dirtyForms = () => {
52
- syncEditors();
53
- return forms.filter(
54
- (form) =>
55
- form.isConnected &&
56
- baselines.has(form) &&
57
- baselines.get(form) !== formState(form)
58
- );
59
- };
60
-
61
- const formsRequiringWarning = () =>
62
- dirtyForms().filter((form) => !submittingForms.has(form));
63
-
64
- const warningMessage = (dirtyForm) =>
65
- dirtyForm.dataset.cmsUnsavedMessage || defaultMessage;
66
-
67
- const beforeUnload = (event) => {
68
- if (navigationAllowed || formsRequiringWarning().length === 0) return;
69
-
70
- event.preventDefault();
71
- event.returnValue = "";
72
- };
73
-
74
- const navigationTarget = (event) => {
75
- if (
76
- event.defaultPrevented ||
77
- event.button !== 0 ||
78
- event.metaKey ||
79
- event.ctrlKey ||
80
- event.shiftKey ||
81
- event.altKey
82
- ) {
83
- return null;
84
- }
85
-
86
- const link = event.target.closest("a[href]");
87
- if (!link || link.hasAttribute("download")) return null;
88
-
89
- const target = link.getAttribute("target");
90
- if (target && !["_self", "_top", "_parent", window.name].includes(target)) {
91
- return null;
92
- }
93
-
94
- const url = new URL(link.href, document.location.href);
95
- if (
96
- url.origin === document.location.origin &&
97
- url.pathname === document.location.pathname &&
98
- url.search === document.location.search &&
99
- url.hash
100
- ) {
101
- return null;
102
- }
103
-
104
- return link;
105
- };
106
-
107
- const allowCurrentNavigation = () => {
108
- navigationAllowed = true;
109
- window.setTimeout(() => {
110
- navigationAllowed = false;
111
- }, 0);
112
- };
113
-
114
- const confirmLinkNavigation = (event) => {
115
- if (navigationAllowed || !navigationTarget(event)) return;
116
-
117
- const dirtyForm = formsRequiringWarning()[0];
118
- if (!dirtyForm) return;
119
-
120
- if (!window.confirm(warningMessage(dirtyForm))) {
121
- event.preventDefault();
122
- event.stopImmediatePropagation();
123
- return;
124
- }
125
-
126
- allowCurrentNavigation();
127
- };
128
-
129
- const confirmTurbolinksNavigation = (event) => {
130
- if (navigationAllowed) return;
131
-
132
- const dirtyForm = formsRequiringWarning()[0];
133
- if (!dirtyForm) return;
134
-
135
- if (!window.confirm(warningMessage(dirtyForm))) {
136
- event.preventDefault();
137
- return;
138
- }
139
-
140
- allowCurrentNavigation();
141
- };
142
-
143
- const markSubmitting = (event) => {
144
- const form = event.target;
145
- const submitterTarget = event.submitter && event.submitter.formTarget;
146
- const target = submitterTarget || form.target;
147
-
148
- if (
149
- target &&
150
- !["_self", "_top", "_parent", window.name].includes(target)
151
- ) {
152
- return;
153
- }
154
-
155
- submittingForms.add(form);
156
- };
157
-
158
- window.CMS.dirtyForms = {
159
- init() {
160
- forms = Array.from(
161
- document.querySelectorAll("form[data-cms-unsaved-message]")
162
- );
163
- baselines = new WeakMap();
164
- submittingForms = new WeakSet();
165
- navigationAllowed = false;
166
-
167
- for (const form of forms) {
168
- const baseline =
169
- form.dataset.cmsSaveFailed === "true" ? null : formState(form);
170
- baselines.set(form, baseline);
171
- }
172
-
173
- window.addEventListener("beforeunload", beforeUnload);
174
- document.addEventListener("click", confirmLinkNavigation, true);
175
- document.addEventListener("submit", markSubmitting, true);
176
- document.addEventListener(
177
- "turbolinks:before-visit",
178
- confirmTurbolinksNavigation
179
- );
180
- },
181
-
182
- dispose() {
183
- window.removeEventListener("beforeunload", beforeUnload);
184
- document.removeEventListener("click", confirmLinkNavigation, true);
185
- document.removeEventListener("submit", markSubmitting, true);
186
- document.removeEventListener(
187
- "turbolinks:before-visit",
188
- confirmTurbolinksNavigation
189
- );
190
-
191
- forms = [];
192
- baselines = new WeakMap();
193
- submittingForms = new WeakSet();
194
- navigationAllowed = false;
195
- },
196
-
197
- isDirty() {
198
- return dirtyForms().length > 0;
199
- },
200
- };
201
- })();