summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/admin_controller.rb15
-rw-r--r--app/views/layouts/admin.html.erb8
-rw-r--r--config/routes.rb3
-rw-r--r--config/sphinx.yml3
-rw-r--r--public/javascripts/admin_interface.js2
-rw-r--r--public/javascripts/admin_search.js28
-rw-r--r--public/stylesheets/admin.css5
7 files changed, 61 insertions, 3 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index 55c66cf..8d7d2ea 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -12,4 +12,19 @@ class AdminController < ApplicationController
12 ) 12 )
13 end 13 end
14 14
15 def search
16 @results = Node.search params[:search_term]
17
18 respond_to do |format|
19 format.html
20 format.js do
21 render( :json => @results.map do |node|
22 {:id => node.id, :title => node.title}
23 end
24 )
25
26 end
27 end
28 end
29
15end 30end
diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb
index 7902cae..fea6b5a 100644
--- a/app/views/layouts/admin.html.erb
+++ b/app/views/layouts/admin.html.erb
@@ -9,6 +9,7 @@
9 <%= stylesheet_link_tag 'admin' %> 9 <%= stylesheet_link_tag 'admin' %>
10 <%= javascript_include_tag 'jquery-1.3.2.min' %> 10 <%= javascript_include_tag 'jquery-1.3.2.min' %>
11 <%= javascript_include_tag 'tiny_mce/tiny_mce.js' %> 11 <%= javascript_include_tag 'tiny_mce/tiny_mce.js' %>
12 <%= javascript_include_tag 'admin_search.js' %>
12 <%= javascript_include_tag 'admin_interface.js' %> 13 <%= javascript_include_tag 'admin_interface.js' %>
13 14
14 <script type="text/javascript"> 15 <script type="text/javascript">
@@ -38,6 +39,11 @@
38 <div id="subnavigation"> 39 <div id="subnavigation">
39 <%= yield :subnavigation %> 40 <%= yield :subnavigation %>
40 </div> 41 </div>
42 <div id="admin_search">
43 <% form_tag admin_search_path do %>
44 <%= text_field_tag :search_term %>
45 <% end %>
46 </div>
41 <div style="clear: both"></div> 47 <div style="clear: both"></div>
42 <div id="flash"> 48 <div id="flash">
43 <%= flash[:notice] %> 49 <%= flash[:notice] %>
@@ -45,6 +51,8 @@
45 <div id="content"> 51 <div id="content">
46 <%= yield :layout %> 52 <%= yield :layout %>
47 </div> 53 </div>
54
55 <div id="results"></div>
48 </div> 56 </div>
49 </body> 57 </body>
50</html> 58</html>
diff --git a/config/routes.rb b/config/routes.rb
index bf4ba10..7456b60 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,8 +1,6 @@
1ActionController::Routing::Routes.draw do |map| 1ActionController::Routing::Routes.draw do |map|
2 map.resources :assets 2 map.resources :assets
3 3
4
5
6 map.filter :locale 4 map.filter :locale
7 5
8 map.root( 6 map.root(
@@ -19,6 +17,7 @@ ActionController::Routing::Routes.draw do |map|
19 map.resources :nodes, :member => {:publish => :put, :unlock => :put} 17 map.resources :nodes, :member => {:publish => :put, :unlock => :put}
20 map.logout '/logout', :controller => 'sessions', :action => 'destroy' 18 map.logout '/logout', :controller => 'sessions', :action => 'destroy'
21 map.login '/login', :controller => 'sessions', :action => 'new' 19 map.login '/login', :controller => 'sessions', :action => 'new'
20 map.admin_search 'admin/search', :controller => 'admin', :action => 'search'
22 map.resources :users 21 map.resources :users
23 map.resource :session 22 map.resource :session
24 23
diff --git a/config/sphinx.yml b/config/sphinx.yml
new file mode 100644
index 0000000..3924be2
--- /dev/null
+++ b/config/sphinx.yml
@@ -0,0 +1,3 @@
1development:
2 enable_star: 1
3 min_infix_len: 1 \ No newline at end of file
diff --git a/public/javascripts/admin_interface.js b/public/javascripts/admin_interface.js
index 0085bc2..5fe91a2 100644
--- a/public/javascripts/admin_interface.js
+++ b/public/javascripts/admin_interface.js
@@ -1,4 +1,6 @@
1$(document).ready(function () { 1$(document).ready(function () {
2 admin_search.initialize();
3
2 $("#metadata").attr("style", "display: none;"); 4 $("#metadata").attr("style", "display: none;");
3 5
4 $("#button").click(function () { 6 $("#button").click(function () {
diff --git a/public/javascripts/admin_search.js b/public/javascripts/admin_search.js
new file mode 100644
index 0000000..d645cca
--- /dev/null
+++ b/public/javascripts/admin_search.js
@@ -0,0 +1,28 @@
1admin_search = {
2
3 initialize : function() {
4 $("#search_term").bind("keyup", function() {
5 if ($(this).attr("value")) {
6 $.ajax({
7 type: "GET",
8 url: "/admin/search",
9 data: "search_term=" + $(this).attr("value"),
10 dataType: "json",
11 success : function(results) {
12 admin_search.show_results(results);
13 }
14 });
15 }
16 else {
17 $('#results').empty();
18 }
19 });
20 },
21
22 show_results : function(results) {
23 $('#results').empty();
24 for (result in results) {
25 $('#results').append("<p>" + results[result].title + "</p>");
26 }
27 }
28} \ No newline at end of file
diff --git a/public/stylesheets/admin.css b/public/stylesheets/admin.css
index 982a231..e077918 100644
--- a/public/stylesheets/admin.css
+++ b/public/stylesheets/admin.css
@@ -64,7 +64,7 @@ div.pagination span.current, div.pagination a:hover {
64 text-align: right; 64 text-align: right;
65} 65}
66 66
67#navigation { 67#navigation, #subnavigation {
68 margin-left: 0px; 68 margin-left: 0px;
69 float: left; 69 float: left;
70} 70}
@@ -100,6 +100,9 @@ div.pagination span.current, div.pagination a:hover {
100 background-color: #000000; 100 background-color: #000000;
101} 101}
102 102
103#admin_search {
104}
105
103/* Nodes */ 106/* Nodes */
104 107
105table#node_table { 108table#node_table {