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
|
@@ -11,19 +11,11 @@ module Droom
|
|
|
11
11
|
has_many :dropbox_documents
|
|
12
12
|
has_attached_file :file
|
|
13
13
|
|
|
14
|
-
after_create :read_and_reindex
|
|
15
|
-
|
|
16
14
|
after_save :update_dropbox_documents
|
|
17
15
|
after_destroy :mark_dropbox_documents_deleted
|
|
18
16
|
|
|
19
17
|
validates :file, :presence => true
|
|
20
18
|
|
|
21
|
-
searchable :auto_index => false, :auto_remove => true do
|
|
22
|
-
text :name, :boost => 10, :stored => true
|
|
23
|
-
text :description, :stored => true
|
|
24
|
-
text :extracted_text, :stored => true
|
|
25
|
-
end
|
|
26
|
-
|
|
27
19
|
scope :all_private, where("private = 1")
|
|
28
20
|
scope :not_private, where("private <> 1 OR private IS NULL")
|
|
29
21
|
scope :all_public, where("public = 1 AND private <> 1 OR private IS NULL")
|
|
@@ -53,9 +45,9 @@ module Droom
|
|
|
53
45
|
|
|
54
46
|
scope :by_date, order("droom_documents.updated_at DESC, droom_documents.created_at DESC")
|
|
55
47
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
48
|
+
scope :latest, lambda {|limit|
|
|
49
|
+
order("droom_documents.updated_at DESC, droom_documents.created_at DESC").limit(limit)
|
|
50
|
+
}
|
|
59
51
|
|
|
60
52
|
def attach_to(holder)
|
|
61
53
|
self.folder = holder.folder
|
|
@@ -111,22 +103,6 @@ module Droom
|
|
|
111
103
|
dropbox_documents.create(:person_id => user.person.id)
|
|
112
104
|
end
|
|
113
105
|
|
|
114
|
-
def read_and_reindex
|
|
115
|
-
temp = Paperclip.io_adapters.for(self.file)
|
|
116
|
-
data = File.read(temp.path)
|
|
117
|
-
begin
|
|
118
|
-
self.extracted_text = Yomu.read :text, data
|
|
119
|
-
self.extracted_metadata = Yomu.read :metadata, data
|
|
120
|
-
rescue Exception => e
|
|
121
|
-
Rails.logger.warn "Failed to parse document text or metadata from #{file_file_name}: #{e}"
|
|
122
|
-
end
|
|
123
|
-
if self.extracted_text or self.extracted_metadata
|
|
124
|
-
solr_index
|
|
125
|
-
end
|
|
126
|
-
save
|
|
127
|
-
end
|
|
128
|
-
handle_asynchronously :read_and_reindex, :priority => 20
|
|
129
|
-
|
|
130
106
|
def mark_dropbox_documents_deleted
|
|
131
107
|
dropbox_documents.each do |dd|
|
|
132
108
|
dd.mark_deleted(true)
|
data/app/models/droom/event.rb
CHANGED
|
@@ -43,22 +43,10 @@ module Droom
|
|
|
43
43
|
before_validation :set_uuid
|
|
44
44
|
before_save :ensure_slug
|
|
45
45
|
after_save :update_occurrences
|
|
46
|
-
after_save :index
|
|
47
46
|
|
|
48
47
|
scope :primary, where("master_id IS NULL")
|
|
49
48
|
scope :recurrent, where(:conditions => "master_id IS NOT NULL")
|
|
50
49
|
|
|
51
|
-
searchable do
|
|
52
|
-
text :name, :boost => 10, :stored => true
|
|
53
|
-
text :description, :stored => true
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
handle_asynchronously :solr_index
|
|
57
|
-
|
|
58
|
-
def self.highlight_fields
|
|
59
|
-
[:name, :description]
|
|
60
|
-
end
|
|
61
|
-
|
|
62
50
|
## Event retrieval in various ways
|
|
63
51
|
#
|
|
64
52
|
# Events differ from other models in that they are visible to all unless marked 'private'.
|
data/app/models/droom/folder.rb
CHANGED
|
@@ -24,22 +24,21 @@ module Droom
|
|
|
24
24
|
scope :not_public, where("#{table_name}.public <> 1 OR #{table_name}.private = 1)")
|
|
25
25
|
scope :by_name, order("#{table_name}.name ASC")
|
|
26
26
|
scope :visible_to, lambda { |person|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
not_private
|
|
27
|
+
if person
|
|
28
|
+
select('droom_folders.*')
|
|
29
|
+
.joins('LEFT OUTER JOIN droom_personal_folders AS dpf ON droom_folders.id = dpf.folder_id')
|
|
30
|
+
.where(["(droom_folders.public = 1 OR dpf.person_id = ?)", person.id])
|
|
31
|
+
.group('droom_folders.id')
|
|
32
|
+
else
|
|
33
|
+
all_public
|
|
34
|
+
end
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
def visible_to?(person)
|
|
39
38
|
true
|
|
40
39
|
end
|
|
41
40
|
|
|
42
|
-
# A root
|
|
41
|
+
# A root folder is created automatically for each class that has_folders,
|
|
43
42
|
# the first time something in that class asks for its folder.
|
|
44
43
|
# scope :roots, where('droom_folders.holder_type IS NULL AND droom_folders.parent_id IS NULL')
|
|
45
44
|
|
data/app/models/droom/group.rb
CHANGED
|
@@ -19,13 +19,6 @@ module Droom
|
|
|
19
19
|
validates :slug, :uniqueness => true, :presence => true
|
|
20
20
|
validates :mailing_list_name, :uniqueness => true, :presence => true
|
|
21
21
|
|
|
22
|
-
searchable do
|
|
23
|
-
text :name, :boost => 10, :stored => true
|
|
24
|
-
text :description, :stored => true
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
handle_asynchronously :solr_index
|
|
28
|
-
|
|
29
22
|
def self.highlight_fields
|
|
30
23
|
[:name, :description]
|
|
31
24
|
end
|
data/app/models/droom/person.rb
CHANGED
|
@@ -117,8 +117,8 @@ module Droom
|
|
|
117
117
|
:geometry => "520x520#",
|
|
118
118
|
:styles => {
|
|
119
119
|
:icon => "32x32#",
|
|
120
|
-
:thumb => "
|
|
121
|
-
:precrop => "1200x1200
|
|
120
|
+
:thumb => "130x130#",
|
|
121
|
+
:precrop => "1200x1200<"
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
## Scopes
|
|
@@ -130,18 +130,6 @@ module Droom
|
|
|
130
130
|
scope :all_public, where("public = 1 AND private <> 1 OR private IS NULL")
|
|
131
131
|
scope :not_public, where("public <> 1 OR private = 1)")
|
|
132
132
|
|
|
133
|
-
searchable do
|
|
134
|
-
text :name, :boost => 10, :stored => true
|
|
135
|
-
text :forename, :boost => 10, :stored => true
|
|
136
|
-
text :description, :stored => true
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
handle_asynchronously :solr_index
|
|
140
|
-
|
|
141
|
-
def self.highlight_fields
|
|
142
|
-
[:name, :forename, :description]
|
|
143
|
-
end
|
|
144
|
-
|
|
145
133
|
scope :matching, lambda { |fragment|
|
|
146
134
|
fragment = "%#{fragment}%"
|
|
147
135
|
where('droom_people.name LIKE :f OR droom_people.forename LIKE :f OR droom_people.email LIKE :f OR droom_people.phone LIKE :f OR CONCAT(droom_people.forename, " ", droom_people.name) LIKE :f', :f => fragment)
|
|
@@ -281,7 +269,7 @@ module Droom
|
|
|
281
269
|
protected
|
|
282
270
|
|
|
283
271
|
def invite_if_instructed
|
|
284
|
-
invite_user if invite_on_creation
|
|
272
|
+
invite_user if invite_on_creation?
|
|
285
273
|
end
|
|
286
274
|
|
|
287
275
|
# ### Administration & callbacks
|
|
@@ -289,12 +277,17 @@ module Droom
|
|
|
289
277
|
# At some point we may want to create a user to log in and look after this person.
|
|
290
278
|
# This usually has the side effect of sending out a confirmation message.
|
|
291
279
|
#
|
|
280
|
+
|
|
281
|
+
def invite_on_creation?
|
|
282
|
+
!!invite_on_creation && invite_on_creation != 0 && invite_on_creation != "0"
|
|
283
|
+
end
|
|
284
|
+
|
|
292
285
|
def invite_user
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
286
|
+
if self.user
|
|
287
|
+
self.user.send_confirmation_instructions
|
|
288
|
+
elsif invitable?
|
|
289
|
+
user = self.create_user(:forename => forename, :name => name, :email => email)
|
|
290
|
+
self.save
|
|
298
291
|
end
|
|
299
292
|
self.user
|
|
300
293
|
end
|
data/app/models/droom/scrap.rb
CHANGED
|
@@ -15,16 +15,6 @@ module Droom
|
|
|
15
15
|
:precrop => "1200x1200^"
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
searchable do
|
|
19
|
-
text :name, :boost => 10, :stored => true
|
|
20
|
-
text :body, :stored => true
|
|
21
|
-
text :note
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def self.highlight_fields
|
|
25
|
-
[:name, :body]
|
|
26
|
-
end
|
|
27
|
-
|
|
28
18
|
attr_accessible :name, :body, :image, :description, :scraptype, :note, :created_by, :event, :event_attributes, :document, :document_attributes
|
|
29
19
|
before_save :get_youtube_thumbnail
|
|
30
20
|
|
|
@@ -100,9 +90,9 @@ module Droom
|
|
|
100
90
|
protected
|
|
101
91
|
|
|
102
92
|
def get_youtube_thumbnail
|
|
103
|
-
# youtube id is held in the '
|
|
93
|
+
# youtube id is held in the 'body' column.
|
|
104
94
|
if scraptype == "video" && body?
|
|
105
|
-
self.image = URI
|
|
95
|
+
self.image = URI("http://img.youtube.com/vi/#{body}/0.jpg")
|
|
106
96
|
end
|
|
107
97
|
end
|
|
108
98
|
|
data/app/models/droom/user.rb
CHANGED
|
@@ -7,6 +7,11 @@ module Droom
|
|
|
7
7
|
has_many :preferences, :foreign_key => "created_by_id"
|
|
8
8
|
accepts_nested_attributes_for :preferences, :allow_destroy => true
|
|
9
9
|
|
|
10
|
+
validates :email, :uniqueness => true, :presence => true
|
|
11
|
+
validates_format_of :email, :with => /@/
|
|
12
|
+
validates :name, :presence => true
|
|
13
|
+
# validates :password, :presence => true, :length => { :minimum => 6 }, :confirmation => true, :if => :password_required?
|
|
14
|
+
|
|
10
15
|
receives_messages# :groups => [:unconfirmed, :personed, :administrative]
|
|
11
16
|
|
|
12
17
|
devise :database_authenticatable,
|
|
@@ -18,11 +23,10 @@ module Droom
|
|
|
18
23
|
:token_authenticatable,
|
|
19
24
|
:encryptor => :sha512
|
|
20
25
|
|
|
21
|
-
before_create :ensure_authentication_token
|
|
26
|
+
before_create :ensure_authentication_token # provided by devise
|
|
22
27
|
|
|
23
28
|
attr_accessor :newly_activated, :update_person_email, :confirm, :remove_person
|
|
24
29
|
|
|
25
|
-
# validates :password, :length => { :minimum => 6 }, :if => :password_required?
|
|
26
30
|
|
|
27
31
|
scope :unconfirmed, where("confirmed_at IS NULL")
|
|
28
32
|
scope :administrative, where(:admin => true)
|
|
@@ -79,7 +83,6 @@ module Droom
|
|
|
79
83
|
end
|
|
80
84
|
|
|
81
85
|
def password_match?
|
|
82
|
-
Rails.logger.warn ">>> password_match? '#{password}' == '#{password_confirmation}'"
|
|
83
86
|
self.errors[:password] << "can't be blank" if password.blank?
|
|
84
87
|
self.errors[:password_confirmation] << "can't be blank" if password_confirmation.blank?
|
|
85
88
|
self.errors[:password_confirmation] << "does not match password" if password != password_confirmation
|
|
@@ -194,18 +197,39 @@ module Droom
|
|
|
194
197
|
# If using `msg`, this defines the variables available in message templates.
|
|
195
198
|
#
|
|
196
199
|
def for_email
|
|
200
|
+
self.ensure_confirmation_token!
|
|
197
201
|
{
|
|
198
202
|
:informal_name => informal_name,
|
|
199
203
|
:formal_name => formal_name,
|
|
200
204
|
:forename => forename,
|
|
201
205
|
:name => name,
|
|
202
206
|
:email => email,
|
|
203
|
-
:confirmation_url => Droom::Engine.routes.url_helpers.
|
|
207
|
+
:confirmation_url => Droom::Engine.routes.url_helpers.welcome_url(:id => self.id, :confirmation_token => self.confirmation_token, :host => ActionMailer::Base.default_url_options[:host]),
|
|
204
208
|
:sign_in_url => Droom::Engine.routes.url_helpers.new_user_session_path(:host => ActionMailer::Base.default_url_options[:host]),
|
|
205
|
-
:password_reset_url => Droom::Engine.routes.url_helpers.
|
|
209
|
+
:password_reset_url => Droom::Engine.routes.url_helpers.edit_user_password_url(:reset_password_token => self.reset_password_token, :host => ActionMailer::Base.default_url_options[:host])
|
|
210
|
+
}
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
## Omniauth package
|
|
214
|
+
#
|
|
215
|
+
# This is returned to the client application in the final stage of oauth authentication, and may be used to create
|
|
216
|
+
# a new local account.
|
|
217
|
+
|
|
218
|
+
def credentials(options={})
|
|
219
|
+
{
|
|
220
|
+
id: id,
|
|
221
|
+
title: title,
|
|
222
|
+
name: name,
|
|
223
|
+
forename: forename,
|
|
224
|
+
email: email,
|
|
225
|
+
admin: admin?,
|
|
226
|
+
image: thumbnail
|
|
206
227
|
}
|
|
207
228
|
end
|
|
208
229
|
|
|
230
|
+
def thumbnail
|
|
231
|
+
person.image.url(:icon) if person
|
|
232
|
+
end
|
|
209
233
|
|
|
210
234
|
end
|
|
211
235
|
end
|
data/app/models/droom/venue.rb
CHANGED
|
@@ -14,23 +14,6 @@ module Droom
|
|
|
14
14
|
before_validation :geocode
|
|
15
15
|
# reverse_geocoded_by :lat, :lng
|
|
16
16
|
|
|
17
|
-
searchable do
|
|
18
|
-
text :name, :boost => 10, :stored => true
|
|
19
|
-
text :description, :stored => true
|
|
20
|
-
text :post_line1, :stored => true
|
|
21
|
-
text :post_line2, :stored => true
|
|
22
|
-
text :post_city, :stored => true
|
|
23
|
-
text :post_region, :stored => true
|
|
24
|
-
text :post_country, :stored => true
|
|
25
|
-
text :post_code, :stored => true
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
handle_asynchronously :solr_index
|
|
29
|
-
|
|
30
|
-
def self.highlight_fields
|
|
31
|
-
[:name, :description, :post_line1, :post_line2, :post_city, :post_region, :post_country, :post_code]
|
|
32
|
-
end
|
|
33
|
-
|
|
34
17
|
scope :matching, lambda { |fragment|
|
|
35
18
|
fragment = "%#{fragment}%"
|
|
36
19
|
where('droom_venues.name like ?', fragment)
|
data/app/views/{droom/users/unwelcome.en.html.haml → devise/confirmations/failure.en.html.haml}
RENAMED
|
@@ -6,12 +6,15 @@
|
|
|
6
6
|
=t :code_unknown
|
|
7
7
|
|
|
8
8
|
%p
|
|
9
|
-
This
|
|
9
|
+
This confirmation url is not correct. Have you already confirmed this account? In that case
|
|
10
|
+
you only need to
|
|
11
|
+
= link_to "sign in.", "/"
|
|
12
|
+
Otherwise, please check your invitation email and make sure that
|
|
10
13
|
you are typing or pasting the right address. It may be that your email program has broken
|
|
11
14
|
the address over two lines: in that case please make sure you enter the whole thing without
|
|
12
15
|
any spaces.
|
|
13
16
|
|
|
14
17
|
%p
|
|
15
|
-
If you are seeing this message in error, please contact the
|
|
18
|
+
If you are seeing this message in error, please contact the chief builder on
|
|
16
19
|
= mail_to "will@spanner.org"
|
|
17
20
|
and he will sort it out for you right away.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#account
|
|
2
|
+
%h1.pagetitle
|
|
3
|
+
=t :resend_confirmation
|
|
4
|
+
|
|
5
|
+
= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f|
|
|
6
|
+
= devise_error_messages!
|
|
7
|
+
|
|
8
|
+
%p
|
|
9
|
+
Enter the email address you signed up with and we will send you the account confirmation instructions again.
|
|
10
|
+
|
|
11
|
+
%p
|
|
12
|
+
= f.label :email
|
|
13
|
+
%br
|
|
14
|
+
= f.email_field :email, :class => 'login'
|
|
15
|
+
%span.note
|
|
16
|
+
= t :email_note
|
|
17
|
+
|
|
18
|
+
.controls
|
|
19
|
+
.save.button
|
|
20
|
+
%p
|
|
21
|
+
= f.submit t(:send_me_instructions), :class => "submit"
|
|
22
|
+
|
|
23
|
+
%p.note
|
|
24
|
+
If you have already confirmed your account, this won't work but you can
|
|
25
|
+
= link_to "reset your password.", new_password_path(resource_name)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
- content_for :title do
|
|
2
|
+
= t :welcome
|
|
3
|
+
|
|
4
|
+
#account
|
|
5
|
+
%p
|
|
6
|
+
%strong
|
|
7
|
+
= t :hello_name, :name => resource.informal_name
|
|
8
|
+
= t :welcome_preamble
|
|
9
|
+
|
|
10
|
+
= form_for resource, :url => confirm_password_path, :html => {:class => 'password'} do |f|
|
|
11
|
+
= f.hidden_field :confirmation_token
|
|
12
|
+
|
|
13
|
+
%p
|
|
14
|
+
= f.label :password
|
|
15
|
+
%br
|
|
16
|
+
= f.password_field :password, :autocomplete => "off", :class => 'preferences password required', :required => true, :pattern => ".{6,}"
|
|
17
|
+
%br
|
|
18
|
+
%span.note
|
|
19
|
+
= t :password_requirements
|
|
20
|
+
|
|
21
|
+
%p.confirmation
|
|
22
|
+
= f.label :password_confirmation
|
|
23
|
+
%br
|
|
24
|
+
= f.password_field :password_confirmation, :class => 'preferences password_confirmation required', :required => true, :pattern => ""
|
|
25
|
+
|
|
26
|
+
%p.note.password_notice
|
|
27
|
+
|
|
28
|
+
.controls
|
|
29
|
+
.save.button
|
|
30
|
+
= f.submit t(:continue), :class => "submit"
|
|
31
|
+
|
|
32
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
- documents = Droom::Document.visible_to(current_user.person).latest(5)
|
|
2
|
+
|
|
3
|
+
%h2.section
|
|
4
|
+
= link_to t(:latest_documents), droom.documents_url
|
|
5
|
+
|
|
6
|
+
- if documents.any?
|
|
7
|
+
= render :partial => "droom/documents/document", :collection => documents, :locals => {:closed => true}
|
|
8
|
+
- else
|
|
9
|
+
= t :no_documents
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
- groups = current_user.person.groups if current_user.person
|
|
2
|
+
|
|
3
|
+
%h2.section
|
|
4
|
+
= link_to t(:your_groups), droom.documents_url
|
|
5
|
+
|
|
6
|
+
- if groups.any?
|
|
7
|
+
= render :partial => "droom/groups/group", :collection => groups, :locals => {:closed => true}
|
|
8
|
+
- else
|
|
9
|
+
= t :no_groups
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
%div.document.holder
|
|
6
6
|
%h2.name<
|
|
7
|
-
= link_to truncate(document.name, :length => 33),
|
|
7
|
+
= link_to truncate(document.name, :length => 33), droom.folder_document_url(document.folder, document), :class => cssclasses, :title => t(:click_to_download, :name => document.file_file_name)
|
|
8
8
|
- if admin?
|
|
9
9
|
= link_to t(:edit_document), edit_document_url(document), :class => 'admin edit minimal', :remote => true, :data => {:action => "overlay", :type => "html"}
|
|
10
10
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
%tr.document.holder{:id => "document_#{document.id}"}
|
|
7
7
|
%th.name
|
|
8
|
-
= link_to truncate(document.name, :length => 24),
|
|
8
|
+
= link_to truncate(document.name, :length => 24), droom.folder_document_url(document.folder, document), :class => cssclasses.join(' '), :title => t(:click_to_download, :name => document.file_file_name)
|
|
9
9
|
%td.filename.minor
|
|
10
10
|
%span.note
|
|
11
11
|
= truncate(document.file_file_name, :length => 18)
|