AlchemyCMS/alchemy_cms

View on GitHub
app/views/alchemy/admin/pages/update.js.erb

Summary

Maintainability
Test Coverage
(function() {
  var page = document.querySelector('#page_<%= @page.id %>');

<% if @while_page_edit -%>

  Alchemy.reloadPreview();
  document.querySelector('#page_<%= @page.id %>_status').outerHTML = '<%= j render("current_page", current_page: @page) %>';
  Alchemy.growl("<%= j @notice %>");
  Alchemy.closeCurrentDialog();

<% elsif @page.parent_id != @old_parent_id -%>

  Alchemy.closeCurrentDialog(function() {
    Alchemy.growl("<%= j @notice %>");
    Alchemy.currentSitemap.load(<%= @page.get_language_root.id %>);
  });

<% else -%>

  if (page) {

    <% if @page.layoutpage %>
       page.outerHTML = "<%= j render('alchemy/admin/layoutpages/layoutpage', layoutpage: @page) %>"
    <% else %>
       const page_html = "<%= j render('page', page: @page) %>".replace(/__ID__/g, "<%= @page.id %>");
       const compiler = Handlebars.compile(page_html);
       const tree = <%== @tree.to_json %>;
       page.outerHTML = compiler(tree.pages[0]);
    <% end %>

    Alchemy.growl("<%= j @notice %>");
    Alchemy.closeCurrentDialog();
  } else {
    document.addEventListener('turbo:load', function () {
      Alchemy.growl("<%= j @notice %>");
    }, { once: true })
    Alchemy.closeCurrentDialog(function() {
      Turbo.visit(location.toString(), { action: "replace" });
    });
  }

<% end -%>
})()