From 32231e4eea55953ebcedcc2a826d5126729ae5ef Mon Sep 17 00:00:00 2001 From: MrYummy Date: Mon, 12 Jun 2017 21:40:33 +0200 Subject: Updated user_target autocomplete regex, removed unnecessary permission check --- app/assets/javascripts/editor.js | 42 ++++++++++++++++++++++++- app/assets/stylesheets/.style.css.scss.swp | Bin 36864 -> 0 bytes app/assets/stylesheets/style.css.scss | 1 - app/controllers/messages_controller.rb | 14 +-------- app/views/application/_md_editor_user.html.erb | 2 +- 5 files changed, 43 insertions(+), 16 deletions(-) delete mode 100644 app/assets/stylesheets/.style.css.scss.swp diff --git a/app/assets/javascripts/editor.js b/app/assets/javascripts/editor.js index 4b35aea..4f4de5d 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})$/, + 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.swp b/app/assets/stylesheets/.style.css.scss.swp deleted file mode 100644 index cb49b61..0000000 Binary files a/app/assets/stylesheets/.style.css.scss.swp and /dev/null differ diff --git a/app/assets/stylesheets/style.css.scss b/app/assets/stylesheets/style.css.scss index de55b5b..2682f91 100644 --- a/app/assets/stylesheets/style.css.scss +++ b/app/assets/stylesheets/style.css.scss @@ -481,7 +481,6 @@ blockquote p { } } .field_container_user { - position: relative; .editor_field { } } diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 6655ea6..7deaeed 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -1,7 +1,5 @@ class MessagesController < ApplicationController - before_filter :check_permission, only: :destroy - def index if current_user @messages = Message.where(user_target: current_user).page(params[:page]) @@ -67,19 +65,9 @@ class MessagesController < ApplicationController end def message_params(add = []) - params[:message][:user_target_id] = User.find_by(ign: params[:message][:user_target].gsub(/[@ ]/,"")).try(:id) + params[:message][:user_target_id] = User.find_by(ign: params[:message][:user_target].strip).try(:id) params[:message][:user_sender_id] = User.find_by(ign: params[:message][:user_sender]).id params.require(:message).permit([:text, :user_target_id, :user_sender_id]) end - - private - - def check_permission - @message = Message.find(params[:id]) - unless @message.user_target == current_user - flash[:alert] = "You are not allowed to view this message" - redirect_to home_statics_path - end - end end diff --git a/app/views/application/_md_editor_user.html.erb b/app/views/application/_md_editor_user.html.erb index 950b962..d799fce 100644 --- a/app/views/application/_md_editor_user.html.erb +++ b/app/views/application/_md_editor_user.html.erb @@ -2,7 +2,7 @@
<% options = (defined?(options) && options || {}) %> <% options[:class] = "#{options[:class]} editor_field" %> - <% options[:placeholder] ||= "Enter user's name. prefix with \"@\" to get suggestions." %> + <% options[:placeholder] ||= "Enter user's name." %> <%= text_field_tag name, content, options %>
-- cgit v1.2.3