From a250c411eb0a94613f5fbac3039ec979bdc06c52 Mon Sep 17 00:00:00 2001 From: MrYummy Date: Fri, 2 Jun 2017 19:06:20 +0200 Subject: Added CSS for index search fields and revised regex for author search --- app/assets/javascripts/editor.js | 42 +++++++++++++++++++++++- app/assets/stylesheets/style.css.scss | 21 ++++++++++++ app/views/forumthreads/index.html.erb | 61 ++++++++++++++++++----------------- app/views/users/index.html.erb | 17 +++++----- 4 files changed, 103 insertions(+), 38 deletions(-) diff --git a/app/assets/javascripts/editor.js b/app/assets/javascripts/editor.js index 4b35aea..c977571 100644 --- a/app/assets/javascripts/editor.js +++ b/app/assets/javascripts/editor.js @@ -88,5 +88,45 @@ $(function() { }], { debounce: 300 }); + $('.md_editor .field_container_user .editor_field').textcomplete([{ + // match up to 2 words (everything except some special characters) + // each word can have up to 16 characters (up to 32 total) + // words must be separated by a single space + match: /(^|\s)(([^!"§$%&\/()=?.,;+*@\s]{1,16} ?){0,1}[^!"§$%&\/()=?.,;+*@\s]{1,16})$/, + search: function (text, callback, match) { + console.log("Searching " + text); + text = text.toLowerCase(); + $.ajax("/users/suggestions", { + type: "post", + data: {name: text}, + dataType: "json", + headers: { + "X-CSRF-Token": $('meta[name="csrf-token"]').attr("content") + }, + success: function(data) { + callback(data); + }, + error: function(xhr, status, err) { + console.error(err); + callback([]); + } + }); + }, + template: function(user) { + var name = user[0]; + var ign = user[1]; + if (name != ign) { + return name + " (" + ign + ")"; + } else { + return ign; + } + }, + cache: true, + replace: function (word) { + return "$1" + word[1] + " "; + } + }], { + debounce: 300 + }); -}); \ No newline at end of file +}); diff --git a/app/assets/stylesheets/style.css.scss b/app/assets/stylesheets/style.css.scss index 18042ad..73ab11f 100644 --- a/app/assets/stylesheets/style.css.scss +++ b/app/assets/stylesheets/style.css.scss @@ -489,6 +489,10 @@ blockquote p { padding: 4em 1em 1em; } } + .field_container_user { + .editor_field { + } + } } ul.dropdown-menu { @@ -1043,3 +1047,20 @@ nav.pagination { border-radius: 0.2em; text-shadow: none; } + +.searchfield { + margin:0px; + height:40px; + display: inline-block; + + .btn { + margin: 4px 1px 0 0; + padding: 6px; + cursor: default; + color: #fff; + border: none; + font-size: 12px; + line-height: normal; + background: #4096ee; + } +} diff --git a/app/views/forumthreads/index.html.erb b/app/views/forumthreads/index.html.erb index d765cda..f41d43d 100644 --- a/app/views/forumthreads/index.html.erb +++ b/app/views/forumthreads/index.html.erb @@ -1,49 +1,51 @@ <%= link_to "Forums", forums_path %> → -<% if params.to_hash.slice("label", "title", "content", "author", "reply").size > 0 %> +<% params_list = params.to_hash %> +<% if params_list.any? %> <%= link_to "All Threads", forumthreads_path %> → Search Results <% else %> <%= "All Threads" %> <% end %> -<% params_list = params.to_hash.slice("id", "query", "label", "title", "content", "author", "reply") %>

- <% if params[:id] %> - <% text = "forum '#{Forum.find(params[:id]).name}'" %> - <% else %> - <% text = "all threads" %> - <% end %> - <% if params_list.size > 0 %> - <%= title "Search results in #{text} (#{@threads.length})" %> - <% else %> + <% + if params[:id] + text = "forum '#{Forum.find(params[:id]).name}'" + if params_list.any? + text = "Search results in #{text} (#{@threads.length})" + else + text = text.capitalize + end + elsif params_list.any? + text = "Search results (#{@threads.length})" + else + text = "All threads" + end + %> + <%= title text %> +
+ <%= link_to "Advanced Search", search_forumthreads_path(params_list), class: "btn right blue" %> + <% if params_list.any? %> <% if params[:id] %> - <%= title "All threads in #{text}" %> + <%= link_to "Show All Threads", forumthreads_path(params_list.except("id")), class: "btn right blue" %> <% else %> - <%= title "All Threads" %> + <%= link_to "Show All Threads", forumthreads_path, class: "btn right blue" %> <% end %> <% end %> -
- <%= link_to "Advanced Search", search_forumthreads_path(params_list), class: "btn right blue" %> - <% if params_list.size > 0 && params[:id] %> - <%= link_to "Show All Threads", forumthreads_path(params_list.except("id")), class: "btn right blue" %> - <% elsif params_list.size > 0 && !params[:id] %> - <%= link_to "Show All Threads", forumthreads_path, class: "btn right blue" %> - <% end %> <% if params[:id] %> <%= link_to "Go to Forum", forum_path(params[:id]), class: "btn right blue" %> <% end %>

-
-<%= form_tag({controller: "forumthreads", action: "search_redirect"}, method: :post, style: "margin:0px;height:40px") do %> - <%= text_field_tag "query", nil, placeholder: "Search...", style: "margin:0px;height:40px;width:300px" %> - <% params.each do |key, value| %> - <%= hidden_field_tag key, params[key] if params[key] && params[key] != params[:query] %> +
+ <%= form_tag({controller: "forumthreads", action: "index"}, method: :get, enforce_utf8: nil) do %> + <%= text_field_tag "query", params[:query], placeholder: "Search...", style: "width:300px" %> + <% params_list.compact.except("query").each do |key, value| %> + <%= hidden_field_tag key, params[key] %> + <% end %> + <%= submit_tag "Go", class: "searchfield btn", style: "width:40px", name: nil %> <% end %> - <%= submit_tag "Go", class: "btn blue", style: "margin:0px;height:40px;width:40px" %> -<% end %> +
- <% counter = 0 %> <% @threads.each do |thread| %> - <% counter += 1 %>
<%= link_to(thread.author.avatar(64), thread.author, title: thread.author.ign) %> @@ -77,7 +79,8 @@
<% end %> - <% if counter == 0 %> + <% if @threads.empty? %> +

No results found

<% end %> <%= paginate @threads %> diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index 8df0fd0..12e80ad 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -1,9 +1,11 @@ -<%= form_tag({controller: "users", action: "search_redirect"}, method: :post, style: "margin:0px;height:40px") do %> - <%= text_field_tag "search", nil, placeholder: "Search for a user", style: "margin:0px;height:40px;width:300px" %> - <%= submit_tag "Go", class: "btn blue", style: "margin:0px;height:40px;width:40px" %> - <%= hidden_field_tag "role", params[:role] %> -<% end %> - +
+ <%= form_tag({controller: "users", action: "index"}, method: :get, enforce_utf8: false) do %> + <%= text_field_tag "search", params[:search], placeholder: "Search for a user", style: "width:300px" %> + <%= submit_tag "Go", class: "searchfield btn", style: "width:40px", name: nil %> + <%= hidden_field_tag "role", params[:role] if params[:role] %> + <%= hidden_field_tag "badge", params[:badge] if params[:badge]%> + <% end %> +

<% if params[:role] && !params[:badge] @@ -19,11 +21,10 @@ %> <%= title text %> <% if params[:search] %> - (<%= @users.select {|u| u.name.downcase.include?(params[:search].downcase) || u.ign.downcase.include?(params[:search].downcase) }.size %>) + (<%= @users.total_count %>) <% else %> (<%= @count %>) <% end %> -

<%= link_to "show all", users_path if params[:role] || params[:badge] %> -- cgit v1.2.3