diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2025-02-06 16:49:06 +0100 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2025-02-06 16:49:06 +0100 |
| commit | 375ed745052148faeb34763087fe04214105f1b8 (patch) | |
| tree | 595456cf631087b5530bf5470529faeead1a0aaf /app | |
| parent | 38d80f0af731326fcd5ae16c0129a056eff2fe32 (diff) | |
Improve worklflow
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/admin_controller.rb | 18 | ||||
| -rw-r--r-- | app/controllers/nodes_controller.rb | 15 | ||||
| -rw-r--r-- | app/views/admin/index.html.erb | 48 | ||||
| -rw-r--r-- | app/views/nodes/new.html.erb | 12 |
4 files changed, 83 insertions, 10 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 7c1375a..f3cc221 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb | |||
| @@ -6,12 +6,15 @@ class AdminController < ApplicationController | |||
| 6 | 6 | ||
| 7 | def index | 7 | def index |
| 8 | @drafts = Node.all( | 8 | @drafts = Node.all( |
| 9 | :limit => 20, | 9 | :limit => 50, |
| 10 | :order => "updated_at desc", | 10 | :order => "updated_at desc", |
| 11 | :conditions => ["draft_id IS NOT NULL"] | 11 | :conditions => ["draft_id IS NOT NULL"] |
| 12 | ) | 12 | ) |
| 13 | @drafts_count = Node.count( | ||
| 14 | :conditions => ["draft_id IS NOT NULL"] | ||
| 15 | ) | ||
| 13 | @recent_changes = Node.all( | 16 | @recent_changes = Node.all( |
| 14 | :limit => 20, | 17 | :limit => 50, |
| 15 | :order => "updated_at desc", | 18 | :order => "updated_at desc", |
| 16 | :conditions => [ | 19 | :conditions => [ |
| 17 | "updated_at < ? AND updated_at > ? AND parent_id IS NOT NULL", Time.now, Time.now-14.days | 20 | "updated_at < ? AND updated_at > ? AND parent_id IS NOT NULL", Time.now, Time.now-14.days |
| @@ -24,6 +27,17 @@ class AdminController < ApplicationController | |||
| 24 | @sitemap_depth[node.id] = level | 27 | @sitemap_depth[node.id] = level |
| 25 | end | 28 | end |
| 26 | @sitemap = all_nodes.to_a.sort! { |node1,node2| node1.lft <=> node2.lft }.delete_if { |node| node.update? } | 29 | @sitemap = all_nodes.to_a.sort! { |node1,node2| node1.lft <=> node2.lft }.delete_if { |node| node.update? } |
| 30 | |||
| 31 | @mypages = Page.all( | ||
| 32 | :conditions => [ "user_id = ? or editor_id = ?", @current_user, @current_user] | ||
| 33 | ) | ||
| 34 | |||
| 35 | @mynodes = Node.all( | ||
| 36 | :order => "updated_at desc", | ||
| 37 | :joins => :pages, | ||
| 38 | :conditions => [ "pages.user_id = ? or pages.editor_id = ?", @current_user, @current_user ] | ||
| 39 | ).uniq.first(50) | ||
| 40 | |||
| 27 | end | 41 | end |
| 28 | 42 | ||
| 29 | def search | 43 | def search |
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb index 4f72744..b8cd644 100644 --- a/app/controllers/nodes_controller.rb +++ b/app/controllers/nodes_controller.rb | |||
| @@ -25,6 +25,10 @@ class NodesController < ApplicationController | |||
| 25 | 25 | ||
| 26 | def new | 26 | def new |
| 27 | @node = Node.new params[:node] | 27 | @node = Node.new params[:node] |
| 28 | if params.has_key?(:parent_id) | ||
| 29 | @parent_id = params[:parent_id] | ||
| 30 | @parent_name = Node.find(@parent_id).title | ||
| 31 | end | ||
| 28 | end | 32 | end |
| 29 | 33 | ||
| 30 | def create | 34 | def create |
| @@ -33,9 +37,16 @@ class NodesController < ApplicationController | |||
| 33 | @node = Node.new | 37 | @node = Node.new |
| 34 | @node.parent_id = find_parent | 38 | @node.parent_id = find_parent |
| 35 | @node.slug = params[:title].parameterize.to_s | 39 | @node.slug = params[:title].parameterize.to_s |
| 36 | 40 | ||
| 37 | if @node.save | 41 | if @node.save |
| 38 | @node.draft.update_attributes(:title => params[:title]) | 42 | @node.draft.update_attributes(:title => params[:title]) |
| 43 | case params[:kind] | ||
| 44 | when "update" | ||
| 45 | @node.draft.tag_list.add("update") | ||
| 46 | when "press_release" | ||
| 47 | @node.draft.tag_list.add("update", "pressemitteilung") | ||
| 48 | end | ||
| 49 | @node.draft.save! | ||
| 39 | redirect_to(edit_node_path(@node)) | 50 | redirect_to(edit_node_path(@node)) |
| 40 | else | 51 | else |
| 41 | render :new | 52 | render :new |
| @@ -107,6 +118,8 @@ class NodesController < ApplicationController | |||
| 107 | Node.root.id | 118 | Node.root.id |
| 108 | when "update" | 119 | when "update" |
| 109 | Update.find_or_create_parent.id | 120 | Update.find_or_create_parent.id |
| 121 | when "press_release" | ||
| 122 | Update.find_or_create_parent.id | ||
| 110 | when "generic" | 123 | when "generic" |
| 111 | if params[:parent_id] && Node.find(params[:parent_id]) | 124 | if params[:parent_id] && Node.find(params[:parent_id]) |
| 112 | params[:parent_id] | 125 | params[:parent_id] |
diff --git a/app/views/admin/index.html.erb b/app/views/admin/index.html.erb index 8c8271f..edad1d6 100644 --- a/app/views/admin/index.html.erb +++ b/app/views/admin/index.html.erb | |||
| @@ -1,5 +1,13 @@ | |||
| 1 | <div id="admin_wizard"> | ||
| 2 | <%= link_to 'Create Update or Pressemitteilung', new_node_path, :only_path => false %> | ||
| 3 | <a href="#" id="admin_wizard_my_work" class="admin_wizard_button button">Continue my work</a> | ||
| 4 | <a href="#" id="admin_wizard_create_page" class="admin_wizard_button button">Add a page in the page tree</a> | ||
| 5 | <%= link_to("Upload a new asset", new_asset_path, :only_path => false) %> | ||
| 6 | </div> | ||
| 7 | |||
| 1 | <p id="overview_toggle"> | 8 | <p id="overview_toggle"> |
| 2 | <a href="#" id="recent_changes_toggle" class="button">recent changes</a> | 9 | <a href="#" id="recent_changes_toggle" class="button">recent changes</a> |
| 10 | <a href="#" id="my_work_toggle" class="button">my work</a> | ||
| 3 | <a href="#" id="current_drafts_toggle" class="button">current drafts</a> | 11 | <a href="#" id="current_drafts_toggle" class="button">current drafts</a> |
| 4 | <a href="#" id="admin_sitemap_toggle" class="button">site map</a> | 12 | <a href="#" id="admin_sitemap_toggle" class="button">site map</a> |
| 5 | </p> | 13 | </p> |
| @@ -38,9 +46,43 @@ | |||
| 38 | </table> | 46 | </table> |
| 39 | </div> | 47 | </div> |
| 40 | 48 | ||
| 49 | <div id="my_work_table"> | ||
| 50 | |||
| 51 | <h1>My Work</h1> | ||
| 52 | |||
| 53 | <table class="node_table"> | ||
| 54 | <tr class="header"> | ||
| 55 | <th class="node_id">ID</th> | ||
| 56 | <th class="title">Title</th> | ||
| 57 | <th class="actions">Actions</th> | ||
| 58 | <th class="editor">Locked by</th> | ||
| 59 | <th class="revision">Rev.</th> | ||
| 60 | </tr> | ||
| 61 | <% @mynodes.each do |node| %> | ||
| 62 | <tr class="<%= cycle("even", "odd") %>"> | ||
| 63 | <td class="node_id"><%= node.id %></td> | ||
| 64 | <td class="title"> | ||
| 65 | <h4><%= link_to title_for_node(node), node_path(node) %></h4> | ||
| 66 | <p><%= link_to_path(node.unique_name, node.unique_name) %></p> | ||
| 67 | </td> | ||
| 68 | <td class="actions"> | ||
| 69 | <%= link_to 'show', node_path(node) %> | ||
| 70 | <%= link_to 'Revisions', node_revisions_path(node) %> | ||
| 71 | </td> | ||
| 72 | <td> | ||
| 73 | <%= node.lock_owner.login if node.lock_owner %> | ||
| 74 | </td> | ||
| 75 | <td> | ||
| 76 | <%= node.draft ? node.draft.revision : node.head.revision %> | ||
| 77 | </td> | ||
| 78 | </tr> | ||
| 79 | <% end %> | ||
| 80 | </table> | ||
| 81 | </div> | ||
| 82 | |||
| 41 | <div id="current_drafts_table"> | 83 | <div id="current_drafts_table"> |
| 42 | 84 | ||
| 43 | <h1>Current Drafts</h1> | 85 | <h1>Current Drafts (<%= @drafts_count %>)</h1> |
| 44 | 86 | ||
| 45 | <table class="node_table"> | 87 | <table class="node_table"> |
| 46 | <tr class="header"> | 88 | <tr class="header"> |
| @@ -92,8 +134,8 @@ | |||
| 92 | <p><%= link_to_path(node.unique_name, node.unique_name) %></p> | 134 | <p><%= link_to_path(node.unique_name, node.unique_name) %></p> |
| 93 | </td> | 135 | </td> |
| 94 | <td class="actions"> | 136 | <td class="actions"> |
| 95 | <%= link_to 'show', node_path(node) %> | 137 | <%= link_to 'create subpage', new_node_path(:parent_id => node.id) %> |
| 96 | <%= link_to 'Revisions', node_revisions_path(node) %> | 138 | <%= link_to ':: Revisions', node_revisions_path(node) %> |
| 97 | </td> | 139 | </td> |
| 98 | <td> | 140 | <td> |
| 99 | <%= node.lock_owner.login if node.lock_owner %> | 141 | <%= node.lock_owner.login if node.lock_owner %> |
diff --git a/app/views/nodes/new.html.erb b/app/views/nodes/new.html.erb index 850207b..7d744de 100644 --- a/app/views/nodes/new.html.erb +++ b/app/views/nodes/new.html.erb | |||
| @@ -20,7 +20,11 @@ | |||
| 20 | </p> | 20 | </p> |
| 21 | <p> | 21 | <p> |
| 22 | <%= radio_button_tag :kind, "update" %> | 22 | <%= radio_button_tag :kind, "update" %> |
| 23 | Update / Press release ( is automatically created in /updates ) | 23 | Update ( is automatically created in /updates/<%= Time.now.year.to_s %>/ and gets tag "update" ) |
| 24 | </p> | ||
| 25 | <p> | ||
| 26 | <%= radio_button_tag :kind, "press_release" %> | ||
| 27 | Pressemitteilung ( is automatically created in /updates/<%= Time.now.year.to_s %>/ and gets tags "update, pressemitteilung" ) | ||
| 24 | </p> | 28 | </p> |
| 25 | </td> | 29 | </td> |
| 26 | </tr> | 30 | </tr> |
| @@ -31,8 +35,8 @@ | |||
| 31 | <tr id="parent_search_field"> | 35 | <tr id="parent_search_field"> |
| 32 | <td class="description">Parent</td> | 36 | <td class="description">Parent</td> |
| 33 | <td> | 37 | <td> |
| 34 | <%= text_field_tag :parent_search_term %> | 38 | <%= text_field_tag :parent_search_term, @parent_name %> |
| 35 | <%= hidden_field_tag :parent_id %> | 39 | <%= hidden_field_tag :parent_id, @parent_id %> |
| 36 | <div id="search_results"> | 40 | <div id="search_results"> |
| 37 | 41 | ||
| 38 | </div> | 42 | </div> |
| @@ -43,4 +47,4 @@ | |||
| 43 | <td class="right"><%= submit_tag "Create" %></td> | 47 | <td class="right"><%= submit_tag "Create" %></td> |
| 44 | </tr> | 48 | </tr> |
| 45 | </table> | 49 | </table> |
| 46 | <% end %> \ No newline at end of file | 50 | <% end %> |
