droom 0.2.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/assets/images/droom/Untitled-1.png +0 -0
- data/app/assets/images/droom/asterisk.png +0 -0
- data/app/assets/images/droom/dropbox_small.png +0 -0
- data/app/assets/images/droom/handle.png +0 -0
- data/app/assets/images/droom/minisymbols.png +0 -0
- data/app/assets/images/droom/revoke_small.png +0 -0
- data/app/assets/images/droom/toggle.png +0 -0
- data/app/assets/javascripts/droom.js.coffee +4 -4
- data/app/assets/javascripts/droom/actions.js.coffee +16 -5
- data/app/assets/javascripts/droom/lib/wysihtml5.js +18 -0
- data/app/assets/javascripts/droom/widgets.js.coffee +72 -111
- data/app/assets/stylesheets/droom.css.sass +195 -119
- data/app/assets/stylesheets/{_definitions.css.sass → droom/_mixins.css.sass} +28 -43
- data/app/assets/stylesheets/{lib → droom}/_popups.css.sass +0 -0
- data/app/assets/stylesheets/{lib → droom}/_toolbar.css.sass +2 -4
- data/app/assets/stylesheets/droom/_variables.css.sass +46 -0
- data/app/assets/stylesheets/lib/_kalendae.css.sass +2 -2
- data/app/controllers/droom/engine_controller.rb +5 -1
- data/app/controllers/droom/events_controller.rb +9 -6
- data/app/controllers/droom/groups_controller.rb +1 -1
- data/app/controllers/droom/organisations_controller.rb +1 -1
- data/app/controllers/droom/people_controller.rb +18 -18
- data/app/controllers/droom/suggestions_controller.rb +0 -1
- data/app/controllers/droom/user_confirmations_controller.rb +55 -0
- data/app/controllers/droom/users_controller.rb +1 -2
- data/app/controllers/droom/youtube_controller.rb +4 -1
- data/app/helpers/droom/droom_helper.rb +3 -3
- data/app/models/droom/document.rb +3 -27
- data/app/models/droom/event.rb +0 -12
- data/app/models/droom/folder.rb +9 -10
- data/app/models/droom/group.rb +0 -7
- data/app/models/droom/person.rb +13 -20
- data/app/models/droom/scrap.rb +2 -12
- data/app/models/droom/user.rb +29 -5
- data/app/models/droom/venue.rb +0 -17
- data/app/views/{droom/users/unwelcome.en.html.haml → devise/confirmations/failure.en.html.haml} +5 -2
- data/app/views/devise/confirmations/new.html.haml +25 -0
- data/app/views/devise/confirmations/show.html.haml +32 -0
- data/app/views/droom/dashboard/_documents.html.haml +9 -0
- data/app/views/droom/dashboard/_folders.html.haml +1 -1
- data/app/views/droom/dashboard/_groups.html.haml +9 -0
- data/app/views/droom/documents/_document.html.haml +1 -1
- data/app/views/droom/documents/_table_document.html.haml +1 -1
- data/app/views/droom/events/_event.html.haml +0 -1
- data/app/views/droom/events/edit.html.haml +1 -1
- data/app/views/droom/events/index.html.haml +6 -4
- data/app/views/droom/events/new.html.haml +1 -1
- data/app/views/droom/events/show.html.haml +1 -1
- data/app/views/droom/folders/_folder.html.haml +2 -2
- data/app/views/droom/folders/edit.html.haml +1 -1
- data/app/views/droom/folders/index.html.haml +3 -1
- data/app/views/droom/folders/new.html.haml +1 -1
- data/app/views/droom/groups/_group.html.haml +6 -3
- data/app/views/droom/groups/edit.html.haml +1 -1
- data/app/views/droom/groups/index.html.haml +20 -1
- data/app/views/droom/groups/new.html.haml +1 -1
- data/app/views/droom/organisations/_action_menu.html.haml +3 -1
- data/app/views/droom/organisations/_organisation.html.haml +0 -1
- data/app/views/droom/organisations/edit.html.haml +1 -1
- data/app/views/droom/organisations/new.html.haml +1 -1
- data/app/views/droom/panels/_dropbox.html.haml +1 -1
- data/app/views/droom/panels/{_search.html.haml → _suggestions.html.haml} +3 -4
- data/app/views/droom/people/_form.html.haml +15 -19
- data/app/views/droom/people/_listing.html.haml +1 -1
- data/app/views/droom/people/_person.html.haml +3 -3
- data/app/views/droom/people/_suggested.html.haml +1 -1
- data/app/views/droom/people/edit.html.haml +1 -1
- data/app/views/droom/people/new.html.haml +1 -1
- data/app/views/droom/people/show.html.haml +31 -1
- data/app/views/droom/scraps/full/_document.html.haml +1 -1
- data/app/views/droom/scraps/thumbs/_document.html.haml +2 -2
- data/app/views/droom/shared/{_search_form.html.haml → _suggestion_form.html.haml} +1 -1
- data/app/views/droom/users/_extra_columns.html.haml +0 -0
- data/app/views/droom/users/_extra_columns_header.html.haml +0 -0
- data/app/views/droom/users/_extra_columns_note.html.haml +0 -0
- data/app/views/droom/users/_form.html.haml +5 -12
- data/app/views/droom/users/_user_or_person.html.haml +24 -15
- data/app/views/droom/users/_users_table.html.haml +24 -6
- data/app/views/droom/users/edit.html.haml +1 -1
- data/app/views/droom/users/index.html.haml +2 -5
- data/config/locales/devise.en.yml +1 -1
- data/config/locales/en.yml +22 -7
- data/config/routes.rb +4 -3
- data/lib/droom.rb +28 -14
- data/lib/droom/engine.rb +2 -0
- data/lib/droom/version.rb +1 -1
- data/spec/dummy/log/dav.log +1 -0
- data/spec/dummy/log/development.log +2 -0
- data/spec/dummy/log/test.log +1 -0
- metadata +29 -33
- data/app/controllers/droom/confirmations_controller.rb +0 -38
- data/app/controllers/droom/search_controller.rb +0 -66
- data/app/views/cropper/uploads/_crop.html.haml +0 -46
- data/app/views/devise/mailer/confirmation_instructions.en.html.haml +0 -24
- data/app/views/devise/mailer/reset_password_instructions.en.html.haml +0 -21
- data/app/views/droom/shared/_search_results.html.haml +0 -9
- data/app/views/droom/shared/search.html.haml +0 -18
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
module Droom
|
|
2
|
-
class ConfirmationsController < Devise::ConfirmationsController
|
|
3
|
-
|
|
4
|
-
# If user not yet confirmed, show password form (rather than just confirming, as it normal)
|
|
5
|
-
# If already confirmed, allow devise to do whatever devise does.
|
|
6
|
-
#
|
|
7
|
-
def show
|
|
8
|
-
self.resource = resource_class.find_by_confirmation_token(params[:confirmation_token])
|
|
9
|
-
super if resource.confirmed?
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# the purpose of this is to add another step between user creation and user confirmation, such that
|
|
13
|
-
# we perform the confirmation only if a password is supplied and validates.
|
|
14
|
-
#
|
|
15
|
-
# NB. in the tortured RESTfulness of devise, that means turning confirmation#show into a password form
|
|
16
|
-
# and using confirmations#update to update the user object accordingly.
|
|
17
|
-
#
|
|
18
|
-
def update
|
|
19
|
-
self.resource = resource_class.find_by_confirmation_token(params[resource_name][:confirmation_token])
|
|
20
|
-
|
|
21
|
-
result = resource.update_attributes(params[resource_name].except(:confirmation_token))
|
|
22
|
-
|
|
23
|
-
Rails.logger.warn ">>> update_attributes gave us #{result.inspect} and password #{resource.password} / #{resource.password_confirmation}"
|
|
24
|
-
Rails.logger.warn ">>> errors: #{resource.errors.full_messages}"
|
|
25
|
-
|
|
26
|
-
if result && resource.password_match?
|
|
27
|
-
self.resource = resource_class.confirm_by_token(params[resource_name][:confirmation_token])
|
|
28
|
-
set_flash_message :notice, :confirmed
|
|
29
|
-
sign_in_and_redirect(resource_name, resource)
|
|
30
|
-
else
|
|
31
|
-
# back to the password form
|
|
32
|
-
set_flash_message :error, :password_error
|
|
33
|
-
render :action => "show"
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
end
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
module Droom
|
|
2
|
-
class SearchController < Droom::EngineController
|
|
3
|
-
respond_to :json, :js, :html
|
|
4
|
-
before_filter :authenticate_user!
|
|
5
|
-
before_filter :get_classes
|
|
6
|
-
before_filter :get_fields
|
|
7
|
-
|
|
8
|
-
def index
|
|
9
|
-
@results = []
|
|
10
|
-
if @fragment = params[:term]
|
|
11
|
-
@page = params[:page] || 1
|
|
12
|
-
frag = @fragment.force_encoding("US-ASCII")
|
|
13
|
-
# if term isn't empty
|
|
14
|
-
unless frag == ""
|
|
15
|
-
classes = Droom.searchable_classes.values.collect {|klass| klass.constantize}
|
|
16
|
-
highlights = @highlights.collect {|field| field.to_sym}
|
|
17
|
-
# search the searchable classes
|
|
18
|
-
# highlight matching words from highlightable fields
|
|
19
|
-
search = Sunspot.search classes do
|
|
20
|
-
fulltext frag do
|
|
21
|
-
highlights.each do |hl|
|
|
22
|
-
highlight hl
|
|
23
|
-
end
|
|
24
|
-
with visible_to?(current_person)
|
|
25
|
-
end
|
|
26
|
-
paginate :page => @page, :per_page => 10
|
|
27
|
-
end
|
|
28
|
-
# push the hits (for retrieving highlights) into the search results
|
|
29
|
-
search.each_hit_with_result do |hit, result|
|
|
30
|
-
if @requested_types.include? result.class.to_s
|
|
31
|
-
result[:hit] = if hit.highlights.length > 0 then hit else nil end
|
|
32
|
-
@results.push result
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
respond_with @results do |format|
|
|
38
|
-
format.html { render "droom/shared/search" }
|
|
39
|
-
format.json { render :json => @results.map(&:as_search_result).to_json }
|
|
40
|
-
format.js { render :partial => "droom/shared/search_results" }
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
protected
|
|
45
|
-
|
|
46
|
-
def get_fields
|
|
47
|
-
@highlights = []
|
|
48
|
-
@requested_types.each do |klass|
|
|
49
|
-
klass.constantize.highlight_fields.each do |hlf|
|
|
50
|
-
@highlights.push hlf unless @highlights.include? hlf
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def get_classes
|
|
56
|
-
searchable_classes = Droom.searchable_classes
|
|
57
|
-
@types = [params[:type]].flatten.compact.uniq
|
|
58
|
-
@types = searchable_classes.keys if @types.empty?
|
|
59
|
-
|
|
60
|
-
logger.warn ">>> requested_types is #{@types.inspect}"
|
|
61
|
-
|
|
62
|
-
@requested_types = searchable_classes.values_at(*@types)
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// default state of precrop upload
|
|
2
|
-
|
|
3
|
-
- upload ||= @upload
|
|
4
|
-
- recipient = (params[:for] || "scrap").to_sym
|
|
5
|
-
|
|
6
|
-
- if recipient == :scrap
|
|
7
|
-
- object = Droom::Scrap.new
|
|
8
|
-
- w = 580
|
|
9
|
-
- h = 326
|
|
10
|
-
- multiplier = 1
|
|
11
|
-
|
|
12
|
-
- elsif recipient == :person
|
|
13
|
-
- object = Droom::Person.new
|
|
14
|
-
- w = 130
|
|
15
|
-
- h = 130
|
|
16
|
-
- multiplier = 4
|
|
17
|
-
|
|
18
|
-
- prefix = 'image'
|
|
19
|
-
|
|
20
|
-
- max_w = upload.width(:precrop)
|
|
21
|
-
- max_h = upload.height(:precrop)
|
|
22
|
-
- image_w = max_w * 3 / 4
|
|
23
|
-
- image_h = max_h * 3 / 4
|
|
24
|
-
- image_l = (w - image_w)/2
|
|
25
|
-
- image_t = (h - image_h)/2
|
|
26
|
-
|
|
27
|
-
// scale_* will already be defined when editing an existing crop
|
|
28
|
-
- scale_w = params[:scale_w] || image_w
|
|
29
|
-
- scale_h = params[:scale_h] || image_h
|
|
30
|
-
- offset_l = params[:offset_l] || image_l
|
|
31
|
-
- offset_t = params[:offset_t] || image_t
|
|
32
|
-
|
|
33
|
-
.cropper
|
|
34
|
-
.preview{:style => "width: #{scale_w}px; height: #{scale_h}px; top: #{offset_t}px; left: #{offset_l}px"}
|
|
35
|
-
%img{:src => upload.file.url(:precrop)}
|
|
36
|
-
|
|
37
|
-
= fields_for recipient, object do |sf|
|
|
38
|
-
%fieldset.crop
|
|
39
|
-
= hidden_field_tag :multiplier, multiplier
|
|
40
|
-
= sf.hidden_field :"#{prefix}_offset_left", :value => offset_l, :class => 'ol'
|
|
41
|
-
= sf.hidden_field :"#{prefix}_offset_top", :value => offset_t, :class => 'ot'
|
|
42
|
-
= sf.hidden_field :"#{prefix}_upload_id", :value => upload.id
|
|
43
|
-
.scaler
|
|
44
|
-
%p.range
|
|
45
|
-
= sf.range_field :"#{prefix}_scale_width", :min => w, :max => max_w, :value => scale_w, :class => 'sw'
|
|
46
|
-
= sf.hidden_field :"#{prefix}_scale_height", :value => scale_h, :class => 'sh'
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
%p
|
|
2
|
-
Dear
|
|
3
|
-
= @resource.name + ','
|
|
4
|
-
|
|
5
|
-
%p
|
|
6
|
-
You are cordially invited to visit our new Data Room.
|
|
7
|
-
|
|
8
|
-
%p
|
|
9
|
-
The data room is a private space for the dissemination of useful information.
|
|
10
|
-
|
|
11
|
-
%p
|
|
12
|
-
An account has been created for you; all that remains is to activate it and choose a password.
|
|
13
|
-
|
|
14
|
-
%h2
|
|
15
|
-
= link_to "Please click here to begin", confirmation_url(@resource, :confirmation_token => @resource.confirmation_token)
|
|
16
|
-
|
|
17
|
-
%p
|
|
18
|
-
As always your comments and suggestions will be very welcome.
|
|
19
|
-
|
|
20
|
-
%p
|
|
21
|
-
With best wishes,
|
|
22
|
-
|
|
23
|
-
%p
|
|
24
|
-
= Droom.email_from_name
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
%p
|
|
2
|
-
Hello
|
|
3
|
-
= @user.best_name + ','
|
|
4
|
-
|
|
5
|
-
%p
|
|
6
|
-
Someone, perhaps you, has entered your email address into the 'forgotten password' form in the data room.
|
|
7
|
-
|
|
8
|
-
%p
|
|
9
|
-
If that person was not you, please don't be concerned: you are receiving this message and they are not.
|
|
10
|
-
Please ignore it and carry on as usual.
|
|
11
|
-
|
|
12
|
-
%p
|
|
13
|
-
If you would like to change your password, please click on the link below:
|
|
14
|
-
|
|
15
|
-
%h2
|
|
16
|
-
= link_to "Change your password here", edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
|
|
17
|
-
|
|
18
|
-
%p
|
|
19
|
-
Your password will not change until you complete this process, so if you have just remembered it you can still
|
|
20
|
-
= link_to "log in", new_user_session_url
|
|
21
|
-
as usual.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
%h1.pagetitle
|
|
2
|
-
Search
|
|
3
|
-
|
|
4
|
-
%form.search_form{:action => droom.search_url}
|
|
5
|
-
= text_field_tag :term, params[:term], :placeholder => t(:advanced_search), :autocomplete => "off", :class => "search_box"
|
|
6
|
-
= submit_tag "search"
|
|
7
|
-
|
|
8
|
-
= render :partial => 'droom/shared/search_results'
|
|
9
|
-
|
|
10
|
-
%p.note
|
|
11
|
-
This search works in a fairly google-like way. It is designed more for strength than sophistication,
|
|
12
|
-
but your query can include modifiers like
|
|
13
|
-
%strong +term
|
|
14
|
-
and
|
|
15
|
-
%strong -term
|
|
16
|
-
to insist on the presence or absence of a word, and "phrases enclosed in double quotes" must occur intact.
|
|
17
|
-
The index includes uploaded documents as well as our events and people.
|
|
18
|
-
|