summaryrefslogtreecommitdiff
path: root/app/views/nodes/edit.html.erb
blob: cdc9b36e90f7e557c6622d1cfada4257d95f0a98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<h1><%= title_for_node(@node) %></h1>

<div class="node_action_bar">
  <%= button_to 'Unlock + Back', unlock_node_path(@node), method: :put,
        form: { class: 'button_to state_changing' },
        disabled: @node.autosave.present? %>

  <% if @node.autosave || (@node.draft && @node.head) %>
    <%= button_to (@node.draft && !@node.autosave ? 'Destroy Draft' : 'Discard changes'),
          revert_node_path(@node), method: :put,
          form: { data: { confirm: "This cannot be undone. Continue?" }, class: 'button_to destructive' } %>
  <% end %>

  <%= submit_tag "Save Draft", form: dom_id(@node, :edit) %>
  <%= submit_tag "Save + Unlock + Exit", form: dom_id(@node, :edit) %>
  <%= link_to "Preview ↗", preview_page_path(@page), target: "_blank", rel: "noopener", class: "preview_link" %>
</div>

<div id="page_editor">
  <%= form_for(@node, html: { data: { autosave_url: autosave_node_path(@node), show_url: node_path(@node) } }) do |f| %>
  <% if @node.errors.any? %>
    <div class="error_messages">
      <ul><% @node.errors.full_messages.each do |msg| %><li><%= msg %></li><% end %></ul>
    </div>
  <% end %>

  <details id="metadata_details">
    <summary>Metadata (slug, parent, tags, template, author, images)</summary>
    <div id="metadata">
      <div class="node_description">Slug</div>
      <div class="node_content">
        <%= f.text_field(
              :staged_slug, :value => @node.staged_slug || @node.slug
            )
          %>
      </div>

      <div class="node_description">parent</div>
      <div class="node_content">
        <%= text_field_tag :move_to_search_term, @node.parent.title rescue "" %>
          <div id="search_results">

          </div>
          <%= f.hidden_field(
                :staged_parent_id,
                :value => @node.staged_parent_id || @node.parent_id
              )
           %>
      </div>

      <%= fields_for @page do |d| %>
      <div class="node_description">Tags - comma seperated</div>
      <div class="node_content"><%= text_field_tag :tag_list, @page.tag_list.join(', ') %></div>

      <div class="node_description">Publish at</div>
      <div class="node_content"><%= d.datetime_select :published_at, :value => @page.published_at %></div>

      <div class="node_description">Template</div>
      <div class="node_content">
      <%= d.select :template_name, custom_page_templates, {:prompt => 'Select Template'} %>
      <span class="field_hint">Set automatically based on how this node was created - change it if needed.</span>
      </div>

      <div class="node_description">Author</div>
      <div class="node_content">
        <%= d.select :user_id, user_list,
              :selected => @page.user_id || @node.draft&.user_id || @node.head&.user_id %>
      </div>

      <div class="node_description">Images</div>
      <div class="node_content">
        <ul id="image_box" rel="<%= @page.id %>">
          <% @page.assets.images.each do |image| %>
            <li rel="images_<%= image.id %>">
              <%= image_tag(image.upload.url(:thumb)) %>
            </li>
          <% end %>
        </ul>
        <div class="clear_left right">
          <a id="image_browser_toggle" class="unselected" href="#">image browser</a>
        </div>
        <div id="image_browser">
          <ul>
            <% Asset.images.each do |image| %>
            <li rel="images_<%= image.id %>"><%= image_tag(image.upload.url(:thumb)) %></li>
            <% end %>
          </ul>
        </div>
      </div>
    </div>
  </details>

  <div id="content">
    <div class="node_description">Title</div>
    <div class="node_content"><%= d.text_field :title %></div>

    <div class="node_description">Abstract</div>
    <div class="node_content"><%= d.text_area :abstract %></div>

    <div class="node_description">Body</div>
    <div class="node_content"><%= d.text_area :body, :class => 'with_editor' %></div>
  <% end %>

  <div class="node_action_bar node_action_bar_save">
    <%= f.submit 'Save Draft' %>
    <%= f.submit 'Save + Unlock + Exit' %>
  </div>
  <% end %>
</div>