knitkit 2.1.15 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/app/controllers/knitkit/base_controller.rb +1 -1
- data/app/controllers/knitkit/comments_controller.rb +7 -2
- data/app/controllers/knitkit/erp_app/desktop/app_controller.rb +78 -98
- data/app/controllers/knitkit/erp_app/desktop/articles_controller.rb +65 -45
- data/app/controllers/knitkit/erp_app/desktop/content_controller.rb +22 -12
- data/app/controllers/knitkit/erp_app/desktop/file_assets_controller.rb +1 -1
- data/app/controllers/knitkit/erp_app/desktop/image_assets_controller.rb +28 -16
- data/app/controllers/knitkit/erp_app/desktop/inquiries_controller.rb +15 -49
- data/app/controllers/knitkit/erp_app/desktop/online_document_sections_controller.rb +4 -3
- data/app/controllers/knitkit/erp_app/desktop/position_controller.rb +69 -11
- data/app/controllers/knitkit/erp_app/desktop/theme_controller.rb +63 -60
- data/app/controllers/knitkit/erp_app/desktop/website_controller.rb +98 -82
- data/app/controllers/knitkit/erp_app/desktop/website_host_controller.rb +77 -0
- data/app/controllers/knitkit/erp_app/desktop/website_nav_controller.rb +64 -44
- data/app/controllers/knitkit/erp_app/desktop/website_nav_item_controller.rb +147 -0
- data/app/controllers/knitkit/erp_app/desktop/website_section_controller.rb +81 -45
- data/app/controllers/knitkit/mobile_controller.rb +15 -0
- data/app/controllers/knitkit/online_document_sections_controller.rb +2 -1
- data/app/controllers/knitkit/unauthorized_controller.rb +0 -1
- data/app/controllers/knitkit/website_sections_controller.rb +7 -4
- data/app/mailers/website_inquiry_mailer.rb +8 -7
- data/app/models/content.rb +11 -2
- data/app/models/document.rb +2 -17
- data/app/models/published_website.rb +96 -59
- data/app/models/theme.rb +100 -14
- data/app/models/website.rb +260 -28
- data/app/models/website_inquiry.rb +5 -12
- data/app/models/website_section.rb +9 -1
- data/app/views/knitkit/blogs/_add_comment.html.erb +44 -23
- data/app/views/knitkit/blogs/_comment.html.erb +4 -6
- data/app/views/knitkit/blogs/index.html.erb +63 -49
- data/app/views/knitkit/blogs/show.html.erb +17 -12
- data/app/views/knitkit/mobile/index.html.erb +162 -0
- data/app/views/knitkit/online_document_sections/index.html.erb +7 -5
- data/app/views/knitkit/unauthorized/index.html.erb +8 -4
- data/app/views/knitkit/website_sections/index.html.erb +8 -4
- data/app/views/layouts/knitkit/base.html.erb +79 -63
- data/app/views/layouts/knitkit/online_document_sections.html.erb +74 -52
- data/app/views/menus/knitkit/_default_menu.html.erb +4 -4
- data/app/views/menus/knitkit/_default_section_menu.html.erb +22 -23
- data/app/views/shared/knitkit/_bread_crumb.html.erb +10 -7
- data/app/views/shared/knitkit/_footer.html.erb +2 -2
- data/app/views/website_inquiry_mailer/inquiry.erb +23 -2
- data/app/widgets/contact_us/base.rb +25 -50
- data/app/widgets/contact_us/javascript/contact_us.js +7 -7
- data/app/widgets/contact_us/views/error.html.erb +6 -8
- data/app/widgets/contact_us/views/index.html.erb +28 -1
- data/app/widgets/contact_us/views/layouts/base.html.erb +9 -6
- data/app/widgets/contact_us/views/success.html.erb +3 -3
- data/app/widgets/google_map/views/index.html.erb +36 -36
- data/app/widgets/login/base.rb +1 -0
- data/app/widgets/login/javascript/login.js +3 -3
- data/app/widgets/login/views/index.html.erb +46 -26
- data/app/widgets/login/views/layouts/base.html.erb +15 -13
- data/app/widgets/login/views/login_header.html.erb +7 -9
- data/app/widgets/manage_profile/base.rb +116 -164
- data/app/widgets/manage_profile/views/_address.html.erb +184 -0
- data/app/widgets/manage_profile/views/_contact_information_form.html.erb +23 -192
- data/app/widgets/manage_profile/views/_email_address.html.erb +163 -0
- data/app/widgets/manage_profile/views/_password_form.html.erb +23 -20
- data/app/widgets/manage_profile/views/_phone_number.html.erb +165 -0
- data/app/widgets/manage_profile/views/_user_information_form.html.erb +49 -33
- data/app/widgets/manage_profile/views/error.html.erb +6 -0
- data/app/widgets/manage_profile/views/index.html.erb +44 -46
- data/app/widgets/manage_profile/views/layouts/base.html.erb +3 -1
- data/app/widgets/manage_profile/views/success.html.erb +5 -0
- data/app/widgets/reset_password/views/index.html.erb +33 -28
- data/app/widgets/reset_password/views/layouts/base.html.erb +10 -1
- data/app/widgets/search/base.rb +37 -25
- data/app/widgets/search/views/_inline_search_form.html.erb +12 -0
- data/app/widgets/search/views/_search_form.html.erb +41 -0
- data/app/widgets/search/views/index.html.erb +5 -3
- data/app/widgets/search/views/layouts/base.html.erb +13 -23
- data/app/widgets/search/views/show.html.erb +32 -47
- data/app/widgets/signup/base.rb +1 -1
- data/app/widgets/signup/javascript/signup.js +7 -9
- data/app/widgets/signup/views/_signup_form.html.erb +34 -29
- data/app/widgets/signup/views/error.html.erb +11 -11
- data/app/widgets/signup/views/index.html.erb +3 -2
- data/app/widgets/signup/views/layouts/base.html.erb +8 -5
- data/app/widgets/signup/views/success.html.erb +5 -4
- data/config/routes.rb +39 -28
- data/db/data_migrations/20120809020508_update_website_and_configuration.rb +3 -0
- data/db/migrate/20110211002317_setup_knitkit.rb +0 -1
- data/db/migrate/20131112013052_add_knitkit_missing_indexes.rb +33 -0
- data/db/migrate/20140622212723_update_website_inquiries.rb +22 -0
- data/db/migrate/20140911185022_add_publishing_to_website.rb +5 -0
- data/db/migrate/20141013073349_add_custom_fields_to_documents.rb +12 -0
- data/db/migrate/20141016101936_upgrade_remove_dynamic_attributes.rb +13 -0
- data/lib/knitkit.rb +0 -1
- data/lib/knitkit/engine.rb +1 -0
- data/lib/knitkit/extensions.rb +4 -0
- data/lib/knitkit/extensions/active_record/acts_as_commentable.rb +33 -0
- data/lib/knitkit/extensions/active_record/acts_as_document.rb +0 -12
- data/lib/knitkit/extensions/active_record/acts_as_publishable.rb +7 -10
- data/lib/knitkit/extensions/compass_ae/widgets/base.rb +2 -4
- data/lib/knitkit/extensions/compass_ae/widgets/widget_proxy_controller.rb +4 -1
- data/lib/knitkit/extensions/railties/action_view/helpers/blog_helper.rb +16 -13
- data/lib/knitkit/extensions/railties/action_view/helpers/content_helper.rb +10 -8
- data/lib/knitkit/extensions/railties/theme_support/asset_tag_helper.rb +123 -108
- data/lib/knitkit/extensions/will_paginate/link_renderer.rb +67 -0
- data/lib/knitkit/routing_filter/section_router.rb +10 -8
- data/lib/knitkit/syntax_validator.rb +2 -2
- data/lib/knitkit/version.rb +7 -3
- data/public/images/inline_edit/close.png +0 -0
- data/public/images/knitkit/close_window.png +0 -0
- data/public/images/knitkit/logo.png +0 -0
- data/public/images/knitkit/splash/images/add-site.png +0 -0
- data/public/images/knitkit/splash/images/adjust-site.png +0 -0
- data/public/images/knitkit/splash/images/browse-site.png +0 -0
- data/public/images/knitkit/splash/images/find-themes.png +0 -0
- data/public/images/knitkit/splash/images/settings.png +0 -0
- data/public/images/knitkit/splash/images/tutorials.png +0 -0
- data/public/images/knitkit/splash/splash.png +0 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/articles_grid_panel.js +656 -627
- data/public/javascripts/erp_app/desktop/applications/knitkit/center_region.js +444 -333
- data/public/javascripts/erp_app/desktop/applications/knitkit/{east_region.js → east_region/east_region.js} +33 -33
- data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/file_assets_panel.js +332 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_data_view.js +144 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/east_region/image_assets_panel.js +335 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/{widgets_panel.js → east_region/widgets_panel.js} +55 -55
- data/public/javascripts/erp_app/desktop/applications/knitkit/inquiries_grid_panel.js +150 -37
- data/public/javascripts/erp_app/desktop/applications/knitkit/module.js +228 -96
- data/public/javascripts/erp_app/desktop/applications/knitkit/publish_window.js +89 -85
- data/public/javascripts/erp_app/desktop/applications/knitkit/published_grid_panel.js +238 -217
- data/public/javascripts/erp_app/desktop/applications/knitkit/select_roles_window.js +59 -54
- data/public/javascripts/erp_app/desktop/applications/knitkit/splash_screen.js +170 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/main_menu.js +1168 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/top_menu/websites_combo.js +71 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/versions_grid_panel.js +301 -306
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/article.js +216 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/document.js +182 -153
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/host.js +48 -65
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/menu.js +93 -94
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/section.js +523 -197
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website_nav_items.js +20 -34
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/hosts_tree_panel.js +74 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/menu_tree_panel.js +245 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/site_contents_tree_panel.js +360 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/themes_tree_panel.js +348 -0
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/west_region.js +106 -1132
- data/public/javascripts/knitkit/bootstrap-datepicker.js +474 -0
- data/public/javascripts/knitkit/bootstrap.min.js +7 -0
- data/public/javascripts/knitkit/confirm-bootstrap.js +110 -0
- data/public/javascripts/knitkit/inline_editing.js +73 -50
- data/public/javascripts/knitkit/jquery.maskedinput.min.js +7 -0
- data/public/javascripts/knitkit/mobile/app/view/Main.js +108 -0
- data/public/javascripts/knitkit/mobile/ux/slidenavigation/View.js +734 -0
- data/public/javascripts/knitkit/theme.js +76 -0
- data/public/stylesheets/erp_app/desktop/applications/knitkit/knitkit.css +95 -35
- data/public/stylesheets/knitkit/bootstrap-responsive.min.css +10 -0
- data/public/stylesheets/knitkit/bootstrap.min.css +7 -0
- data/public/stylesheets/knitkit/custom.css +122 -0
- data/public/stylesheets/knitkit/datepicker.css +182 -0
- data/public/stylesheets/knitkit/inline_editing.css +58 -58
- data/spec/controllers/knitkit/erp_app/desktop/website_section_controller_spec.rb +1 -1
- data/spec/dummy/config/application.rb +1 -1
- data/spec/models/article_spec.rb +3 -3
- data/spec/models/content_spec.rb +9 -9
- data/spec/models/website_spec.rb +1 -1
- metadata +100 -114
- data/app/helpers/application_helper.rb +0 -134
- data/app/views/knitkit/articles/index.html.erb +0 -3
- data/app/views/knitkit/articles/show.html.erb +0 -4
- data/app/views/menus/knitkit/_default_sub_menu.html.erb +0 -43
- data/app/views/menus/knitkit/_default_sub_section_menu.html.erb +0 -47
- data/app/widgets/contact_us/views/_contact_form.html.erb +0 -36
- data/app/widgets/dynamic_forms/base.rb +0 -139
- data/app/widgets/dynamic_forms/javascript/dynamic_forms.js +0 -110
- data/app/widgets/dynamic_forms/views/error.html.erb +0 -5
- data/app/widgets/dynamic_forms/views/index.html.erb +0 -8
- data/app/widgets/dynamic_forms/views/success.html.erb +0 -4
- data/app/widgets/dynamic_grid/base.rb +0 -130
- data/app/widgets/dynamic_grid/helpers/controller/dynamic_grid_controller_helper.rb +0 -3
- data/app/widgets/dynamic_grid/helpers/view/dynamic_grid_view_helper.rb +0 -3
- data/app/widgets/dynamic_grid/javascript/dynamic_grid.js +0 -177
- data/app/widgets/dynamic_grid/views/index.html.erb +0 -14
- data/app/widgets/login/views/reset_password.html.erb +0 -26
- data/app/widgets/manage_profile/views/default_type_error.html.erb +0 -5
- data/app/widgets/scaffold/base.rb +0 -87
- data/app/widgets/scaffold/helpers/controller/scaffold_controller_helper.rb +0 -3
- data/app/widgets/scaffold/helpers/view/scaffold_view_helper.rb +0 -3
- data/app/widgets/scaffold/javascript/scaffold.js +0 -337
- data/app/widgets/scaffold/views/index.html.erb +0 -15
- data/app/widgets/search/views/_search.html.erb +0 -39
- data/public/images/knitkit/bullet.png +0 -0
- data/public/images/knitkit/close.png +0 -0
- data/public/images/knitkit/content.png +0 -0
- data/public/images/knitkit/footer.png +0 -0
- data/public/images/knitkit/graphic.png +0 -0
- data/public/images/knitkit/greyFadeDown.png +0 -0
- data/public/images/knitkit/link.png +0 -0
- data/public/images/knitkit/menu.png +0 -0
- data/public/images/knitkit/menu_select.png +0 -0
- data/public/images/knitkit/search.png +0 -0
- data/public/images/knitkit/tooltip.gif +0 -0
- data/public/javascripts/ajax_pagination.js +0 -33
- data/public/javascripts/datepicker.js +0 -445
- data/public/javascripts/erp_app/desktop/applications/knitkit/file_assets_panel.js +0 -341
- data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_data_view.js +0 -31
- data/public/javascripts/erp_app/desktop/applications/knitkit/image_assets_panel.js +0 -263
- data/public/javascripts/erp_app/desktop/applications/knitkit/section_articles_grid_panel.js +0 -722
- data/public/javascripts/erp_app/desktop/applications/knitkit/themes_tree_panel.js +0 -585
- data/public/javascripts/erp_app/desktop/applications/knitkit/west_region/helpers/website.js +0 -155
- data/public/javascripts/knitkit/helpers.js +0 -26
- data/public/stylesheets/datepicker.css +0 -121
- data/public/stylesheets/extjs/resources/css/knitkit_extjs_4.css +0 -233
- data/public/stylesheets/knitkit/style.css +0 -426
@@ -1,9 +1,7 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
</span>
|
6
|
-
|
7
|
-
|
8
|
-
<% end %>
|
9
|
-
</div>
|
1
|
+
<span class="login-header">
|
2
|
+
<% unless @authenticated -%>
|
3
|
+
<a href="<%= @login_url %>"><span>Login</span></a>
|
4
|
+
<% else %>
|
5
|
+
<a href="/session/sign_out?login_url=<%= @login_url %>"><span>Logout</span></a>
|
6
|
+
<% end %>
|
7
|
+
</span>
|
@@ -2,7 +2,7 @@ module Widgets
|
|
2
2
|
module ManageProfile
|
3
3
|
class Base < ErpApp::Widgets::Base
|
4
4
|
|
5
|
-
def
|
5
|
+
def index
|
6
6
|
@user = User.find(current_user)
|
7
7
|
@individual = @user.party.business_party
|
8
8
|
@email_addresses = @user.party.find_all_contacts_by_contact_mechanism(EmailAddress)
|
@@ -28,10 +28,6 @@ module Widgets
|
|
28
28
|
states.each do |s|
|
29
29
|
@states_id << [s.zone_name, s.id]
|
30
30
|
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def index
|
34
|
-
load_profile_data
|
35
31
|
|
36
32
|
render
|
37
33
|
end
|
@@ -39,29 +35,14 @@ module Widgets
|
|
39
35
|
def update_user_information
|
40
36
|
#### Get appropriate models ####
|
41
37
|
|
42
|
-
@user=User.find(current_user)
|
43
|
-
@individual= @user.party.business_party
|
44
|
-
|
45
|
-
#### Formating the date for sqlite. Will probably need diffrent formating for production ####
|
46
|
-
if params[:date][:day].to_i < 10
|
47
|
-
day="0#{params[:date][:day]}"
|
48
|
-
else
|
49
|
-
day= params[:date][:day]
|
50
|
-
end
|
51
|
-
|
52
|
-
if params[:date][:month].to_i < 10
|
53
|
-
month="0#{params[:date][:month]}"
|
54
|
-
else
|
55
|
-
month= params[:date][:month]
|
56
|
-
end
|
57
|
-
|
58
|
-
formated_date= "#{params[:date][:year]}-#{month}-#{day}"
|
38
|
+
@user = User.find(current_user)
|
39
|
+
@individual = @user.party.business_party
|
59
40
|
|
60
|
-
@individual.current_first_name= params[:first_name]
|
61
|
-
@individual.current_last_name= params[:last_name]
|
62
|
-
@individual.current_middle_name= params[:middle_name]
|
63
|
-
@individual.gender= params[:gender]
|
64
|
-
@individual.birth_date=
|
41
|
+
@individual.current_first_name = params[:first_name]
|
42
|
+
@individual.current_last_name = params[:last_name]
|
43
|
+
@individual.current_middle_name = params[:middle_name]
|
44
|
+
@individual.gender = params[:gender]
|
45
|
+
@individual.birth_date = Date.strptime(params[:birth_date], '%m/%d/%Y')
|
65
46
|
@user.email = params[:email]
|
66
47
|
|
67
48
|
#### check validation then save and render message ####
|
@@ -70,15 +51,16 @@ module Widgets
|
|
70
51
|
@user.save
|
71
52
|
@individual.save
|
72
53
|
@message = "User Information Updated"
|
73
|
-
|
74
|
-
render :update => {:id => "#{@uuid}_result", :view => :
|
54
|
+
|
55
|
+
render :update => {:id => "#{@uuid}_result", :view => :success}
|
75
56
|
else
|
76
57
|
@message_cls = 'sexyerror'
|
77
58
|
@message = "Error Updating User Information"
|
78
|
-
render :update => {:id => "#{@uuid}_result", :view => :
|
59
|
+
render :update => {:id => "#{@uuid}_result", :view => :error}
|
79
60
|
end
|
80
61
|
else
|
81
|
-
|
62
|
+
@message = "User Information Updated"
|
63
|
+
render :update => {:id => "#{@uuid}_result", :view => :success}
|
82
64
|
end
|
83
65
|
|
84
66
|
end
|
@@ -86,7 +68,6 @@ module Widgets
|
|
86
68
|
|
87
69
|
def update_password
|
88
70
|
if @user = User.authenticate(current_user.username, params[:old_password])
|
89
|
-
load_profile_data
|
90
71
|
|
91
72
|
if !params[:new_password].blank? && !params[:password_confirmation].blank? && params[:new_password] == params[:password_confirmation]
|
92
73
|
|
@@ -94,179 +75,150 @@ module Widgets
|
|
94
75
|
|
95
76
|
if @user.change_password!(params[:new_password])
|
96
77
|
@message = "Password Updated"
|
97
|
-
|
98
|
-
render :update => {:id => "#{@uuid}_result", :view => :
|
78
|
+
|
79
|
+
render :update => {:id => "#{@uuid}_result", :view => :success}
|
99
80
|
else
|
100
81
|
@message = "Error Updating Password"
|
101
|
-
|
82
|
+
|
102
83
|
#### validation failed ####
|
103
|
-
render :update => {:id => "#{@uuid}_result", :view => :
|
84
|
+
render :update => {:id => "#{@uuid}_result", :view => :error}
|
104
85
|
end
|
105
86
|
|
106
87
|
else
|
107
88
|
#### password and password confirmation cant be blank or unequal ####
|
108
89
|
@message = "Password Confirmation Must Match Password"
|
109
|
-
|
110
|
-
render :update => {:id => "#{@uuid}_result", :view => :
|
90
|
+
|
91
|
+
render :update => {:id => "#{@uuid}_result", :view => :error}
|
111
92
|
end
|
112
93
|
else
|
113
|
-
load_profile_data
|
114
94
|
#### old password wrong ####
|
115
95
|
@message = "Invalid Old Password"
|
116
|
-
@message_cls = 'sexyerror'
|
117
|
-
render :update => {:id => "#{@uuid}_result", :view => :index}
|
118
|
-
end
|
119
|
-
|
120
|
-
end
|
121
96
|
|
122
|
-
|
123
|
-
@user= User.find(current_user)
|
124
|
-
@email_addresses= @user.party.find_all_contacts_by_contact_mechanism(EmailAddress)
|
125
|
-
@phone_numbers= @user.party.find_all_contacts_by_contact_mechanism(PhoneNumber)
|
126
|
-
@postal_addresses= @user.party.find_all_contacts_by_contact_mechanism(PostalAddress)
|
127
|
-
contact_type_in_use=false
|
128
|
-
|
129
|
-
#### Updates email records ####
|
130
|
-
@email_addresses.each_with_index do |e, i|
|
131
|
-
if e.email_address != params[:email_addresses][i.to_s]
|
132
|
-
email_address_args={:email_address => params[:email_addresses][i.to_s]}
|
133
|
-
@user.party.update_or_add_contact_with_purpose(EmailAddress,
|
134
|
-
ContactPurpose.find_by_internal_identifier(params[:email_address_contact_purposes][i.to_s]),
|
135
|
-
email_address_args)
|
136
|
-
end
|
97
|
+
render :update => {:id => "#{@uuid}_result", :view => :error}
|
137
98
|
end
|
138
99
|
|
139
|
-
|
140
|
-
@phone_numbers.each_with_index do |p, i|
|
141
|
-
if p.phone_number != params[:phone_numbers][i.to_s]
|
142
|
-
phone_number_args={:phone_number => params[:phone_numbers][i.to_s]}
|
143
|
-
@user.party.update_or_add_contact_with_purpose(PhoneNumber,
|
144
|
-
ContactPurpose.find_by_internal_identifier(params[:phone_number_contact_purposes][i.to_s]),
|
145
|
-
phone_number_args)
|
146
|
-
end
|
147
|
-
end
|
100
|
+
end
|
148
101
|
|
149
|
-
|
150
|
-
|
151
|
-
|
102
|
+
def add_email_address
|
103
|
+
begin
|
104
|
+
email_address = params[:email_address].strip
|
105
|
+
contact_purpose = params[:contact_purpose]
|
152
106
|
|
153
|
-
|
154
|
-
|
155
|
-
|
107
|
+
email = current_user.party.add_contact(EmailAddress,
|
108
|
+
{email_address: email_address},
|
109
|
+
ContactPurpose.find_by_internal_identifier(contact_purpose))
|
156
110
|
|
157
|
-
|
158
|
-
|
159
|
-
|
111
|
+
{:json => {success: true, message: 'Email added', email: email.to_hash(:only => [:id, :email_address],
|
112
|
+
:contact_purpose => email.contact_purpose.description)}}
|
113
|
+
rescue => ex
|
114
|
+
Rails.logger.error ex.message
|
115
|
+
Rails.logger.error ex.backtrace.join("\n")
|
116
|
+
#TODO send out notification
|
160
117
|
|
161
|
-
|
162
|
-
|
163
|
-
|
118
|
+
{:json => {success: false, message: 'Could not add email'}}
|
119
|
+
end
|
120
|
+
end
|
164
121
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
end
|
122
|
+
def remove_email_address
|
123
|
+
begin
|
124
|
+
email_address_id = params[:email_address_id].strip
|
169
125
|
|
170
|
-
|
171
|
-
postal_address_args[:zip]= params[:postal_addresses][i.to_s][:zip]
|
172
|
-
end
|
126
|
+
EmailAddress.find(email_address_id).destroy
|
173
127
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
128
|
+
{:json => {success: true, message: 'Email removed'}}
|
129
|
+
rescue => ex
|
130
|
+
Rails.logger.error ex.message
|
131
|
+
Rails.logger.error ex.backtrace.join("\n")
|
132
|
+
#TODO send out notification
|
178
133
|
|
179
|
-
|
180
|
-
@user.party.update_or_add_contact_with_purpose(PostalAddress,
|
181
|
-
ContactPurpose.find_by_internal_identifier(params[:postal_address_contact_purposes][i.to_s]),
|
182
|
-
postal_address_args)
|
183
|
-
end
|
134
|
+
{:json => {success: false, message: 'Could not remove email'}}
|
184
135
|
end
|
136
|
+
end
|
185
137
|
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
ContactPurpose.find_by_internal_identifier(params[:new_email_address_contact_purpose]),
|
191
|
-
:email_address => params[:new_email_address])
|
192
|
-
else
|
193
|
-
contact_type_in_use=true
|
194
|
-
end
|
195
|
-
end
|
138
|
+
def add_phone_number
|
139
|
+
begin
|
140
|
+
phone_number = params[:phone_number].strip
|
141
|
+
contact_purpose = params[:contact_purpose]
|
196
142
|
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
@user.party.update_or_add_contact_with_purpose(PhoneNumber,
|
201
|
-
ContactPurpose.find_by_internal_identifier(params[:new_phone_number_contact_purpose]),
|
202
|
-
:phone_number => params[:new_phone_number])
|
203
|
-
else
|
204
|
-
contact_type_in_use=true
|
205
|
-
end
|
206
|
-
end
|
143
|
+
phone_number = current_user.party.add_contact(PhoneNumber,
|
144
|
+
{phone_number: phone_number},
|
145
|
+
ContactPurpose.find_by_internal_identifier(contact_purpose))
|
207
146
|
|
208
|
-
|
209
|
-
|
147
|
+
{:json => {success: true, message: 'Phone number added', phone: phone_number.to_hash(:only => [:id, :phone_number],
|
148
|
+
:contact_purpose => phone_number.contact_purpose.description)}}
|
149
|
+
rescue => ex
|
150
|
+
Rails.logger.error ex.message
|
151
|
+
Rails.logger.error ex.backtrace.join("\n")
|
152
|
+
#TODO send out notification
|
210
153
|
|
211
|
-
|
212
|
-
new_postal_address_args[:address_line_1]= params[:new_postal_address][:address_line_1]
|
213
|
-
end
|
214
|
-
|
215
|
-
if params[:new_postal_address][:address_line_2] != "Address Line 2"
|
216
|
-
new_postal_address_args[:address_line_2]= params[:new_postal_address][:address_line_2]
|
154
|
+
{:json => {success: false, message: 'Could not add phone number'}}
|
217
155
|
end
|
156
|
+
end
|
218
157
|
|
219
|
-
|
220
|
-
|
221
|
-
|
158
|
+
def remove_phone_number
|
159
|
+
begin
|
160
|
+
phone_number_id = params[:phone_number_id].strip
|
222
161
|
|
223
|
-
|
224
|
-
new_postal_address_args[:geo_zone_id]= params[:new_postal_address][:state_id].to_i
|
225
|
-
new_postal_address_args[:state]= GeoZone.find(params[:new_postal_address][:state_id]).zone_name
|
226
|
-
end
|
162
|
+
PhoneNumber.find(phone_number_id).destroy
|
227
163
|
|
228
|
-
|
229
|
-
|
230
|
-
|
164
|
+
{:json => {success: true, message: 'Phone number removed'}}
|
165
|
+
rescue => ex
|
166
|
+
Rails.logger.error ex.message
|
167
|
+
Rails.logger.error ex.backtrace.join("\n")
|
168
|
+
#TODO send out notification
|
231
169
|
|
232
|
-
|
233
|
-
new_postal_address_args[:geo_country_id]= params[:new_postal_address][:country_id].to_i
|
234
|
-
new_postal_address_args[:country]= GeoCountry.find(params[:new_postal_address][:country_id]).name
|
170
|
+
{:json => {success: false, message: 'Could not remove phone number'}}
|
235
171
|
end
|
172
|
+
end
|
236
173
|
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
174
|
+
def add_address
|
175
|
+
begin
|
176
|
+
address_line_1 = params[:address_line_1].strip
|
177
|
+
address_line_2 = params[:address_line_2].strip
|
178
|
+
city = params[:city].strip
|
179
|
+
geo_zone_id = params[:state].strip
|
180
|
+
postal_code = params[:postal_code].strip
|
181
|
+
contact_purpose = params[:contact_purpose]
|
182
|
+
|
183
|
+
postal_address = current_user.party.add_contact(PostalAddress,
|
184
|
+
{
|
185
|
+
address_line_1: address_line_1,
|
186
|
+
address_line_2: address_line_2,
|
187
|
+
city: city,
|
188
|
+
geo_zone_id: geo_zone_id,
|
189
|
+
state: GeoZone.find(geo_zone_id).zone_name,
|
190
|
+
zip: postal_code,
|
191
|
+
},
|
192
|
+
ContactPurpose.find_by_internal_identifier(contact_purpose))
|
193
|
+
|
194
|
+
{:json => {success: true,
|
195
|
+
message: 'Address added',
|
196
|
+
address: postal_address.to_hash(:only => [:id, :address_line_1, :address_line_2,
|
197
|
+
:city, :state, :zip],
|
198
|
+
:contact_purpose => postal_address.contact_purpose.description)}}
|
199
|
+
rescue => ex
|
200
|
+
Rails.logger.error ex.message
|
201
|
+
Rails.logger.error ex.backtrace.join("\n")
|
202
|
+
#TODO send out notification
|
203
|
+
|
204
|
+
{:json => {success: false, message: 'Could not add address'}}
|
245
205
|
end
|
206
|
+
end
|
246
207
|
|
247
|
-
|
208
|
+
def remove_address
|
209
|
+
begin
|
210
|
+
address_id = params[:address_id].strip
|
248
211
|
|
249
|
-
|
250
|
-
if contact_type_in_use
|
251
|
-
@message = "New contacts cannot have the same contact type as old contacts"
|
252
|
-
@message_cls = 'sexyerror'
|
253
|
-
render :update => {:id => "#{@uuid}_result", :view => :index}
|
254
|
-
else
|
255
|
-
@message = "Your Contact Information Was Updated"
|
256
|
-
render :update => {:id => "#{@uuid}_result", :view => :index}
|
257
|
-
end
|
212
|
+
PostalAddress.find(address_id).destroy
|
258
213
|
|
259
|
-
|
214
|
+
{:json => {success: true, message: 'address removed'}}
|
215
|
+
rescue => ex
|
216
|
+
Rails.logger.error ex.message
|
217
|
+
Rails.logger.error ex.backtrace.join("\n")
|
218
|
+
#TODO send out notification
|
260
219
|
|
261
|
-
|
262
|
-
result = false
|
263
|
-
contacts.each do |e|
|
264
|
-
if e.contact.contact_purposes[0].internal_identifier == purpose
|
265
|
-
result = true
|
266
|
-
break
|
267
|
-
end
|
220
|
+
{:json => {success: false, message: 'Could not remove address'}}
|
268
221
|
end
|
269
|
-
result
|
270
222
|
end
|
271
223
|
|
272
224
|
#should not be modified
|
@@ -0,0 +1,184 @@
|
|
1
|
+
<div style="margin-top:5px;" id="addressMessageArea"></div>
|
2
|
+
<table class="table table-striped" id="addressesTable">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th>Address Line 1</th>
|
6
|
+
<th>Address Line 2</th>
|
7
|
+
<th>City</th>
|
8
|
+
<th>State</th>
|
9
|
+
<th>Postal Code</th>
|
10
|
+
<th>Contact Type</th>
|
11
|
+
<th> </th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
14
|
+
<tbody>
|
15
|
+
<% @postal_addresses.each do |p| %>
|
16
|
+
<tr id="address<%= p.id %>">
|
17
|
+
<td><%= p.address_line_1 %></td>
|
18
|
+
<td><%= p.address_line_2 %></td>
|
19
|
+
<td><%= p.city %></td>
|
20
|
+
<td><%= p.state %></td>
|
21
|
+
<td><%= p.zip %></td>
|
22
|
+
<td><%= p.contact.contact_purposes.first.description %></td>
|
23
|
+
<td>
|
24
|
+
<button type="button"
|
25
|
+
class="addressDeleteBtn btn btn-danger"
|
26
|
+
data-id="<%= p.id %>">Delete
|
27
|
+
</button>
|
28
|
+
</td>
|
29
|
+
</tr>
|
30
|
+
<% end %>
|
31
|
+
</tbody>
|
32
|
+
</table>
|
33
|
+
|
34
|
+
<button type="button" id="addAddressBtn" class="btn btn-success">Add Address</button>
|
35
|
+
|
36
|
+
<div id="addAddressDiv" style="display:none;">
|
37
|
+
<%= form_remote_tag build_widget_url(:add_address), :id => 'address_form', :role => 'form' do %>
|
38
|
+
<div class="form-group">
|
39
|
+
<%= label_tag :address_line_1 %>
|
40
|
+
<%= text_field_tag :address_line_1, nil, class: 'form-control', required: true %>
|
41
|
+
|
42
|
+
<%= label_tag :address_line_2 %>
|
43
|
+
<%= text_field_tag :address_line_2, nil, class: 'form-control' %>
|
44
|
+
|
45
|
+
<%= label_tag :city %>
|
46
|
+
<%= text_field_tag :city, nil, class: 'form-control', required: true %>
|
47
|
+
|
48
|
+
<%= label_tag :state %>
|
49
|
+
<%= select_tag("state", options_for_select(@states_id, :selected => "default", :disabled => "default"), :class => "form-control") %>
|
50
|
+
|
51
|
+
<%= label_tag :postal_code %>
|
52
|
+
<%= text_field_tag :postal_code, nil, class: 'form-control', required: true %>
|
53
|
+
|
54
|
+
<%= label_tag :contact_purpose %>
|
55
|
+
<%= select_tag("contact_purpose", options_for_select(@purpose_hash, :selected => "default"), :class => "form-control") %>
|
56
|
+
</div>
|
57
|
+
<button id="submitAddressBtn" type="submit" class="btn btn-primary">Submit</button>
|
58
|
+
<button id="cancelAddressBtn" type="button" class="btn btn-default">Cancel</button>
|
59
|
+
<% end %>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<script type="text/javascript">
|
63
|
+
|
64
|
+
addressesPanel = {
|
65
|
+
setup: function () {
|
66
|
+
jQuery('#addAddressBtn').click(function () {
|
67
|
+
var addBtn = jQuery(this);
|
68
|
+
|
69
|
+
addBtn.css('display', 'none');
|
70
|
+
jQuery('#addAddressDiv').css('display', '');
|
71
|
+
});
|
72
|
+
|
73
|
+
jQuery('#cancelAddressBtn').click(function () {
|
74
|
+
var addBtn = jQuery('#addAddressBtn');
|
75
|
+
|
76
|
+
addBtn.css('display', '');
|
77
|
+
jQuery('#addAddressDiv').css('display', 'none');
|
78
|
+
});
|
79
|
+
|
80
|
+
jQuery('#address_form').bind('ajax:success', function (e, response) {
|
81
|
+
var html = '';
|
82
|
+
|
83
|
+
if (response.success) {
|
84
|
+
html = [
|
85
|
+
'<div class="alert alert-success" >',
|
86
|
+
'<button type="button" class="close" data-dismiss="alert">×</button>',
|
87
|
+
response.message,
|
88
|
+
'</div>'
|
89
|
+
].join('');
|
90
|
+
|
91
|
+
var newRowHtml = [
|
92
|
+
'<tr id="address' + response.address.id + '">',
|
93
|
+
'<td>' + response.address.address_line_1 + '</td>',
|
94
|
+
'<td>' + response.address.address_line_2 + '</td>',
|
95
|
+
'<td>' + response.address.city + '</td>',
|
96
|
+
'<td>' + response.address.state + '</td>',
|
97
|
+
'<td>' + response.address.zip + '</td>',
|
98
|
+
'<td>' + response.address.contact_purpose + '</td>',
|
99
|
+
'<td>',
|
100
|
+
'<button type="button" class="addressDeleteBtn btn btn-danger" data-id="' + response.address.id + '" >Delete</button>',
|
101
|
+
'</td>',
|
102
|
+
'</tr>'
|
103
|
+
].join('');
|
104
|
+
|
105
|
+
jQuery('#addressesTable > tbody:last').append(newRowHtml);
|
106
|
+
var newDeleteBtn = jQuery('#addressesTable > tbody:last > tr:last > td:last > button');
|
107
|
+
|
108
|
+
newDeleteBtn.confirmModal({
|
109
|
+
confirmCallback: addressesPanel.deleteAddress,
|
110
|
+
confirmMessage : 'Are you sure you want to remove this address ?'
|
111
|
+
});
|
112
|
+
|
113
|
+
jQuery('#addAddressBtn').css('display', '');
|
114
|
+
jQuery('#addAddressDiv').css('display', 'none');
|
115
|
+
jQuery('#address_form')[0].reset();
|
116
|
+
}
|
117
|
+
else {
|
118
|
+
html = [
|
119
|
+
'<div class="alert alert-danger" >',
|
120
|
+
'<button type="button" class="close" data-dismiss="alert">×</button>',
|
121
|
+
response.message,
|
122
|
+
'</div>'
|
123
|
+
].join('');
|
124
|
+
}
|
125
|
+
|
126
|
+
jQuery('#addressMessageArea').html(html);
|
127
|
+
});
|
128
|
+
|
129
|
+
window['addressesPanel'].bindDeleteBtn();
|
130
|
+
},
|
131
|
+
|
132
|
+
bindDeleteBtn: function () {
|
133
|
+
jQuery('.addressDeleteBtn').confirmModal({
|
134
|
+
confirmCallback: addressesPanel.deleteAddress,
|
135
|
+
confirmMessage : 'Are you sure you want to remove this address ?'
|
136
|
+
});
|
137
|
+
},
|
138
|
+
|
139
|
+
deleteAddress: function (link, data) {
|
140
|
+
var id = data.id;
|
141
|
+
|
142
|
+
jQuery.ajax({
|
143
|
+
url: '<%= build_widget_url(:remove_address) %>',
|
144
|
+
data: {address_id: id},
|
145
|
+
success: function (data) {
|
146
|
+
if (data.success) {
|
147
|
+
html = [
|
148
|
+
'<div class="alert alert-success" >',
|
149
|
+
'<button type="button" class="close" data-dismiss="alert">×</button>',
|
150
|
+
data.message,
|
151
|
+
'</div>'
|
152
|
+
].join('');
|
153
|
+
|
154
|
+
jQuery('#addressMessageArea').html(html);
|
155
|
+
|
156
|
+
jQuery('#address' + id).remove();
|
157
|
+
}
|
158
|
+
else {
|
159
|
+
html = [
|
160
|
+
'<div class="alert alert-danger" >',
|
161
|
+
'<button type="button" class="close" data-dismiss="alert">×</button>',
|
162
|
+
data.message,
|
163
|
+
'</div>'
|
164
|
+
].join('');
|
165
|
+
|
166
|
+
jQuery('#addressMessageArea').html(html);
|
167
|
+
}
|
168
|
+
},
|
169
|
+
error: function () {
|
170
|
+
html = [
|
171
|
+
'<div class="alert alert-danger" >',
|
172
|
+
'<button type="button" class="close" data-dismiss="alert">×</button>',
|
173
|
+
'Could not remove address',
|
174
|
+
'</div>'
|
175
|
+
].join('');
|
176
|
+
|
177
|
+
jQuery('#addressMessageArea').html(html);
|
178
|
+
}
|
179
|
+
});
|
180
|
+
}
|
181
|
+
};
|
182
|
+
|
183
|
+
addressesPanel.setup();
|
184
|
+
</script>
|