social_stream 0.4.1 → 0.4.2

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.
Files changed (145) hide show
  1. data/Rakefile +0 -12
  2. data/app/controllers/activities_controller.rb +17 -1
  3. data/app/controllers/api_controller.rb +2 -2
  4. data/app/controllers/avatars_controller.rb +44 -0
  5. data/app/controllers/contacts_controller.rb +13 -21
  6. data/app/controllers/conversations_controller.rb +107 -0
  7. data/app/controllers/groups_controller.rb +7 -11
  8. data/app/controllers/messages_controller.rb +21 -88
  9. data/app/controllers/profiles_controller.rb +3 -1
  10. data/app/controllers/pshb_controller.rb +37 -1
  11. data/app/controllers/ties_controller.rb +7 -8
  12. data/app/controllers/users_controller.rb +19 -43
  13. data/app/helpers/location_helper.rb +34 -0
  14. data/app/helpers/subjects_helper.rb +18 -1
  15. data/app/models/activity.rb +67 -27
  16. data/app/models/activity_verb.rb +1 -1
  17. data/app/models/actor.rb +85 -37
  18. data/app/models/avatar.rb +90 -0
  19. data/app/models/group.rb +2 -2
  20. data/app/models/profile.rb +8 -0
  21. data/app/models/tie.rb +20 -22
  22. data/app/models/user.rb +2 -8
  23. data/app/views/activities/_index.html.erb +22 -0
  24. data/app/views/activities/_options.html.erb +3 -1
  25. data/app/views/activities/_root.html.erb +4 -2
  26. data/app/views/activities/_walls.html.erb +34 -0
  27. data/app/views/activities/index.js.erb +1 -0
  28. data/app/views/avatars/_form.html.erb +23 -0
  29. data/app/views/{logos → avatars}/_precrop.html.erb +23 -15
  30. data/app/views/avatars/edit.html.erb +6 -0
  31. data/app/views/avatars/index.html.erb +42 -0
  32. data/app/views/{logos → avatars}/new.html.erb +7 -11
  33. data/app/views/avatars/show.html.erb +5 -0
  34. data/app/views/contacts/_index.html.erb +33 -0
  35. data/app/views/contacts/index.html.erb +35 -2
  36. data/app/views/contacts/index.js.erb +1 -0
  37. data/app/views/conversations/_conversation.html.erb +37 -0
  38. data/app/views/conversations/_conversation_full.html.erb +52 -0
  39. data/app/views/{messages → conversations}/_conversations.html.erb +2 -1
  40. data/app/views/conversations/_index.html.erb +23 -0
  41. data/app/views/{messages → conversations}/_menu_options.html.erb +2 -2
  42. data/app/views/conversations/_show.html.erb +21 -0
  43. data/app/views/{messages → conversations}/edit.html.erb +0 -0
  44. data/app/views/{messages → conversations}/index.html.erb +1 -3
  45. data/app/views/conversations/index.js.erb +7 -0
  46. data/app/views/conversations/show.html.erb +47 -0
  47. data/app/views/conversations/show.js.erb +39 -0
  48. data/app/views/frontpage/_header.html.erb +5 -1
  49. data/app/views/groups/_new.html.erb +50 -48
  50. data/app/views/groups/_sidebar_show.html.erb +1 -1
  51. data/app/views/groups/index.html.erb +1 -1
  52. data/app/views/groups/new.html.erb +6 -1
  53. data/app/views/groups/show.html.erb +1 -3
  54. data/app/views/home/_menu.html.erb +46 -0
  55. data/app/views/home/_sidebar.html.erb +12 -0
  56. data/app/views/home/index.html.erb +3 -3
  57. data/app/views/layouts/application.html.erb +1 -1
  58. data/app/views/layouts/test.html +58 -41
  59. data/app/views/location/_location.html.erb +3 -0
  60. data/app/views/messages/_form.html.erb +5 -52
  61. data/app/views/messages/_message.html.erb +31 -0
  62. data/app/views/messages/_new.html.erb +10 -16
  63. data/app/views/messages/new.html.erb +48 -3
  64. data/app/views/messages/new.js.erb +38 -1
  65. data/app/views/profiles/_profile.html.erb +194 -0
  66. data/app/views/profiles/edit.html.erb +168 -0
  67. data/app/views/profiles/show.html.erb +2 -175
  68. data/app/views/{users → profiles}/update.js.erb +12 -15
  69. data/app/views/subjects/_contacts.html.erb +2 -3
  70. data/app/views/subjects/_toolbar_home.html.erb +1 -1
  71. data/app/views/subjects/_toolbar_home_menu.html.erb +4 -1
  72. data/app/views/subjects/_toolbar_home_menu_options.html.erb +4 -7
  73. data/app/views/subjects/_toolbar_home_menu_options_subjects.html.erb +0 -3
  74. data/app/views/subjects/_toolbar_logo.html.erb +1 -1
  75. data/app/views/subjects/_toolbar_message_menu.html.erb +17 -0
  76. data/app/views/subjects/_toolbar_profile.html.erb +4 -12
  77. data/app/views/subjects/_toolbar_profile_menu.html.erb +9 -10
  78. data/app/views/subjects/_toolbar_profile_menu_basic_options.html.erb +6 -5
  79. data/app/views/subjects/_toolbar_profile_menu_tie_options.html.erb +13 -13
  80. data/app/views/ties/_new.html.erb +30 -25
  81. data/app/views/ties/_suggestions.html.erb +1 -0
  82. data/app/views/ties/new.js.erb +2 -0
  83. data/app/views/users/_index.html.erb +1 -1
  84. data/app/views/users/index.html.erb +1 -3
  85. data/app/views/users/show.html.erb +4 -3
  86. data/config/locales/en.yml +79 -24
  87. data/config/routes.rb +8 -2
  88. data/lib/generators/social_stream/install_generator.rb +1 -1
  89. data/lib/generators/social_stream/templates/migration.rb +17 -11
  90. data/lib/generators/social_stream/templates/public/images/btn/message_conversation.png +0 -0
  91. data/lib/generators/social_stream/templates/public/images/btn/message_inbox.png +0 -0
  92. data/lib/generators/social_stream/templates/public/images/btn/message_new.png +0 -0
  93. data/lib/generators/social_stream/templates/public/images/btn/message_sentbox.png +0 -0
  94. data/lib/generators/social_stream/templates/public/images/btn/message_trash.png +0 -0
  95. data/lib/generators/social_stream/templates/public/javascripts/ajax.paginate.js +1 -1
  96. data/lib/generators/social_stream/templates/public/javascripts/menu.js +9 -99
  97. data/lib/generators/social_stream/templates/public/stylesheets/default/base.css +14 -5
  98. data/lib/generators/social_stream/templates/public/stylesheets/default/home.css +1 -0
  99. data/lib/generators/social_stream/templates/public/stylesheets/default/jquery-ui.css +13 -10
  100. data/lib/generators/social_stream/templates/public/stylesheets/default/menu.css +5 -11
  101. data/lib/generators/social_stream/templates/public/stylesheets/default/messages.css +96 -20
  102. data/lib/generators/social_stream/templates/relations.yml +1 -0
  103. data/lib/paperclip/social_stream.rb +1 -1
  104. data/lib/social_stream/ability.rb +1 -0
  105. data/lib/social_stream/controllers/helpers.rb +20 -0
  106. data/lib/social_stream/models/subject.rb +13 -12
  107. data/lib/social_stream/rails.rb +4 -1
  108. data/lib/social_stream/version.rb +1 -1
  109. data/lib/tasks/db/populate.rake +14 -4
  110. data/social_stream.gemspec +31 -5
  111. data/spec/controllers/contacts_controller_spec.rb +6 -0
  112. data/spec/controllers/profiles_controller_spec.rb +3 -4
  113. data/spec/dummy/config/initializers/devise.rb +4 -1
  114. data/spec/dummy/config/relations.yml +1 -0
  115. data/spec/models/activity_spec.rb +24 -0
  116. metadata +91 -89
  117. data/app/controllers/logos_controller.rb +0 -37
  118. data/app/models/logo.rb +0 -88
  119. data/app/views/activities/_activities.html.erb +0 -46
  120. data/app/views/groups/_profile.html.erb +0 -142
  121. data/app/views/groups/edit.html.erb +0 -135
  122. data/app/views/groups/update.js.erb +0 -39
  123. data/app/views/logos/_form.html.erb +0 -33
  124. data/app/views/logos/edit.html.erb +0 -6
  125. data/app/views/logos/index.html.erb +0 -27
  126. data/app/views/logos/show.html.erb +0 -5
  127. data/app/views/menu/_group.html.erb +0 -15
  128. data/app/views/menu/_home_user.html.erb +0 -0
  129. data/app/views/menu/_optionsGroups.html.erb +0 -11
  130. data/app/views/menu/_optionsUser.html.erb +0 -11
  131. data/app/views/menu/_services.html.erb +0 -11
  132. data/app/views/menu/_tiesGroup.html.erb +0 -14
  133. data/app/views/menu/_tiesUser.html.erb +0 -11
  134. data/app/views/menu/_user.html.erb +0 -15
  135. data/app/views/messages/_conversation.html.erb +0 -34
  136. data/app/views/messages/_conversation_full.html.erb +0 -65
  137. data/app/views/messages/_index.html.erb +0 -19
  138. data/app/views/messages/_location.html.erb +0 -3
  139. data/app/views/messages/_show.html.erb +0 -22
  140. data/app/views/messages/index.js.erb +0 -1
  141. data/app/views/messages/show.html.erb +0 -10
  142. data/app/views/messages/show.js.erb +0 -1
  143. data/app/views/users/_profile.html.erb +0 -171
  144. data/app/views/users/_sidebar_show.html.erb +0 -1
  145. data/app/views/users/edit.html.erb +0 -194
