diff options
Diffstat (limited to 'app/controllers/admin_controller.rb')
| -rw-r--r-- | app/controllers/admin_controller.rb | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index d671384..37fd78b 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb | |||
| @@ -1,74 +1,74 @@ | |||
| 1 | class AdminController < ApplicationController | 1 | class AdminController < ApplicationController |
| 2 | 2 | ||
| 3 | # Private | 3 | # Private |
| 4 | 4 | ||
| 5 | before_action :login_required | 5 | before_action :login_required |
| 6 | 6 | ||
| 7 | def index | 7 | def index |
| 8 | @drafts = Node.where("draft_id IS NOT NULL") | 8 | @drafts = Node.drafts_and_autosaves(current_user_id: current_user.id).limit(5) |
| 9 | .limit(50).order("updated_at desc") | 9 | @recent_changes = Node.recently_changed.limit(5) |
| 10 | 10 | end | |
| 11 | @drafts_count = Node.where("draft_id IS NOT NULL").count | ||
| 12 | |||
| 13 | @recent_changes = Node.where( | ||
| 14 | "updated_at < ? AND updated_at > ? AND parent_id IS NOT NULL", | ||
| 15 | Time.now, Time.now - 14.days | ||
| 16 | ).limit(50).order("updated_at desc") | ||
| 17 | |||
| 18 | all_nodes = Node.root.self_and_descendants | ||
| 19 | @sitemap_depth = {} | ||
| 20 | Node.each_with_level(all_nodes) do |node, level| | ||
| 21 | @sitemap_depth[node.id] = level | ||
| 22 | end | ||
| 23 | @sitemap = all_nodes.to_a.sort! { |node1,node2| node1.lft <=> node2.lft }.delete_if { |node| node.update? } | ||
| 24 | |||
| 25 | @mypages = Page.where("user_id = ? or editor_id = ?", @current_user, @current_user) | ||
| 26 | 11 | ||
| 27 | @mynodes = Node.joins(:pages) | 12 | def conventions |
| 28 | .where("pages.user_id = ? or pages.editor_id = ?", @current_user, @current_user) | 13 | @node_kinds = CccConventions::NODE_KINDS |
| 29 | .order("updated_at desc") | ||
| 30 | .uniq.first(50) | ||
| 31 | end | 14 | end |
| 32 | 15 | ||
| 33 | def search | 16 | def search |
| 34 | @results = Node.search params[:search_term], :per_page => 1000 | 17 | @results = Node.editor_search(params[:search_term]) |
| 35 | 18 | ||
| 36 | respond_to do |format| | 19 | respond_to do |format| |
| 37 | format.html do | 20 | format.html do |
| 38 | render :template => 'admin/search_results' | 21 | render :template => 'admin/search_results' |
| 39 | end | 22 | end |
| 40 | format.js do | 23 | format.js do |
| 41 | render( :json => @results.map do |node| | 24 | render( :json => @results.map do |node| |
| 42 | if node | 25 | if node |
| 43 | { :id => node.id, :title => node.title, :unique_name => node.unique_name, :node_path => node_path(node) } | 26 | { :id => node.id, :title => node.title, :unique_name => node.unique_name, :node_path => node_path(node) } |
| 44 | end | 27 | end |
| 45 | end | 28 | end |
| 46 | ) | 29 | ) |
| 47 | 30 | ||
| 48 | end | 31 | end |
| 32 | end | ||
| 33 | end | ||
| 34 | |||
| 35 | def dashboard_search | ||
| 36 | term = params[:search_term] | ||
| 37 | |||
| 38 | if term.blank? | ||
| 39 | render json: { tags: [], nodes: [] } | ||
| 40 | return | ||
| 49 | end | 41 | end |
| 42 | |||
| 43 | render json: { | ||
| 44 | tags: ActsAsTaggableOn::Tag.named_like(term).limit(5).map { |tag| | ||
| 45 | { name: tag.name, tag_path: tags_nodes_path(tags: tag.name) } | ||
| 46 | }, | ||
| 47 | nodes: Node.editor_search(term).limit(10).map { |node| | ||
| 48 | { node_id: node.id, title: node.title, unique_name: node.unique_name, node_path: node_path(node) } | ||
| 49 | } | ||
| 50 | } | ||
| 50 | end | 51 | end |
| 51 | 52 | ||
| 52 | def menu_search | 53 | def menu_search |
| 53 | if params[:search_term] == "Root" | 54 | if params[:search_term] == "Root" |
| 54 | @results = [Node.root] | 55 | @results = [Node.root] |
| 55 | else | 56 | else |
| 56 | @results = Node.search params[:search_term] | 57 | @results = Node.editor_search(params[:search_term]) |
| 57 | end | 58 | end |
| 58 | 59 | ||
| 59 | respond_to do |format| | 60 | respond_to do |format| |
| 60 | format.html do | 61 | format.html do |
| 61 | render :partial => 'admin/menu_search_results' | 62 | render :partial => 'admin/menu_search_results' |
| 62 | end | 63 | end |
| 63 | 64 | ||
| 64 | format.js do | 65 | format.js do |
| 65 | render( :json => @results.map do |node| | 66 | render( :json => @results.map do |node| |
| 66 | {:node_id => node.id, :title => node.title, :unique_name => node.unique_name} | 67 | {:node_id => node.id, :title => node.title, :unique_name => node.unique_name, :node_path => node_path(node)} |
| 67 | end | 68 | end |
| 68 | ) | 69 | ) |
| 69 | 70 | ||
| 70 | end | 71 | end |
| 71 | end | 72 | end |
| 72 | end | 73 | end |
| 73 | |||
| 74 | end | 74 | end |
