Skip to content
This repository has been archived by the owner on Apr 23, 2021. It is now read-only.

Commit

Permalink
Merge Karl's pull requests
Browse files Browse the repository at this point in the history
  • Loading branch information
iboard committed Nov 19, 2012
2 parents 2f3cabe + a47956d commit f5a557b
Show file tree
Hide file tree
Showing 24 changed files with 191 additions and 109 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ db/*.sqlite3
/gems
/rerun.txt
/specifications
dump.rdb

# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ gem 'simple_form'
gem 'rails_config'
gem 'capistrano'
gem "ckeditor", "~> 3.7.1"
gem "redis"
gem "will_paginate", "3.0.pre4"
gem "redis"

# Authentication
gem "omniauth", ">= 1.0.2"
Expand Down
19 changes: 0 additions & 19 deletions app/assets/javascripts/autocomplete.js.coffee

This file was deleted.

12 changes: 9 additions & 3 deletions app/assets/javascripts/jquery.tokeninput.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* Licensed jointly under the GPL and MIT licenses,
* choose which one suits your project best!
*
* Changes made by Karl Hochfilzer, marked as // hock
*/

(function ($) {
Expand Down Expand Up @@ -264,6 +265,7 @@ $.TokenList = function (input, url_or_data, settings) {
break;

case KEY.TAB:
// hock
//case KEY.ENTER:
case KEY.NUMPAD_ENTER:
case KEY.COMMA:
Expand Down Expand Up @@ -343,17 +345,20 @@ $.TokenList = function (input, url_or_data, settings) {
// The list to store the dropdown items in
var dropdown = $("<div>")
.addClass(settings.classes.dropdown)
.appendTo("body")
// hock
// .appendTo("body")
.appendTo(".navbar.navbar-fixed-top")
.hide();

// Magic element to help us resize the text input
// hock, width: was "auto"
var input_resizer = $("<tester/>")
.insertAfter(input_box)
.css({
position: "absolute",
top: -9999,
left: -9999,
width: "auto",
width: "150px",
fontSize: input_box.css("fontSize"),
fontFamily: input_box.css("fontFamily"),
fontWeight: input_box.css("fontWeight"),
Expand Down Expand Up @@ -516,7 +521,8 @@ $.TokenList = function (input, url_or_data, settings) {
}

// Clear input box
input_box.val("");
// hock
// input_box.val("");

// Don't show the help dropdown, they've got the idea
hide_dropdown();
Expand Down
42 changes: 32 additions & 10 deletions app/assets/javascripts/search.js.coffee
Original file line number Diff line number Diff line change
@@ -1,15 +1,37 @@
jQuery ->

if $('.search-query').length > 0
_controller = $('.search-query').data('controller')
_hintText = $('.search-query').data('hint-text')
_noResultsText = $('.search-query').data('no-results-text')
_searchingText = $('.search-query').data('searching-text')

$(".search-query").tokenInput("/#{_controller}/autocomplete_search.json", {
crossDomain: false,
theme: "wat",
hintText: _hintText,
noResultsText: _noResultsText,
searchingText: _searchingText,
preventDuplicates: true,
propertyToSearch: "list_name",
tokenValue: 'search_name',
tokenFormatter: (item) -> "<li><p>" + item[this.tokenValue] + "</p></li>",
onAdd: (item) -> tokenInputSearch()
})

if $('#token-input-search_search_text').length > 0
_placeholderText = $('.search-query').data('placeholder')
$('#token-input-search_search_text').attr("placeholder", _placeholderText )
$("#search-button").remove()
$("#token-input-search_search_text").live('keyup', (event) ->
if event.keyCode == 13
tokenInputSearch()
)

$("#search-button").remove()
$("#token-input-search_search_text").keyup (event) ->
if event.keyCode == 13
_value = $('.token-input-token-wwedu p').html() || $('tester').html() || $('tester').val()
controller = $('#search_search_controller').val()
$.ajax("/"+controller, {
type: 'GET',
data: { search: { search_text: _value, search_controller: controller} }
})
$(".token-input-list").remove()
self.tokenInputSearch = () ->
_value = $('.token-input-token-wat p').html() || $('tester').html() || $('tester').val()
controller = $('#search_search_controller').val() || 'pages'
$.ajax("/"+controller, {
type: 'GET',
data: { search: { search_text: _value, search_controller: controller} }
})
5 changes: 5 additions & 0 deletions app/assets/stylesheets/endless_page.css.scss
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,8 @@ $color-shadow: darken($color-base,50%);
text-align: center;
}

.page_seperator_bold {
clear: both;
border-top: 3px solid #ddd;
text-align: center;
}
12 changes: 6 additions & 6 deletions app/assets/stylesheets/token-input-wat.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ ul.token-input-list-wat {
min-height: 1px;
z-index: 999;
margin: 0;
padding: 3px;
background: transparent;
}

Expand Down Expand Up @@ -110,19 +109,19 @@ li.token-input-input-token-wat {
li.token-input-input-token-wat input {
background-color: #6a97b5;
color: white;
height: 18px;
height: 16px;
border-radius: 15px 15px 15px 15px;
border: none;
width: 100px;
width: 180px;
padding: 4px 9px;
margin: 0;
}

/*do not combine the following 2, it doesn't work!*/
input::-webkit-input-placeholder {
li.token-input-input-token-wat input::-webkit-input-placeholder {
color:white;
}
input:-moz-placeholder {
li.token-input-input-token-wat input:-moz-placeholder {
color:white;
}

Expand Down Expand Up @@ -152,7 +151,7 @@ div.token-input-dropdown-wat p {
margin: 0;
padding: 0 5px;
font-style: italic;
color: #aaa;
color: #333333;
}

div.token-input-dropdown-wat h3.token-input-dropdown-category-wat {
Expand All @@ -167,6 +166,7 @@ div.token-input-dropdown-wat h3.token-input-dropdown-category-wat {
div.token-input-dropdown-wat ul {
margin: 0;
padding: 0;
color: #333333;
}

div.token-input-dropdown-wat ul li {
Expand Down
4 changes: 4 additions & 0 deletions app/assets/stylesheets/wat.css.scss
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ body {
}
}

#global_result #result_detail {
margin-top: 20px;
}

.inline {
display: inline;
}
Expand Down
23 changes: 12 additions & 11 deletions app/controllers/pages_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

class PagesController < ApplicationController

before_filter :parse_search_param, only: [:index]
_allow_index_actions = Settings.supress_global_search != true ? [:show, :index] : [:show]
_allow_index_actions = Settings.supress_global_search == true ? [:show] : [:show, :index, :autocomplete_search]
before_filter :authenticate_user!, except: _allow_index_actions
before_filter :authenticate_admin!, except: [:index, :show]
before_filter :authenticate_admin!, except: [:index, :show, :autocomplete_search]
before_filter :set_last_modifier, only: [:create, :update]

# TODO: don't use global variable $pages_to_show
before_filter :parse_search_param, only: [:index]

def index
$pages_to_show = nil if !params[:page].present?
@pages_to_show = nil if !params[:page].present?
_pp = Settings.paginate_pages_per_page || 4
$pages_to_show ||= (@searched_pages ? @searched_pages : permitted_pages )
redirect_to signin_path, alert: t(:you_need_to_sign_in) if !$pages_to_show
@pages ||= $pages_to_show.paginate( page: (params[:page] ? params[:page] : 1), per_page: _pp )
@pages_to_show ||= (@searched_pages ? @searched_pages : permitted_pages )
redirect_to signin_path, alert: t(:you_need_to_sign_in) if !@pages_to_show
@pages ||= @pages_to_show.asc(:position).paginate( page: (params[:page] ? params[:page] : 1), per_page: _pp )
end

def show
Expand Down Expand Up @@ -125,11 +125,11 @@ def autocomplete_search
respond_to do |format|
format.json {
render :json => permitted_pages.any_of({ title: /#{params[:q]}/i }, { body: /#{params[:q]}/i })
.only(:title)
.only(:title).asc(:title)
.map{ |page|
[
:name => page.title,
:search_name => page.title
:search_name => page.title,
:list_name => page.title
]
}
.flatten
Expand All @@ -147,6 +147,7 @@ def parse_search_param
{body: /#{@search.search_text}/i}
)
else
@searched_pages = nil
@search = Search.new search_text: '', search_controller: 'pages'
end
end
Expand Down
17 changes: 9 additions & 8 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ class UsersController < ApplicationController

def index
if can_read?('Admin')
$users_to_show = nil if !params[:page].present?
_pp = Settings.paginate_users_per_page || 4
$users_to_show ||= (@searched_users ? @searched_users : User.asc(:name))
@users ||= $users_to_show.asc(:name).paginate( page: (params[:page] ? params[:page] : 1), per_page: _pp )
@searched_users ||= User.asc(:name)
@users ||= @searched_users.asc(:name).paginate( page: (params[:page] ? params[:page] : 1), per_page: _pp )
@users
else
redirect_to root_path, :alert => t(:access_denied)
end
Expand Down Expand Up @@ -139,11 +139,11 @@ def autocomplete_search
respond_to do |format|
format.json {
render :json => User.any_of({ name: /#{params[:q]}/i }, { email: /#{params[:q]}/i })
.only(:name,:email)
.only(:name,:email).asc(:name)
.map{ |user|
[
:name => user.name,
:search_name => user.name + " (#{user.email})"
:search_name => user.name,
:list_name => user.name + " (#{user.email})"
]
}
.flatten
Expand All @@ -153,14 +153,15 @@ def autocomplete_search

private
def parse_search_param
if params[:search].present?
if (params[:search].present? && params[:search] != "")
_p = params[:search].is_a?(String) ? JSON.parse( params[:search] ) : params[:search]
@search = Search.new( search_text: _p['search_text'], search_controller: _p['search_controller'] )
@searched_users = User.any_of(
{name: /#{@search.search_text}/i},
{email: /#{@search.search_text}/i}
).asc(:name)
)
else
@searched_users = nil
@search = Search.new search_text: '', search_controller: 'users'
end
end
Expand Down
24 changes: 24 additions & 0 deletions app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,30 @@ def self.find_with_authentication(provider, uid)
User.where(:authentications.matches => {provider: provider, uid: uid.to_s}).first
end

# Find Users by a given search-condition
def self.search(search)
if search and search != ""
_p = search.is_a?(String) ? JSON.parse( search ) : search
@search = Search.new( search_text: _p['search_text'], search_controller: _p['search_controller'] )
# @searched_users = User.any_of(
# {name: /#{@search.search_text}/i},
# {email: /#{@search.search_text}/i}
# ).asc(:name)
# search_params[:search]
any_of(
{name: /#{@search.search_text}/i},
{email: /#{@search.search_text}/i}
)
else
scoped
end
end






# Adds an authentication to this user
# @param [Authentication]
def add_authentication(authentication)
Expand Down
1 change: 1 addition & 0 deletions app/views/layouts/application.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
= render "timelines/users_timeline", user: current_user if current_user && !@no_timeline
.main-background
.container.main
#global_result
- if content_for?(:top_menu)
=content_for(:top_menu)
- if flash.any?
Expand Down
7 changes: 0 additions & 7 deletions app/views/pages/_pages_pagination.haml

This file was deleted.

2 changes: 1 addition & 1 deletion app/views/pages/index.haml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@

.container
#result
= render "pages_pagination"
= render :partial => '/shared/pagination_page', :locals => { :resources => @pages, :path => pages_path, :alert_error_text => t(:no_page_found_for, search: @search.search_text) }
23 changes: 15 additions & 8 deletions app/views/pages/index.js.erb
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
<% if params[:search].present? %>
$('#result').html('<%= escape_javascript( render "pages_pagination" ) -%>');
<% if @pages.current_page == 1 && params[:search].present? %>
if ($('#result').length > 0){
$('#result').html('<%= escape_javascript( render :partial => "/shared/pagination_page", :locals => { :resources => @pages, :path => pages_path, :alert_error_text => t(:no_page_found_for, search: @search.search_text) } ) -%>');}
else{
$('#global_result').html('<div id="result_detail"><%= escape_javascript( render :partial => "/shared/pagination_page", :locals => { :resources => @pages, :path => pages_path, :alert_error_text => t(:no_page_found_for, search: @search.search_text) } ) -%></div>');}
<% end %>

/* REVIEW: This file is needed for any endles-loading view. Is there a way to unify this, so we have it only once? */
$(".pagination").html("<%= escape_javascript( page_navigation_links( @pages, 'pagination', '&#8592; Previous', 'Next &#8594;' ) ) %>");
$(".pagination").html("<%= escape_javascript( page_navigation_links( @pages, 'pagination', '&#8592; ' + t(:previous), t(:next) + ' &#8594;' ) ) %>");

<% if @pages.current_page > 1 %>
$('.load_more').before( '<div id="page<%= @pages.current_page -%>" style="clear: both; display: none;">'+
Expand All @@ -15,11 +18,15 @@ $(".pagination").html("<%= escape_javascript( page_navigation_links( @pages, 'pa

<% if is_on_last_page(@pages) %>
$('#page<%= @pages.current_page -%>').slideDown();
$('#load_more').html('<p style="text-align:center; margin-top: 20px;"><%= escape_javascript(t(:end_of_list)) -%></p>');
$('#load_more').html('<p style="text-align:center; margin-top: 20px;"><%= escape_javascript(t(:end_of_list)) -%></p><p/ class="page_seperator_bold"p>');
$(".pagination").hide();
<% else %>
$('#load_more').html( '<%= escape_javascript(link_to_function(t(:load_more),"insert_load_button( 'load_more','#{t(:loading)}',"+
"'#{pages_path(:page => (params[:page] ? (params[:page].to_i+1) : 2),:order => (params[:order] ? params[:order].to_sym : nil), :direction => (params[:direction] ? params[:direction].to_sym : nil))}')", :id => "load_more_link" )) -%>');
$('#page<%= @pages.current_page -%>').slideDown();
<% if params[:search].present? %>
$('#load_more').html( '<%= escape_javascript(link_to_function(t(:load_more_link),"insert_load_button( 'load_more','#{t(:loading)}',"+
"'#{pages_path(:search => (params[:search] ? params[:search] : nil),:page => (params[:page] ? (params[:page].to_i+1) : 2),:order => (params[:order] ? params[:order].to_sym : nil), :direction => (params[:direction] ? params[:direction].to_sym : nil))}')", :id => "load_more_link" )) -%>');
<% else %>
$("#load_more").html( "<%= escape_javascript( render :partial => '/shared/load_more', :locals => { :resources => @pages, :path => pages_path } ) -%>" );
<% end %>
$("#page<%= @pages.current_page -%>").slideDown();
setTimeout("checkScroll()", 500);
<% end %>
<% end %>
Loading

0 comments on commit f5a557b

Please sign in to comment.