|
2703 | 2703 | }, |
2704 | 2704 | "resetPreview" : function(el) { |
2705 | 2705 | return new Promise(function(resolve, reject) { |
| 2706 | + if (el.contentDocument.childNodes[0].innerText == "") { |
| 2707 | + resolve(el); |
| 2708 | + return; |
| 2709 | + } |
2706 | 2710 | var newRunner = el.cloneNode(false); |
2707 | 2711 | newRunner.addEventListener("load", function() { |
2708 | 2712 | resolve(newRunner); |
|
2832 | 2836 | } |
2833 | 2837 | simplyApp.commands.codeMirrorInit(); |
2834 | 2838 | simplyApp.commands.autoRunTests(); |
| 2839 | + simplyApp.commands.autoRunPreviews(); |
2835 | 2840 | }, |
2836 | 2841 | "collapseMenu" : function(el) { |
2837 | 2842 | if (!el.hasAttribute("open")) { |
|
3167 | 3172 | editor.pageData.parts = parts; |
3168 | 3173 | editor.pageData.count = count; |
3169 | 3174 | editor.pageData.page = "Edit component"; |
3170 | | - }) |
3171 | | - .then(function() { |
3172 | | - setTimeout(function() { // FIXME: Wait for the CSS to be available; |
3173 | | - simplyApp.commands.autoRunPreviews(); |
3174 | | - }, 1000); |
3175 | 3175 | }); |
3176 | 3176 | }, |
3177 | 3177 | "#pages/:component" : function(params) { |
|
3218 | 3218 | editor.pageData.parts = parts; |
3219 | 3219 | editor.pageData.count = count; |
3220 | 3220 | editor.pageData.page = "Edit page"; |
3221 | | - }) |
3222 | | - .then(function() { |
3223 | | - setTimeout(function() { // FIXME: Wait for the CSS to be available; |
3224 | | - simplyApp.commands.autoRunPreviews(); |
3225 | | - }, 1000); |
3226 | 3221 | }); |
3227 | 3222 | }, |
3228 | 3223 | "#base" : function() { |
@@ -4499,6 +4494,21 @@ <h1>Edit base component: <span data-simply-field="component.id"></span></h1> |
4499 | 4494 | <simply-render rel="componentRawApi"></simply-render> |
4500 | 4495 | </main> |
4501 | 4496 | </template> |
| 4497 | + <template data-simply-template="Edit%20base%20component"> |
| 4498 | + <main> |
| 4499 | + <div class="simplycode-header"> |
| 4500 | + <h1>Edit base component: <span data-simply-field="component.id"></span></h1> |
| 4501 | + </div> |
| 4502 | + <simply-render rel="componentDescription"></simply-render> |
| 4503 | + <simply-render rel="componentHeadHtml"></simply-render> |
| 4504 | + <simply-render rel="componentBodyHtml"></simply-render> |
| 4505 | + <simply-render rel="componentFootHtml"></simply-render> |
| 4506 | + <simply-render rel="componentCommands"></simply-render> |
| 4507 | + <simply-render rel="componentActions"></simply-render> |
| 4508 | + <simply-render rel="componentRoutes"></simply-render> |
| 4509 | + <simply-render rel="componentRawApi"></simply-render> |
| 4510 | + </main> |
| 4511 | + </template> |
4502 | 4512 | <template data-simply-template="Base components"> |
4503 | 4513 | <main> |
4504 | 4514 | <h1>Base components</h1> |
@@ -4545,6 +4555,23 @@ <h1>Edit component: <span data-simply-field="component.id"></span></h1> |
4545 | 4555 | <simply-render rel="componentSorters"></simply-render> |
4546 | 4556 | </main> |
4547 | 4557 | </template> |
| 4558 | + <template data-simply-template="Edit%20component"> |
| 4559 | + <main> |
| 4560 | + <div class="simplycode-header"> |
| 4561 | + <h1>Edit component: <span data-simply-field="component.id"></span></h1> |
| 4562 | + </div> |
| 4563 | + <simply-render rel="componentDescription"></simply-render> |
| 4564 | + <simply-render rel="componentComponentTemplate"></simply-render> |
| 4565 | + <simply-render rel="componentComponentCss"></simply-render> |
| 4566 | + <simply-render rel="componentCommands"></simply-render> |
| 4567 | + <simply-render rel="componentActions"></simply-render> |
| 4568 | + <simply-render rel="componentDataApi"></simply-render> |
| 4569 | + <simply-render rel="componentRoutes"></simply-render> |
| 4570 | + <simply-render rel="componentTransformers"></simply-render> |
| 4571 | + <simply-render rel="componentDataSources"></simply-render> |
| 4572 | + <simply-render rel="componentSorters"></simply-render> |
| 4573 | + </main> |
| 4574 | + </template> |
4548 | 4575 | <template data-simply-template="List components"> |
4549 | 4576 | <main> |
4550 | 4577 | <h1>Components</h1> |
@@ -4592,6 +4619,23 @@ <h1>Edit page: <span data-simply-field="component.id"></span></h1> |
4592 | 4619 | <simply-render rel="componentSorters"></simply-render> |
4593 | 4620 | </main> |
4594 | 4621 | </template> |
| 4622 | + <template data-simply-template="Edit%20page"> |
| 4623 | + <main> |
| 4624 | + <div class="simplycode-header"> |
| 4625 | + <h1>Edit page: <span data-simply-field="component.id"></span></h1> |
| 4626 | + </div> |
| 4627 | + <simply-render rel="componentDescription"></simply-render> |
| 4628 | + <simply-render rel="componentPageTemplate"></simply-render> |
| 4629 | + <simply-render rel="componentPageCss"></simply-render> |
| 4630 | + <simply-render rel="componentCommands"></simply-render> |
| 4631 | + <simply-render rel="componentActions"></simply-render> |
| 4632 | + <simply-render rel="componentDataApi"></simply-render> |
| 4633 | + <simply-render rel="componentRoutes"></simply-render> |
| 4634 | + <simply-render rel="componentTransformers"></simply-render> |
| 4635 | + <simply-render rel="componentDataSources"></simply-render> |
| 4636 | + <simply-render rel="componentSorters"></simply-render> |
| 4637 | + </main> |
| 4638 | + </template> |
4595 | 4639 | <template data-simply-template="Edit page frame"> |
4596 | 4640 | <main> |
4597 | 4641 | <div class="simplycode-header"> |
@@ -5184,6 +5228,63 @@ <h1>App preview</h1> |
5184 | 5228 | } |
5185 | 5229 | }); |
5186 | 5230 | </script> |
| 5231 | + <!-- Auto%20run%20preview --> |
| 5232 | + <script> |
| 5233 | + document.addEventListener("simply-data-changed", function(event) { |
| 5234 | + if ( |
| 5235 | + (event.data.dataBinding.parentKey == "/component/parts/") || |
| 5236 | + (event.data.dataBinding.parentKey.indexOf("/component/parts/") == 0) |
| 5237 | + ) { |
| 5238 | + // Handle changes of the part name |
| 5239 | + var component = event.data.dataBinding.parentKey.split("/")[3]; |
| 5240 | + var componentNameField = simplyApp.actions.getComponentNameField(component); |
| 5241 | + |
| 5242 | + if (event.data.arguments[0] == componentNameField) { |
| 5243 | + var newname = event.data.arguments[1]; |
| 5244 | + var oldname = event.data.arguments[2]; |
| 5245 | + |
| 5246 | + editor.pageData.app[component].forEach(function(appPart) { |
| 5247 | + if (appPart[componentNameField] == oldname) { |
| 5248 | + appPart[componentNameField] = newname; |
| 5249 | + } |
| 5250 | + }); |
| 5251 | + } |
| 5252 | + |
| 5253 | + if (typeof autoRunPreviewTimeout !== "undefined") { |
| 5254 | + window.clearTimeout(autoRunPreviewTimeout); |
| 5255 | + } |
| 5256 | + autoRunPreviewTimeout = window.setTimeout(function() { |
| 5257 | + // Update the app data for the preview |
| 5258 | + for (component in editor.pageData.component.parts) { |
| 5259 | + if (!editor.pageData.app[component]) { |
| 5260 | + editor.pageData.app[component] = []; |
| 5261 | + } |
| 5262 | + var componentNameField = simplyApp.actions.getComponentNameField(component); |
| 5263 | + editor.pageData.component.parts[component].forEach(function(part) { |
| 5264 | + var found = false; |
| 5265 | + editor.pageData.app[component].forEach(function(appPart, appIndex) { |
| 5266 | + if (part[componentNameField] && (appPart[componentNameField] == part[componentNameField])) { |
| 5267 | + for (i in part) { |
| 5268 | + editor.pageData.app[component][appIndex][i] = part[i]; |
| 5269 | + } |
| 5270 | + found = true; |
| 5271 | + } |
| 5272 | + }); |
| 5273 | + if (!found) { |
| 5274 | + editor.pageData.app[component].push(JSON.parse(JSON.stringify(part))); |
| 5275 | + } |
| 5276 | + }); |
| 5277 | + } |
| 5278 | + |
| 5279 | + document.querySelectorAll("[data-simply-transformer=simplyPreviewComponent]").forEach(function(element) { |
| 5280 | + element.innerHTML = editor.transformers.simplyPreviewComponent.render.call(element, element.dataBinding.get()); |
| 5281 | + }); |
| 5282 | + |
| 5283 | + simplyApp.commands.autoRunPreviews() |
| 5284 | + }, 500); |
| 5285 | + } |
| 5286 | + }); |
| 5287 | + </script> |
5187 | 5288 | <!-- Auto run tests --> |
5188 | 5289 | <script> |
5189 | 5290 | document.addEventListener("simply-data-changed", function(event) { |
|
0 commit comments