droom 0.2.1 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,4 +1,7 @@
|
|
1
1
|
#main.events
|
2
|
+
%p.standfirst
|
3
|
+
= t :calendar_introduction
|
4
|
+
|
2
5
|
- if @direction == 'past'
|
3
6
|
%h2.section
|
4
7
|
= t(:past_events)
|
@@ -8,10 +11,9 @@
|
|
8
11
|
- else
|
9
12
|
%h2.section
|
10
13
|
= t(:future_events)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
%span.addendum
|
15
|
+
= link_to t(:show_past_events), droom.events_url(:direction => "past"), :class => "past"
|
16
|
+
|
15
17
|
- if admin?
|
16
18
|
%p.action
|
17
19
|
= link_to t(:add_event), droom.new_event_url, :class => "add", :data => {:action => "popup", :affected => ".events_list, #minicalendar"}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
= render :partial => 'droom/events/event', :object => @event, :locals => {:full_attachments => true}
|
3
3
|
|
4
4
|
- content_for :title do
|
5
|
-
=
|
5
|
+
= t(:calendar)
|
6
6
|
|
7
7
|
- content_for :margin do
|
8
8
|
= render :partial => 'droom/shared/calendar_holder'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
- folder ||= @folder
|
2
2
|
- standalone ||= false
|
3
|
-
- title ||= folder.name
|
3
|
+
- title ||= folder.name || folder.slug
|
4
4
|
- open ||= false
|
5
5
|
- if @folder
|
6
6
|
- open = true if folder == @folder || folder.ancestor_of?(@folder)
|
@@ -11,7 +11,7 @@
|
|
11
11
|
- cssclass << " empty" unless folder.populated?
|
12
12
|
- cssclass << " standalone" if standalone
|
13
13
|
|
14
|
-
%li{:class => cssclass, :id => "folder_#{folder.id}", :data => {:refreshable => true, :url => droom.folder_path(folder, :js)} }
|
14
|
+
%li{:class => cssclass, :id => "folder_#{folder.id}", :data => {:refreshable => true, :url => droom.folder_path(folder, :js)} }<
|
15
15
|
= link_to shorten(title, 48), droom.folder_url(folder), :class => "folder", :data => {:remote => true, :action => 'replace', :affected => "#folder_#{folder.id}"}
|
16
16
|
= action_menulink(folder)
|
17
17
|
= dropbox_link(folder)
|
@@ -1,9 +1,11 @@
|
|
1
1
|
#main.folders{:data => {:panel => false}}
|
2
|
-
%p
|
2
|
+
%p.standfirst
|
3
3
|
= t :library_introduction
|
4
4
|
|
5
5
|
- if admin?
|
6
6
|
%p.action
|
7
|
+
= link_to t(:hide_empty_folders), '#', :class => "toggle", :data => {:action => "toggle", :affected => ".folder.empty"}
|
8
|
+
%br
|
7
9
|
= link_to t(:add_root_folder), droom.new_folder_url, :class => "add", :data => {:action => "popup", :affected => "#folders"}
|
8
10
|
%br
|
9
11
|
%span.note
|
@@ -1,10 +1,13 @@
|
|
1
1
|
- group ||= @group
|
2
2
|
|
3
3
|
%div{:id => "group_#{group.id}", :data => {:action => "collapser", :refreshable => true, :url => group_path(group, :format => :js)} }
|
4
|
-
|
5
|
-
|
4
|
+
|
5
|
+
%h2.section
|
6
|
+
= link_to group.name, '#', :class => "name"
|
6
7
|
= action_menulink(group)
|
7
8
|
= action_menu(group)
|
8
9
|
|
9
|
-
%ul.people
|
10
|
+
%ul.people.detail
|
10
11
|
= render :partial => "droom/people/person", :collection => group.people, :locals => {:group => group}
|
12
|
+
%p.suffix.note
|
13
|
+
= t :group_members, :count => group.people.count
|
@@ -1,10 +1,29 @@
|
|
1
1
|
- content_for :title do
|
2
2
|
= t :group_admin
|
3
3
|
|
4
|
-
#groups
|
4
|
+
#groups.main
|
5
|
+
|
6
|
+
%p.standfirst
|
7
|
+
= t :directory_introduction
|
8
|
+
|
5
9
|
- if current_user.admin?
|
6
10
|
%p.action
|
7
11
|
= link_to t(:add_group), droom.new_group_url, :class => "add", :remote => true, :data => {:action => "popup", :type => "html", :affected => "div.groups"}
|
8
12
|
= link_to t(:add_person), droom.new_person_url, :class => "add", :remote => true, :data => {:action => "popup", :type => "html", :affected => "div.groups"}
|
9
13
|
|
10
14
|
= render :partial => 'groups'
|
15
|
+
|
16
|
+
- content_for :margin do
|
17
|
+
#finder
|
18
|
+
%h3
|
19
|
+
= t :find_people
|
20
|
+
|
21
|
+
%form.filter{:action => droom.people_url(:format => :js), :data => {:action => "filter"}}
|
22
|
+
%p
|
23
|
+
= text_field_tag :q, params[:q], :placeholder => t(:by_name_or_email)
|
24
|
+
|
25
|
+
.scroller
|
26
|
+
#found
|
27
|
+
%p.waiting
|
28
|
+
= t :loading_people
|
29
|
+
|
@@ -2,6 +2,8 @@
|
|
2
2
|
.menu{:data => {:for => "organisation_#{organisation.id}"}}
|
3
3
|
%ul.actions
|
4
4
|
%li
|
5
|
-
= link_to t(:edit_organisation), droom.edit_organisation_url(organisation), :class => 'edit', :data => {:action => "popup", :replaced => "#organisation_#{organisation.id}"
|
5
|
+
= link_to t(:edit_organisation), droom.edit_organisation_url(organisation), :class => 'edit', :data => {:action => "popup", :replaced => "#organisation_#{organisation.id}"}
|
6
|
+
%li
|
7
|
+
= link_to t(:add_person), droom.new_organisation_person_url(organisation), :class => 'add', :data => {:action => "popup", :affected => "#organisation_#{organisation.id}"}
|
6
8
|
%li
|
7
9
|
= link_to t(:delete_organisation), droom.organisation_url(organisation), :method => 'delete', :class => 'delete', :data => {:action => "remove", :removed => "#organisation_#{organisation.id}", :affected => ".minimonth", :confirm => t(:confirm_delete_organisation, :name => organisation.name)}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
- dashboard = request.path == main_app.dashboard_path
|
2
|
-
#
|
2
|
+
#suggestions.panel
|
3
3
|
- if dashboard
|
4
4
|
%p.instructions
|
5
|
-
= t :
|
5
|
+
= t :suggestions_instructions
|
6
|
+
|
6
7
|
%form#suggestions{:action => droom.suggestions_url(:format => :js)}
|
7
8
|
%p
|
8
9
|
- unless dashboard
|
@@ -10,7 +11,5 @@
|
|
10
11
|
= t :quick_search
|
11
12
|
%br
|
12
13
|
= text_field_tag :term, params[:term], :placeholder => t(:quick_search_prompt), :autocomplete => "off"
|
13
|
-
%p.formnote
|
14
|
-
= link_to t(:advanced_search_link), droom.search_url, :class => "search"
|
15
14
|
|
16
15
|
#suggestion_box
|
@@ -1,19 +1,7 @@
|
|
1
1
|
= form_for @person, :html => {:class => 'edit person'} do |f|
|
2
2
|
.image
|
3
|
-
.
|
4
|
-
|
5
|
-
= f.fields_for :image_upload do |iuf|
|
6
|
-
.uploadbox{:data => {:action => "upload", :url => cropper.uploads_path(:format => :js, :for => "person"), :scale => 2}}
|
7
|
-
= iuf.file_field :file, :class => 'file_upload', :accept => "image"
|
8
|
-
.img
|
9
|
-
- if @person.image_upload.persisted?
|
10
|
-
= link_to image_tag(@person.image.url(:cropped), :width => 260, :height => 260), cropper.edit_upload_url(@person.image_upload), :data => {:action => "recrop"}, :class => "recrop"
|
11
|
-
= link_to t(:detach_upload), '#', :class => 'detach'
|
12
|
-
.prompt
|
13
|
-
= link_to t(:click_to_upload), cropper.new_upload_url, :class => 'picker'
|
14
|
-
.droppable
|
15
|
-
.note
|
16
|
-
= t :drop_to_upload
|
3
|
+
- @person.build_image_upload unless @person.image_upload
|
4
|
+
= render :partial => "cropper/uploads/pick", :locals => {:upload => @person.image_upload, :holder => @person, :multiplier => 4}
|
17
5
|
|
18
6
|
- if Droom.use_forenames?
|
19
7
|
%p.name
|
@@ -49,6 +37,12 @@
|
|
49
37
|
= f.text_field :mobile
|
50
38
|
|
51
39
|
- if admin?
|
40
|
+
- if Droom.use_organisations?
|
41
|
+
%p.organisation
|
42
|
+
= f.label :organisation_id
|
43
|
+
%br
|
44
|
+
= f.select :organisation_id, Droom::Organisation.for_selection, :class => 'preferences'
|
45
|
+
|
52
46
|
- if @person.new_record?
|
53
47
|
%p.admin
|
54
48
|
= f.check_box :invite_on_creation, :class => 'invite'
|
@@ -56,11 +50,13 @@
|
|
56
50
|
= f.check_box :admin_user
|
57
51
|
= f.label :admin_user
|
58
52
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
53
|
+
- if Droom.use_biogs?
|
54
|
+
- @person.description = "<p></p>" unless @person.description?
|
55
|
+
.description.wysihtml
|
56
|
+
.toolbar#t1
|
57
|
+
= render 'droom/shared/toolbar'
|
58
|
+
= f.text_area :description
|
59
|
+
|
64
60
|
.buttons
|
65
61
|
- if current_user.is_person?(@person)
|
66
62
|
= f.submit t(:save_your_profile)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
%li.person{:id => "list_person_#{person.id}", :data => {:refreshable => true, :url => droom.edit_person_path(person, :format => :js)} }
|
4
4
|
%span.name
|
5
|
-
= person.formal_name
|
5
|
+
= link_to person.formal_name, person_url(person), :data => {:action => "popup"}
|
6
6
|
= action_menulink(person)
|
7
7
|
= action_menu(person)
|
8
8
|
|
@@ -12,7 +12,7 @@
|
|
12
12
|
- group = membership.group
|
13
13
|
|
14
14
|
%li{:id => "person_#{person.id}", :class => cssclass, :data => {:refreshable => true, :url => droom.person_path(person, :format => :js, :invitation_id => invitation ? invitation.id : nil)} }
|
15
|
-
%span.mugshot{:style => "background-image: url(#{person.image.url('
|
15
|
+
%span.mugshot{:style => "background-image: url(#{person.image.url('icon')})"}
|
16
16
|
- if invitation
|
17
17
|
- if editable?(invitation)
|
18
18
|
= link_to invitation.status, toggle_event_invitation_url(event, invitation), :class => "invitation #{invitation.status}", :data => {:action => "affect", :method => "put", :affected => "#person_#{person.id}"}
|
@@ -20,12 +20,12 @@
|
|
20
20
|
%span{:class => "invitation #{invitation.status}"}
|
21
21
|
%span.contact
|
22
22
|
%span.name
|
23
|
-
= person.formal_name
|
23
|
+
= link_to truncate(person.formal_name, :length => 14), person_url(person), :data => {:action => "popup"}
|
24
24
|
= action_menulink(person, :class => "small")
|
25
25
|
%br
|
26
26
|
%span.note
|
27
27
|
- if person.email?
|
28
|
-
= mail_to person.email
|
28
|
+
= mail_to truncate(person.email, :length => 20)
|
29
29
|
- else
|
30
30
|
= t :contact_information_unavailable
|
31
31
|
|
@@ -1 +1,31 @@
|
|
1
|
-
|
1
|
+
- person ||= @person
|
2
|
+
|
3
|
+
#person
|
4
|
+
.header
|
5
|
+
= link_to "X", '#', :class => "closer", :data => {:action => "close"}
|
6
|
+
%h2.titlebar
|
7
|
+
= person.formal_name
|
8
|
+
.person
|
9
|
+
.mugshot.full{:style => "background-image: url(#{person.image.url('thumb')})"}
|
10
|
+
.detail
|
11
|
+
%h3
|
12
|
+
= person.formal_name
|
13
|
+
|
14
|
+
%p.contact
|
15
|
+
- if person.organisation
|
16
|
+
%strong
|
17
|
+
= person.organisation.name
|
18
|
+
%br
|
19
|
+
- if person.email?
|
20
|
+
= mail_to person.email
|
21
|
+
- if person.email? && person.phone?
|
22
|
+
= t :or
|
23
|
+
- if person.phone?
|
24
|
+
= person.phone
|
25
|
+
.description
|
26
|
+
- if person.description?
|
27
|
+
= sanitize(person.description.html_safe)
|
28
|
+
- else
|
29
|
+
%p
|
30
|
+
= t :no_person_description
|
31
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
- if document = scrap.document
|
2
2
|
.body.scrapdocument
|
3
3
|
%p.name
|
4
|
-
= link_to document.name,
|
4
|
+
= link_to document.name, droom.folder_document_url(document.folder, document), :class => "dl #{document.file_extension}"
|
5
5
|
|
6
6
|
= render "droom/scraps/caption", :scrap => scrap
|
@@ -1,7 +1,7 @@
|
|
1
1
|
- if document = scrap.document
|
2
|
-
= link_to "document:", droom.
|
2
|
+
= link_to "document:", droom.scrap_url(scrap), :data => {:action => "popup"}, :class => "#{document.file_extension} icon"
|
3
3
|
%p.scrapdocument
|
4
|
-
= link_to document.name, droom.
|
4
|
+
= link_to document.name, droom.scrap_url(scrap), :data => {:action => "popup"}
|
5
5
|
= action_menulink(scrap, :class => "small")
|
6
6
|
%span.caption
|
7
7
|
= shorten(scrap.note, 120)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#search
|
2
|
-
%form#
|
2
|
+
%form#suggestionform{:action => droom.suggestions_url(:format => :js)}<
|
3
3
|
= text_field_tag :term, params[:term], :placeholder => t(:quick_search), :autocomplete => "off"
|
4
4
|
= submit_tag "go"
|
5
5
|
.search_results
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,29 +1,22 @@
|
|
1
|
-
= form_for @user, :html => {:class => 'edit user', :autocomplete => false} do |f|
|
1
|
+
= form_for @user, :html => {:class => 'edit user password', :autocomplete => false} do |f|
|
2
2
|
|
3
3
|
%p.email
|
4
4
|
= f.label :email
|
5
5
|
%br
|
6
|
-
= f.
|
7
|
-
- if @user.person
|
8
|
-
%br
|
9
|
-
= f.check_box :update_person_email
|
10
|
-
= f.label :update_person_email, :class => 'minor'
|
11
|
-
%span.formnote
|
12
|
-
= t :update_person_email_note
|
6
|
+
= f.email_field :email, :class => 'preferences', :autocomplete => false
|
13
7
|
|
14
8
|
%p.password
|
15
9
|
= f.label :password
|
16
10
|
%br
|
17
|
-
= f.password_field :password, :autocomplete => "off", :class => 'preferences password'
|
11
|
+
= f.password_field :password, :autocomplete => "off", :class => 'preferences password', :pattern => ".{6,}"
|
18
12
|
%br
|
19
|
-
%span.
|
13
|
+
%span.note
|
20
14
|
= t :password_requirements
|
21
|
-
= t :password_leave_same
|
22
15
|
|
23
16
|
%p.confirmation
|
24
17
|
= f.label :password_confirmation
|
25
18
|
%br
|
26
|
-
= f.password_field :password_confirmation, :class => 'preferences'
|
19
|
+
= f.password_field :password_confirmation, :class => 'preferences password_confirmation', :pattern => ""
|
27
20
|
|
28
21
|
%p.password_notice
|
29
22
|
|