summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMrYummy <elemental428@gmail.com>2017-06-02 19:06:20 +0200
committerMrYummy <elemental428@gmail.com>2017-06-18 13:11:36 -0400
commita250c411eb0a94613f5fbac3039ec979bdc06c52 (patch)
tree2f0630d6081b00b055c12945e5388a5cef3520c3
parent4105f1c61f500c6de1b2c9764cfc8f75f5419352 (diff)
Added CSS for index search fields and revised regex for author search
-rw-r--r--app/assets/javascripts/editor.js42
-rw-r--r--app/assets/stylesheets/style.css.scss21
-rw-r--r--app/views/forumthreads/index.html.erb61
-rw-r--r--app/views/users/index.html.erb17
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 + " <small>(" + ign + ")</small>";
+ } 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") %>
<h1>
- <% 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 %>
+ <br>
+ <%= 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 %>
- <br>
- <%= 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 %>
</h1>
-<br>
-<%= 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] %>
+<div class="searchfield">
+ <%= 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 %>
+</div>
</h1>
<div id="forum_groups">
- <% counter = 0 %>
<% @threads.each do |thread| %>
- <% counter += 1 %>
<div class="item-group with-avatar" id="thread-<%= thread.id %>">
<div class="header">
<%= link_to(thread.author.avatar(64), thread.author, title: thread.author.ign) %>
@@ -77,7 +79,8 @@
</div>
</div>
<% end %>
- <% if counter == 0 %>
+ <% if @threads.empty? %>
+ <br>
<h3>No results found</h3>
<% 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 %>
-
+<div class="searchfield">
+ <%= 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 %>
+</div>
<h1>
<%
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 %>
-
</h1>
<%= link_to "show all", users_path if params[:role] || params[:badge] %>