@@ -1,37 +0,0 @@
1
- class LogosController < InheritedResources::Base
2
- =begin
3
- def new
4
- # if params[:logo_logo].present?
5
- # render :template => "logos/_precrop", :layout => false
6
- # end
7
- debugger
8
- if params[:logo_logo]
9
-
10
- end
11
- respond_to do |format|
12
- format.html #new.html.erb
13
- end
14
-
15
- end
16
- =end
17
- begin
18
- def create
19
- @logo = Logo.create(params[:logo])
20
- #debugger
21
- #{:original=>#<File:/var/folders/EZ/EZmst6HwE0ipKa3hozX2Zk+++TI/-Tmp-/stream20110322-5217-ft6j6l-0.jpg>}
22
-
23
-
24
- if @logo.new_record?
25
- render :new
26
- else
27
- #redirect_to @logo
28
- redirect_to logos_path
29
- end
30
-
31
-
32
-
33
-
34
- end
35
- end
36
-
37
- end
data/app/models/logo.rb DELETED
@@ -1,88 +0,0 @@
1
- require 'RMagick'
2
-
3
- class Logo < ActiveRecord::Base
4
- has_attached_file :logo,
5
- :styles => { :tie => "30x30>",
6
- :actor => '35x35>',
7
- :profile => '94x94' },
8
- :default_url => "/images/:attachment/:style/:subtype_class.png"
9
-
10
- before_post_process :process_precrop
11
- # before_post_process :copy_temp_file
12
- attr_accessor :crop_x, :crop_y, :crop_w, :crop_h, :name
13
- validates_attachment_presence :logo, :if => :uploading_file?
14
-
15
- after_validation :precrop_done
16
- # after_validation :mylog
17
-
18
-
19
- def uploading_file?
20
- return @name.blank?
21
- end
22
-
23
- def precrop_done
24
- return if @name.blank?
25
-
26
- images_path = File.join(RAILS_ROOT, "public", "images")
27
- tmp_path = FileUtils.mkdir_p(File.join(images_path, "tmp"))
28
- precrop_path = File.join(tmp_path,@name)
29
-
30
- make_precrop(precrop_path,@crop_x.to_i,@crop_y.to_i,@crop_w.to_i,@crop_h.to_i)
31
- @logo = Logo.new :logo => File.open(precrop_path), :name => @name
32
-
33
- self.logo = @logo.logo
34
-
35
- FileUtils.remove_file(precrop_path)
36
- end
37
-
38
- def copy_temp_file
39
- images_path = File.join(RAILS_ROOT, "public", "images")
40
- tmp_path = FileUtils.mkdir_p(File.join(images_path, "tmp"))
41
- end
42
-
43
- def process_precrop
44
-
45
- if @name.blank? && ( logo.content_type.present? && !logo.content_type.start_with?("image/"))
46
- logo.errors['invalidType'] = "The file you uploaded isn't valid"
47
- return false
48
- end
49
-
50
- return if !@name.blank?
51
- logo.errors['precrop'] = "You have to make precrop"
52
-
53
- images_path = File.join(RAILS_ROOT, "public", "images")
54
- tmp_path = FileUtils.mkdir_p(File.join(images_path, "tmp"))
55
-
56
- resize_image(logo.queued_for_write[:original].path,500,500)
57
-
58
- my_file_name = File.basename(logo.queued_for_write[:original].path)
59
- FileUtils.cp(logo.queued_for_write[:original].path,tmp_path)
60
- temp_file = File.open(logo.queued_for_write[:original].path, "w+")
61
- end
62
-
63
- def image_dimensions(name)
64
- images_path = File.join(RAILS_ROOT, "public", "images")
65
- tmp_path = FileUtils.mkdir_p(File.join(images_path, "tmp"))
66
- file_path = File.join(tmp_path,name)
67
-
68
- img_orig = Magick::Image.read(file_path).first
69
- dimensions = {}
70
- dimensions[:width] = img_orig.columns
71
- dimensions[:height] = img_orig.rows
72
- dimensions
73
- end
74
-
75
- def resize_image(path,width,height)
76
- img_orig = Magick::Image.read(path).first
77
- img_orig = img_orig.resize_to_fit(width, height)
78
- img_orig.write(path)
79
- end
80
-
81
- def make_precrop(path,x,y,width,height)
82
- img_orig = Magick::Image.read(path).first
83
- crop_args = [x,y,width,height]
84
- img_orig = img_orig.crop(*crop_args)
85
- img_orig.write(path)
86
- end
87
- end
88
-
@@ -1,46 +0,0 @@
1
- <% content_for :headers do %>
2
- <%= stylesheet_link_tag "activities", :media => "screen, projection" %>
3
- <%= stylesheet_link_tag "jquery-ui", :media => "screen, projection" %>
4
- <% end %>
5
-
6
- <% content_for :javascript do %>
7
- <%= render :partial => 'activities/jquery' %>
8
- $(document).ready(function() {
9
- $("#tabs").tabs();
10
- });
11
- <% end -%>
12
-
13
- <div id="wrapper_activities">
14
- <div id="wrapper_activities_header">
15
- <div id="activities_title" class="content_size">
16
- <%= image_tag("btn/btn_activities.png") %> <%=t('activity.other')%>
17
- </div>
18
- <%= render :partial => 'activities/new', :locals => { :receiver => owner } %>
19
- </div>
20
-
21
- <div id="tabs">
22
- <ul>
23
- <li><a href="#fragment-1"><span>Group</span></a></li>
24
- <li><a href="#fragment-2"><span>Followers</span></a></li>
25
- <li><a href="#fragment-3"><span>Partners</span></a></li>
26
- </ul>
27
- <div id="fragment-1">
28
- <div id="wall">
29
- <% activities = activities.paginate(:page => params[:page]) %>
30
- <%- # should be activities.paginate(:page => params[:page], :count => { :select => 'activity.id', :distinct => true }) but it is not working in Rails 3.0.3 -%>
31
- <%= render activities %>
32
- <%= will_paginate activities %>
33
- </div>
34
- </div>
35
- <div id="fragment-2">
36
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
37
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
38
- </div>
39
- <div id="fragment-3">
40
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
41
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
42
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
43
- </div>
44
- </div>
45
-
46
- </div>
@@ -1,142 +0,0 @@
1
- <% content_for :head do %>
2
- <%= stylesheet_link_tag "edit_user", :media => "screen, projection" %>
3
- <% end %>
4
- <div class="space_center"></div>
5
-
6
- <div class="block" id="personal_info" >
7
- <div class="header">
8
- <div class="header_text">
9
- Group Information
10
- </div>
11
- <div class="header_icon_right">
12
- <%= link_to (image_tag('/images/btn/edit.png')), :controller => :groups, :action => :edit, :section => :about_us %>
13
- </div>
14
- </div>
15
- <div class="content">
16
-
17
- <% if @group.profile.organization? %>
18
- <div class="row">
19
- <div class="label">
20
- Organization:
21
- </div>
22
- <div class="field">
23
- <%=h @group.profile.organization %>
24
- </div>
25
- </div>
26
- <%end%>
27
- <% if @group.profile.city? %>
28
- <div class="row">
29
- <div class="label">
30
- City:
31
- </div>
32
- <div class="field">
33
- <%=h @group.profile.city %>
34
- <% if @group.profile.country? %>
35
- , <%=@group.profile.country%>
36
- <%end%>
37
- </div>
38
- </div>
39
- <%end%>
40
- <% if @group.profile.description? %>
41
- <div class="row">
42
- <div class="label">
43
- Description:
44
- </div>
45
- <div class="field">
46
- <%=h @group.profile.description %>
47
- </div>
48
- </div>
49
- <%end%>
50
- <div class="row">
51
- <div class="label">
52
- Group created at:
53
- </div>
54
- <div class="field">
55
- <%=h h I18n.l @group.created_at, :format => :long %>
56
- </div>
57
- </div>
58
- <div class="row">
59
- <div class="label">
60
- Group updated at:
61
- </div>
62
- <div class="field">
63
- <%=h I18n.l @group.updated_at, :format => :long %>
64
- </div>
65
- </div>
66
- </div>
67
- </div>
68
-
69
- <div class="block" id="contact_info">
70
- <div class="header">
71
- <div class="header_text">
72
- Contact Information
73
- </div>
74
- <div class="header_icon_right">
75
- <%= link_to (image_tag('/images/btn/edit.png')), :controller => :groups, :action => :edit, :section => :contact_info %>
76
- </div>
77
- </div>
78
- <div class="content">
79
- <% if @group.profile.phone? %>
80
- <div class="row">
81
- <div class="label">
82
- Phone
83
- </div>
84
- <div class="field">
85
- <%=h @group.profile.phone %>
86
- </div>
87
- </div>
88
- <%end%>
89
- <% if @group.profile.mobile? %>
90
- <div class="row">
91
- <div class="label">
92
- Mobile
93
- </div>
94
- <div class="field">
95
- <%=h @group.profile.mobile %>
96
- </div>
97
- </div>
98
- <%end%>
99
- <% if @group.profile.fax? %>
100
- <div class="row">
101
- <div class="label">
102
- Fax
103
- </div>
104
- <div class="field">
105
- <%=h @group.profile.fax %>
106
- </div>
107
- </div>
108
- <%end%>
109
- <% if @group.profile.address? %>
110
- <div class="row">
111
- <div class="label">
112
- Address
113
- </div>
114
- <div class="field">
115
- <%=h @group.profile.address %>
116
- </div>
117
- </div>
118
- <%end%>
119
- <% if @group.profile.website? %>
120
- <div class="row">
121
- <div class="label">
122
- Website
123
- </div>
124
- <div class="field">
125
- <a href="<%=h @group.profile.website %>"><%=h @group.profile.website %></a>
126
- </div>
127
- </div>
128
- <%end%>
129
- <% if @group.email.present? %>
130
- <div class="row">
131
- <div class="label">
132
- E-mail:
133
- </div>
134
- <div class="field">
135
- <%=h @group.email %>
136
- </div>
137
- </div>
138
- <%end%>
139
- </div>
140
-
141
- </div>
142
- </div>
@@ -1,135 +0,0 @@
1
- <% toolbar :option => :groups %>
2
-
3
- <% content_for :sidebar do %>
4
- <%= render :partial => 'sidebar_show' %>
5
- <% end %>
6
- <% content_for :headers do %>
7
- <%= stylesheet_link_tag "edit_user", :media => "screen, projection" %>
8
- <%= javascript_include_tag 'jquery.validate' %>
9
- <% end %>
10
- <%= form_for(@group, :remote => true) do |f| %>
11
- <% if @group.errors.any? %>
12
- <div id="error_explanation">
13
- <h2><%= pluralize(@group.errors.count, "error") %>prohibited this group from being saved:</h2>
14
- <ul>
15
- <% @group.errors.full_messages.each do |msg| %>
16
- <li>
17
- <%= msg %>
18
- </li>
19
- <% end %>
20
- </ul>
21
- </div>
22
- <% end %>
23
- <% content_for :javascript do %>
24
- $(function() {
25
- $("#content").css('border-bottom', 'none');
26
- $(".edit_group").validate();
27
- });
28
- <% end %>
29
- <div class="block">
30
- <% if !params[:section].present? or params[:section].eql?("about_us") %>
31
- <div class="form_row">
32
- <h2><%=t('edit.group_info')%></h2>
33
- </div>
34
- <div class="form_row">
35
- <div class="form_label">
36
- <%= f.label :name %>
37
- </div>
38
- <div class="form_field">
39
- <%= f.text_field :name, :class => "required form_tag" %>
40
- </div>
41
- </div>
42
- <%= f.fields_for :profile do |profile_form| %>
43
- <div class="form_row">
44
- <div class="form_label">
45
- <%= profile_form.label :organization %>
46
- </div>
47
- <div class="form_field">
48
- <%= profile_form.text_field :organization , :class => "form_tag" %>
49
- </div>
50
- </div>
51
- <div class="form_row">
52
- <div class="form_label">
53
- <%= profile_form.label :city %>
54
- </div>
55
- <div class="form_field">
56
- <%= profile_form.text_field :city, :class => "form_tag" %>
57
- </div>
58
- </div>
59
- <div class="form_row">
60
- <div class="form_label">
61
- <%= profile_form.label :country %>
62
- </div>
63
- <div class="form_field">
64
- <%= profile_form.text_field :country, :class => "form_tag" %>
65
- </div>
66
- </div>
67
- <div class="form_row form_label">
68
- <%= profile_form.label :description %>
69
- </div>
70
- <div class="form_row">
71
- <%= profile_form.text_area :description, :maxlength => 400, :class => "form_tag" %>
72
- </div>
73
-
74
- <% end %>
75
- <% end %>
76
- <% if !params[:section].present? or params[:section].eql?("contact_info") %>
77
- <% content_for :javascript do %>
78
- $(function() {
79
- $("#contact_info").addClass('section_highlight');
80
- });
81
- <% end %>
82
- <div class="form_row">
83
- <h2><%=t('edit.contact')%></h2>
84
- </div>
85
- <%= f.fields_for :profile do |profile_form| %>
86
- <div class="form_row">
87
- <div class="form_label">
88
- <%= profile_form.label :phone %>
89
- </div>
90
- <div class="form_field">
91
- <%= profile_form.text_field :phone, :class => "phone form_tag" %>
92
- </div>
93
- </div>
94
- <div class="form_row">
95
- <div class="form_label">
96
- <%= profile_form.label :mobile %>
97
- </div>
98
- <div class="form_field">
99
- <%= profile_form.text_field :mobile, :class => "phone form_tag" %>
100
- </div>
101
- </div>
102
- <div class="form_row">
103
- <div class="form_label">
104
- <%= profile_form.label :fax %>
105
- </div>
106
- <div class="form_field">
107
- <%= profile_form.text_field :fax, :class => "phone form_tag" %>
108
- </div>
109
- </div>
110
- <div class="form_row">
111
- <div class="form_label">
112
- <%= profile_form.label :address %>
113
- </div>
114
- <div class="form_field">
115
- <%= profile_form.text_field :address, :class => "form_tag" %>
116
- </div>
117
- </div>
118
- <div class="form_row">
119
- <div class="form_label">
120
- <%= profile_form.label :website %>
121
- </div>
122
- <div class="form_field">
123
- <%= profile_form.text_field :website, :class => "url form_tag" %>
124
- </div>
125
- </div>
126
- <% end %>
127
- <% end %>
128
- </div>
129
- <div class="form_row space_center">
130
- <%= f.submit "Update", :class => "button" %>&nbsp;
131
- <button class="button" onclick="window.location.href='<%= group_url(@group) %>';">
132
- Cancel
133
- </button>
134
- </div>
135
- <% end %>