Added CSS for index search fields and revised regex for author search

This commit is contained in:
MrYummy
2017-06-02 19:06:20 +02:00
parent 0c3f6b2223
commit 0d5d69ac6e
4 changed files with 104 additions and 39 deletions

View File

@@ -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
});
});
});

View File

@@ -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;
}
}

View File

@@ -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] %>
<%= title "All threads in #{text}" %>
<% else %>
<%= title "All Threads" %>
<% end %>
<% end %>
<%
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.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" %>
<% if params_list.any? %>
<% if params[:id] %>
<%= link_to "Show All Threads", forumthreads_path(params_list.except("id")), class: "btn right blue" %>
<% else %>
<%= link_to "Show All Threads", forumthreads_path, class: "btn right blue" %>
<% end %>
<% 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 %>

View File

@@ -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] %>