Current section
Files
Jump to
Current section
Files
lib/imagine_web/templates/cms_page/browser.html.leex
<% columns = cms_page_browser(@cms_page) %>
<div class="button-bar" style="height: 40px;">
<%= if @cms_page.discarded_at do %>
<%= if @cms_page.id == "_trash" do %>
<%#= link raw(~s(<i class="list alternate outline icon"></i> Properties)), to: "#", class: "ui icon labeled disabled button" %>
<%#= link raw(~s(<i class="trash restore icon"></i> Restore)), to: "#", class: "ui icon labeled disabled button" %>
<%#= link raw(~s(<i class="exclamation triangle icon"></i> Delete Forever)), to: "#", class: "ui icon labeled negative basic disabled button" %>
<% else %>
<%= link raw(~s(<i class="list alternate outline icon"></i> Properties)), to: Routes.cms_page_path(@socket, :show, @cms_page), "phx-click": "properties", "phx-value-cms-page-id": @cms_page.id, id: "Imagine-Page-Properties-Button", class: "ui icon labeled button" %>
<%#= link raw(~s(<i class="desktop icon"></i> Preview)), to: "/#{@cms_page.path}/version/#{@cms_page.version}", class: "ui icon labeled button" %>
<%= link raw(~s(<i class="trash restore icon"></i> Restore)), to: "#", "phx-click": "undelete-page", "phx-value-cms-page-id": @cms_page.id, class: "ui icon labeled button" %>
<%= link raw(~s(<i class="exclamation triangle icon"></i> Delete Forever)), to: "#", "phx-click": "destroy-page", "phx-value-cms-page-id": @cms_page.id, data: [confirm: "Are you sure you want to delete this PERMANENTLY? There is no undo."], class: "ui icon labeled negative basic button" %>
<% end %>
<% else %>
<%#= link raw(~s(<i class="plus icon"></i> New Page)), to: Routes.cms_page_path(@socket, :new, parent_id: @cms_page.id), "phx-click": "new-page", "phx-value-cms-page-id": @cms_page.id, class: "ui labeled icon button" %>
<%= link raw(~s(<i class="plus icon"></i> New Page)), to: "#", "phx-click": "new-page", "phx-value-cms-page-id": @cms_page.id, class: "ui labeled icon button" %>
<%= link raw(~s(<i class="pencil alternate icon"></i> Edit)), to: Routes.cms_page_path(@socket, :edit_content, @cms_page), class: "ui icon labeled button" %>
<%= link raw(~s(<i class="list alternate outline icon"></i> Properties)), to: "#", "phx-click": "properties", "phx-value-cms-page-id": @cms_page.id, id: "Imagine-Page-Properties-Button", class: "ui icon labeled button" %>
<%= link raw(~s(<i class="desktop icon"></i> Preview)), to: "/#{@cms_page.path}", class: "ui icon labeled button" %>
<%#= link raw(~s(<i class="list icon"></i> Versions)), to: Routes.cms_page_version_path(@socket, :index, @cms_page), class: "ui icon labeled button" %>
<%= if @cms_page.path == "" || length(@cms_page.sub_pages) > 0 do %>
<%= link raw(~s(<i class="trash alternate outline icon"></i> Trash)), to: "#", title: "This page cannot be moved to Trash.", class: "ui icon labeled disabled basic button" %>
<% else %>
<%= link raw(~s(<i class="trash alternate outline icon"></i> Trash)), to: "#", "phx-click": "delete-page", "phx-value-cms-page-id": @cms_page.id, data: [confirm: "Are you sure you want to move this page to Trash?"], class: "ui icon labeled negative basic button" %>
<% end %>
<% end %>
</div>
<div class="page-browser">
<div class="track" style="width: <%= length(columns) * 200 %>px">
<%= for column <- columns do %>
<div class="column">
<div class="ui selection list">
<%= for page <- Enum.sort(column, &(&1.name <= &2.name)) do %>
<%= cond do %>
<%= page.path == "" -> %>
<a href="#" id="cms-page-<%= page.id %>" class="item<%= if @cms_page.id == page.id, do: " selected" %>" phx-click="select-page" phx-value-cms-page-id="<%= page.id %>">
<i class="home icon"></i>
<div class="content">
<div class="header">Home</div>
<div class="description">Home Page</div>
</div>
</a>
<% page.id == "_trash" -> %>
<a href="#" class="item<%= if @cms_page.id == "_trash", do: " selected" %>" style="margin-top: 20px;" phx-click="select-page" phx-value-cms-page-id="_trash">
<i class="trash icon"></i>
<div class="content">
<div class="header">Trash</div>
<div class="description">Deleted Items</div>
</div>
</a>
<% true -> %>
<a href="#" id="cms-page-<%= page.id %>" class="item<%= if @cms_page.id == page.id, do: " selected" %><%= if page.published_version == -1, do: " offline" %>" phx-click="select-page" phx-value-cms-page-id="<%= page.id %>">
<%= cond do %>
<% page.published_version == -1 -> %>
<i class="eye slash icon"></i>
<% length(page.sub_pages) > 0 -> %>
<i class="folder icon"></i>
<% page.redirect_enabled -> %>
<i class="share icon"></i>
<% true -> %>
<i class="file icon"></i>
<% end %>
<div class="content">
<div class="header"><%= page.name %></div>
<div class="description"><%= page.title %> </div>
</div>
</a>
<% end %>
<% end %>
</div>
</div>
<script>
setTimeout(() => {
$('.page-browser').animate({scrollLeft: $('.page-browser').width() - $('.page-browser').scrollLeft()});
});
</script>
<% end %>
</div>
</div>
<%= if @cms_page.id != "_trash" do %>
<div id="Imagine-Properties-Modal" class="ui modal">
<i class="close icon"></i>
<div class="header">Properties</div>
<div class="content">
<%= @properties_modal %>
</div>
<div class="actions">
<div id="Imagine-Properties-Save-Button" class="ui primary button" onclick="document.getElementById('Imagine-Properties-Form').submit(); return false;">Save</div>
<div class="ui cancel button">Cancel</div>
</div>
</div>
<script>
// make sure there's always something to update on the page
var now = '<%= @timestamp %>';
var propertiesButtonHandler = (e) => {
e.preventDefault();
window.propertiesButtonClicked = true;
}
var propertiesButtonHandler2 = () => {
$('#Imagine-Properties-Modal').modal('show');
$("select.dropdown").dropdown({ placeholder: false, fullTextSearch: true });
try {
if (window.imaginePropertiesCodemirror) {
window.imaginePropertiesCodemirror.setValue($("#Imagine-Properties-Form_html_head").val());
} else {
window.imaginePropertiesCodemirror = CodeMirror.fromTextArea(document.getElementById("Imagine-Properties-Form_html_head"), {
mode: 'htmlmixed',
selectionPointer: true,
lineNumbers: true
});
}
} catch (ex) {
console.log("Error initializing CodeMirror:", ex)
}
return false;
};
document.addEventListener('phx:update', (e) => {
// console.log(e);
if (window.propertiesButtonClicked) {
window.propertiesButtonClicked = false;
propertiesButtonHandler2();
}
var btn = document.getElementById("Imagine-Page-Properties-Button");
if (btn) {
btn.removeEventListener("click", propertiesButtonHandler);
btn.addEventListener("click", propertiesButtonHandler);
}
});
</script>
<% end %>