kuppayam 0.1.5 → 0.1.6dev2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -0
  3. data/app/assets/images/{kuppayam/favicon.png → favicon.png} +0 -0
  4. data/app/assets/images/{kuppayam/logo.png → logo.png} +0 -0
  5. data/app/assets/javascripts/kuppayam.js +3 -0
  6. data/app/assets/javascripts/kuppayam/utilities.js +28 -0
  7. data/app/assets/stylesheets/kuppayam.css +1 -0
  8. data/app/assets/stylesheets/kuppayam/custom.css +4 -0
  9. data/app/controllers/kuppayam/base_controller.rb +14 -4
  10. data/app/controllers/kuppayam/documents_controller.rb +24 -0
  11. data/app/controllers/kuppayam/images_controller.rb +41 -1
  12. data/app/helpers/breadcrumbs_helper.rb +1 -1
  13. data/app/helpers/filter_helper.rb +9 -3
  14. data/app/helpers/image_helper.rb +11 -3
  15. data/app/helpers/kuppayam_helper.rb +2 -2
  16. data/app/helpers/meta_tags_helper.rb +0 -4
  17. data/app/helpers/notification_helper.rb +6 -6
  18. data/app/helpers/render_helper.rb +11 -2
  19. data/app/helpers/resource_helper.rb +23 -9
  20. data/app/models/document/base.rb +13 -15
  21. data/app/models/document/import_data_file.rb +14 -0
  22. data/app/models/document/import_report_file.rb +8 -0
  23. data/app/models/image/base.rb +12 -14
  24. data/app/models/import_data.rb +19 -2
  25. data/app/models/kuppayam/application_record.rb +3 -0
  26. data/app/uploaders/document_uploader.rb +4 -4
  27. data/app/uploaders/image_uploader.rb +1 -1
  28. data/app/uploaders/import_data_uploader.rb +15 -0
  29. data/app/views/kuppayam/documents/create.html.erb +1 -1
  30. data/app/views/kuppayam/documents/edit.js.erb +1 -1
  31. data/app/views/kuppayam/documents/new.js.erb +1 -1
  32. data/app/views/kuppayam/documents/update.html.erb +1 -1
  33. data/app/views/kuppayam/filters/_display_dropdown_filters.html.erb +11 -0
  34. data/app/views/kuppayam/filters/_display_filters.html.erb +29 -0
  35. data/app/views/kuppayam/http_status/404.html.erb +1 -0
  36. data/app/views/kuppayam/images/_form.html.erb +1 -1
  37. data/app/views/kuppayam/images/_index.html.erb +17 -20
  38. data/app/views/kuppayam/images/_show.html.erb +32 -0
  39. data/app/views/kuppayam/images/create.html.erb +4 -4
  40. data/app/views/kuppayam/images/crop.html.erb +1 -1
  41. data/app/views/kuppayam/images/destroy.js.erb +19 -0
  42. data/app/views/kuppayam/images/edit.js.erb +3 -3
  43. data/app/views/kuppayam/images/index.html.erb +8 -1
  44. data/app/views/kuppayam/images/new.js.erb +1 -1
  45. data/app/views/kuppayam/images/update.html.erb +5 -5
  46. data/app/views/kuppayam/import_data/new.js.erb +1 -1
  47. data/app/views/kuppayam/import_data/update.html.erb +1 -1
  48. data/app/views/kuppayam/workflows/parrot/create.js.erb +11 -6
  49. data/app/views/kuppayam/workflows/parrot/edit.js.erb +1 -1
  50. data/app/views/kuppayam/workflows/parrot/new.js.erb +2 -2
  51. data/app/views/kuppayam/workflows/parrot/row.js.erb +1 -1
  52. data/app/views/kuppayam/workflows/parrot/update.js.erb +10 -5
  53. data/app/views/kuppayam/workflows/peacock/create.js.erb +12 -7
  54. data/app/views/kuppayam/workflows/peacock/edit.js.erb +2 -2
  55. data/app/views/kuppayam/workflows/peacock/new.js.erb +2 -2
  56. data/app/views/kuppayam/workflows/peacock/row.js.erb +1 -1
  57. data/app/views/kuppayam/workflows/peacock/update.js.erb +11 -6
  58. data/app/views/layouts/kuppayam/_footer.html.erb +1 -0
  59. data/app/views/layouts/kuppayam/_head.html.erb +11 -2
  60. data/app/views/layouts/kuppayam/_heading.html.erb +11 -2
  61. data/app/views/layouts/kuppayam/_horizontal_menu.html.erb +932 -0
  62. data/app/views/layouts/kuppayam/_sidebar.html.erb +5 -2
  63. data/app/views/layouts/kuppayam/admin.html.erb +63 -6
  64. data/app/views/layouts/kuppayam/blank.html.erb +62 -5
  65. data/app/views/layouts/kuppayam/document_upload.html.erb +3 -2
  66. data/app/views/layouts/kuppayam/image_upload.html.erb +3 -2
  67. data/app/views/layouts/kuppayam/layout_horizontal_menu.html.erb +116 -0
  68. data/app/views/layouts/kuppayam/print_a4.html.erb +32 -0
  69. data/app/views/layouts/kuppayam/user.html.erb +120 -0
  70. data/config/initializers/importer.rb +303 -0
  71. data/config/initializers/validators.rb +78 -0
  72. data/config/locales/kuppayam/general.yml +1 -0
  73. data/config/routes.rb +1 -1
  74. data/db/migrate/20170000000000_create_images.rb +1 -0
  75. data/db/migrate/20170000000001_create_documents.rb +2 -1
  76. data/db/migrate/20170000000002_create_import_data.rb +2 -2
  77. data/lib/kuppayam/action_view/form_helper.rb +1 -1
  78. data/lib/kuppayam/action_view/theme_helper.rb +8 -2
  79. data/lib/kuppayam/engine.rb +2 -0
  80. data/lib/kuppayam/version.rb +1 -1
  81. data/lib/tasks/template.rake +72 -0
  82. data/lib/tasks/test_import.rake +40 -0
  83. data/vendor/assets/stylesheets/custom.css +0 -0
  84. metadata +76 -16
  85. data/app/views/kuppayam/images/_action_buttons.html.erb +0 -14
  86. data/app/views/layouts/kuppayam/_overlays.html.erb +0 -47
  87. data/config/initializers/kuppayam_validators.rb +0 -76
  88. data/lib/tasks/kuppayam_tasks.rake +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4676b3dd1e5b1e1aa4cdfb38d0f58ac27b4663db
4
- data.tar.gz: e9b098bb964226ce769cdf72a457ec32edd5fabe
3
+ metadata.gz: 3e1bdd06972d946d3a66cb0e43807d400dbf7349
4
+ data.tar.gz: 526bc0b5039d1382f83311600f16bd2a84c9e795
5
5
  SHA512:
6
- metadata.gz: 9ecdb776c31b557709fee68bb6d7c1decf1d85329c4e11af9caa92f369ccdd56e8eeef81a48c4b1c72ae48ba94827991d6b3608759dbfa7125109b2748cbbf60
7
- data.tar.gz: 3cab488cff39fc704688367d3e83bd4c553a38dcac07a1032f346c9bb884cf4332476d84df366cee978c2afbd9e0623f73dbd01272e8965929863f31acc33cf8
6
+ metadata.gz: 1a29bd72865ccc26d82d4a3799a1814b345a3af7738278c90c217e4ac4a602dcff5c77b747555354401c5c7ef5e9e151635f2d3b66e78c53215b5e9d964a1e1a
7
+ data.tar.gz: c768a4b73b07869e91935a9a01b03d951d1539e3bd771014d206ff71781b39d557e9c8724708f27a0cb83623908e660e721dce46cd16e54fe0f75022d78e4ffb
data/README.md CHANGED
@@ -43,6 +43,19 @@ $ gem push gem push kuppayam-0.1.1.gem
43
43
  ```
44
44
 
45
45
 
46
+ ## Testing the gem
47
+
48
+ cd spec/dummy
49
+ rails db:create db:migrate
50
+
51
+ rails s -p <port>
52
+
53
+ ## Running rspec
54
+ rails db:create db:migrate RAILS_ENV
55
+
56
+ # run rspec from the rails root folder and not from dummy folder as spec helper has been linked to dummy.
57
+ rspec
58
+
46
59
 
47
60
  ## License
48
61
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -12,6 +12,7 @@
12
12
  //
13
13
  //= require kuppayam/utilities.js
14
14
  //= require bootstrap.min.js
15
+ //= require moment.min.js
15
16
  //= require TweenMax.min.js
16
17
  //= require resizeable.js
17
18
  //= require joinable.js
@@ -21,5 +22,7 @@
21
22
  //= require wysihtml5/lib/js/wysihtml5-0.3.0.js
22
23
  //= require wysihtml5/src/bootstrap-wysihtml5.js
23
24
  //= require toastr/toastr.min.js
25
+ //= require daterangepicker/daterangepicker.js
26
+ //= require multiselect/js/jquery.multi-select.js
24
27
 
25
28
 
@@ -10,10 +10,31 @@ function sendAjaxRequest(url, mType){
10
10
  jQuery.ajax({type: methodType, dataType:"script", url:url});
11
11
  }
12
12
 
13
+ var imageUploadModalId = "div_modal_image_upload";
13
14
  var genericModalId = "div_modal_generic";
14
15
  var largeModalId = "div_modal_large";
15
16
  var messageModalId = "div_modal_message";
16
17
 
18
+ // Call this function by passing model Id, heading and a bodyContent.
19
+ // it will pop up bootstrap 3 modal.
20
+ function showImageUploadModal(heading, bodyContent, showHeading){
21
+ $('#' + imageUploadModalId + ' .modal-header .modal-title').text(heading);
22
+ $('#' + imageUploadModalId + ' div.modal-body-main').html(bodyContent);
23
+ $('#' + imageUploadModalId).modal({show: true, backdrop: 'static', keyboard: false});
24
+
25
+ if(showHeading){
26
+ $('#' + imageUploadModalId + ' .modal-header').show();
27
+ }
28
+ else {
29
+ $('#' + imageUploadModalId + ' .modal-header').hide();
30
+ }
31
+
32
+ setTimeout(function() {
33
+ $('#' + imageUploadModalId).modal('handleUpdate'); //Update backdrop on modal show
34
+ $('#' + imageUploadModalId).scrollTop(0); //reset modal to top position
35
+ }, 1000);
36
+ }
37
+
17
38
  // Call this function by passing model Id, heading and a bodyContent.
18
39
  // it will pop up bootstrap 3 modal.
19
40
  function showGenericModal(heading, bodyContent, showHeading){
@@ -72,6 +93,13 @@ function showMessageModal(heading, message, modalId){
72
93
  }, 1000);
73
94
  }
74
95
 
96
+ function closeImageUploadModal(modalId){
97
+ $('#' + imageUploadModalId).modal('hide');
98
+
99
+ showAndHideModals();
100
+ }
101
+
102
+
75
103
  function closeGenericModal(modalId){
76
104
  $('#' + genericModalId).modal('hide');
77
105
 
@@ -20,4 +20,5 @@
20
20
  *= require kuppayam/handycss.css
21
21
  *= require kuppayam/custom.css
22
22
  *= require wysihtml5/src/bootstrap-wysihtml5.css
23
+ *= require multiselect/css/multi-select.css
23
24
  */
@@ -60,3 +60,7 @@
60
60
  display:block !important;
61
61
  }
62
62
 
63
+ // Adding Word-break for Chrome
64
+ .word-break {
65
+ word-break: break-all !important;
66
+ }
@@ -1,14 +1,16 @@
1
1
  module Kuppayam
2
2
  class BaseController < ActionController::Base
3
3
 
4
- protect_from_forgery with: :exception
4
+ protect_from_forgery with: :null_session
5
5
  rescue_from ActionController::InvalidAuthenticityToken, :with => :handle_invalid_authenticity_token
6
-
6
+
7
7
  layout 'kuppayam/admin'
8
8
 
9
+ before_action :get_nested_resource_objects
9
10
  before_action :set_locale, :stylesheet_filename, :javascript_filename,
10
- :set_default_title, :set_navs, :parse_pagination_params,
11
- :configure_filters, :configure_notification, :configure_breadcrumbs
11
+ :set_default_title, :set_navs, :parse_pagination_params,
12
+ :configure_filters, :configure_notification, :configure_breadcrumbs
13
+
12
14
 
13
15
  include ParamsParserHelper
14
16
  include RenderHelper
@@ -44,6 +46,14 @@ module Kuppayam
44
46
  { locale: I18n.locale }
45
47
  end
46
48
 
49
+ # This is more like a hooker method which is called
50
+ # before all other before_action method.
51
+ # This method can be overriden by inherited controller classes
52
+ # An e.g: would be to call a method to get @store object from params[:store_id]
53
+ # The object @store has to be initiated before the breadcrumbs or set_title methods are called
54
+ def get_nested_resource_objects
55
+ end
56
+
47
57
  def stylesheet_filename
48
58
  @stylesheet_filename = "kuppayam"
49
59
  end
@@ -12,6 +12,10 @@ module Kuppayam
12
12
  @document = @document_class.find(params[:id])
13
13
  end
14
14
 
15
+ def download
16
+ @document = @document_class.find(params[:id])
17
+ end
18
+
15
19
  def new
16
20
  @document = @document_class.new
17
21
  end
@@ -83,6 +87,26 @@ module Kuppayam
83
87
  @relation = @relation.order(@order_by)
84
88
  end
85
89
 
90
+ def resource_controller_configuration
91
+ {
92
+ page_title: "Documents",
93
+ js_view_path: "/kuppayam/workflows/parrot",
94
+ view_path: "/kuppayam/images"
95
+ }
96
+ end
97
+
98
+ def breadcrumbs_configuration
99
+ {
100
+ heading: "Manage Documents",
101
+ icon: "fa-file",
102
+ description: "Listing all Documents",
103
+ links: [
104
+ {name: "Home", link: root_path, icon: 'fa-home'},
105
+ {name: "Manage Documents", link: documents_path, icon: 'fa-file', active: true}
106
+ ]
107
+ }
108
+ end
109
+
86
110
  def configure_filter_settings
87
111
  @filter_settings = {
88
112
  string_filters: [
@@ -9,7 +9,12 @@ module Kuppayam
9
9
  end
10
10
 
11
11
  def show
12
- @image = @image_class.find(params[:id])
12
+ @image = Image::Base.find(params[:id])
13
+ @r_object = @image = Image::Base.find(params[:id])
14
+ unless @r_object
15
+ set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: "Image"))
16
+ end
17
+ render_accordingly
13
18
  end
14
19
 
15
20
  def new
@@ -24,6 +29,7 @@ module Kuppayam
24
29
  @image = @image_class.new
25
30
  @image.imageable = @resource
26
31
  @image.image = params[:image]
32
+ # @image.image_type = @image_class.name
27
33
  @image.save if @image.valid?
28
34
  set_flash_message("Image has been created successfully", :success)
29
35
  render layout: "kuppayam/image_upload"
@@ -46,6 +52,20 @@ module Kuppayam
46
52
  render layout: "kuppayam/image_upload"
47
53
  end
48
54
 
55
+ def destroy
56
+ @image = @r_object = @image_class.find(params[:id])
57
+ @id = @image.id
58
+ if @image
59
+ @image.destroy
60
+ set_flash_message(I18n.t('success.deleted'), :success)
61
+ set_notification(true, I18n.t('status.success'), I18n.t('success.deleted', item: "Image"))
62
+ @destroyed = true
63
+ else
64
+ set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: "Image"))
65
+ end
66
+
67
+ end
68
+
49
69
  private
50
70
 
51
71
  def permitted_params
@@ -83,6 +103,26 @@ module Kuppayam
83
103
  @relation = @relation.order(@order_by)
84
104
  end
85
105
 
106
+ def resource_controller_configuration
107
+ {
108
+ page_title: "Images",
109
+ js_view_path: "/kuppayam/workflows/parrot",
110
+ view_path: "/kuppayam/images"
111
+ }
112
+ end
113
+
114
+ def breadcrumbs_configuration
115
+ {
116
+ heading: "Manage Images",
117
+ icon: "fa-photo",
118
+ description: "Listing all Images",
119
+ links: [
120
+ {name: "Home", link: root_path, icon: 'fa-home'},
121
+ {name: "Manage Images", link: images_path, icon: 'fa-photo', active: true}
122
+ ]
123
+ }
124
+ end
125
+
86
126
  def configure_filter_settings
87
127
  @filter_settings = {
88
128
  string_filters: [
@@ -21,7 +21,7 @@ module BreadcrumbsHelper
21
21
  # Initialize @links in your controller action
22
22
  def breadcrumb
23
23
  if @breadcrumbs && @breadcrumbs.has_key?(:links) && @breadcrumbs[:links].any?
24
- content_tag(:div, class: "breadcrumb-env") do
24
+ content_tag(:div, class: "breadcrumb-env hidden-xs") do
25
25
  content_tag(:ol, class: "breadcrumb bc-1") do
26
26
  li_array = []
27
27
  @breadcrumbs[:links].each do |item|
@@ -3,7 +3,6 @@ module FilterHelper
3
3
 
4
4
  def configure_filters
5
5
  configure_filter_settings
6
- configure_filter_ui_settings
7
6
  configure_filter_param_mapping
8
7
  end
9
8
 
@@ -98,6 +97,8 @@ module FilterHelper
98
97
  options = rpf[:options] || {}
99
98
  parse_reference_filter_from_params(rpf[:filter_name], rpf[:filter_class], options)
100
99
  end if filter_settings.has_key?(:reference_filters)
100
+
101
+ configure_filter_ui_settings
101
102
  end
102
103
 
103
104
  # Use this method to create a filter if the value is in a variable
@@ -329,10 +330,15 @@ module FilterHelper
329
330
  end
330
331
  selected_text = filter_options[:select_label] unless selected_text
331
332
 
332
- # Clone the existing filters firs
333
+ # Clone the existing filters first
333
334
  # remove the filters which are to be removed and add which are to be added
334
335
  # Also remove the filter which is currently selected
335
- temp_filters = filter_options[:current_filters].clone
336
+
337
+ unless filter_options[:current_filters].blank?
338
+ temp_filters = {}
339
+ else
340
+ temp_filters = filter_options[:current_filters].clone
341
+ end
336
342
  temp_filters.merge!(filter_options[:filters_to_add])
337
343
  temp_filters.reject!{|k,v| filter_options[:filters_to_remove].include?(k)}
338
344
  temp_filters.reject!{|k,v| k == filter_name.to_sym }
@@ -85,7 +85,15 @@ module ImageHelper
85
85
  class: ""
86
86
  )
87
87
 
88
- options[:class] = options[:class] + (object.persisted? ? " #{object.id}-#{options[:size]}-image" : "")
88
+ begin
89
+ image_object_name = method_name.split(".").first
90
+ image_object = object.send :eval, image_object_name
91
+ image_object_id = image_object ? image_object.id : nil
92
+ rescue
93
+ raise "Error with display_image method in kuppayam image_helper.rb"
94
+ end
95
+
96
+ options[:class] = options[:class] + (object.persisted? ? " #{image_object_id}-#{options[:size]}-image" : "")
89
97
 
90
98
  img_url = image_url(object, method_name, **options)
91
99
  return image_tag(img_url, class: options[:class], width: options[:width], height: options[:height])
@@ -116,7 +124,7 @@ module ImageHelper
116
124
  icon: "trash",
117
125
  class: "btn btn-danger btn-block btn-only-hover btn-xs"
118
126
  )
119
-
127
+
120
128
  # Image HTML
121
129
  image_tag = display_image(object, method_name, **options[:image_options])
122
130
 
@@ -130,7 +138,7 @@ module ImageHelper
130
138
  image_object = object.send(assoc_name) if object.respond_to?(assoc_name)
131
139
  if image_object && image_object.persisted?
132
140
  remove_btn_display = raw(theme_fa_icon(options[:delete_options][:icon]) + theme_button_text(options[:delete_options][:text]))
133
- remove_btn = link_to(remove_btn_display, delete_url, :class=>options[:delete_options][:class], :remote=>options[:delete_options][:remote])
141
+ remove_btn = link_to(remove_btn_display, delete_url, :class=>options[:delete_options][:class], :remote=>options[:delete_options][:remote], method: :delete)
134
142
  end
135
143
 
136
144
  link_to(image_tag, edit_url, :remote => options[:remote]) +
@@ -42,10 +42,10 @@ module KuppayamHelper
42
42
  button_text: "Search!",
43
43
  form_html: {
44
44
  :class=>"pull-right",
45
- :style=>"margin-bottom:0px;"},
45
+ :style=>"margin-bottom:0px;width:100%;"},
46
46
  div_html: {:class=>"input-group"},
47
47
  button_class: "btn btn-primary",
48
- text_class: "btn-text"
48
+ text_class: "btn-text hidden-sm hidden-xs"
49
49
  )
50
50
 
51
51
  form_for cls.new,
@@ -1,9 +1,5 @@
1
1
  module MetaTagsHelper
2
2
 
3
- def set_heading(heading)
4
- @heading = heading
5
- end
6
-
7
3
  def set_title(title)
8
4
  @title = title
9
5
  end
@@ -1,9 +1,5 @@
1
1
  module NotificationHelper
2
- # This function will set a notification message depending up on the request type (ajax - xml http or direct http)
3
- # Example
4
- # set_notification("Success", "The message has been sent successfully")
5
- # set_notification("Success", "Permission denied")
6
-
2
+
7
3
  def default_notification_configuration
8
4
  {
9
5
  success: false,
@@ -19,7 +15,11 @@ module NotificationHelper
19
15
  @notification = default_notification_configuration
20
16
  end
21
17
  end
22
-
18
+
19
+ # This function will set a notification message depending up on the request type (ajax - xml http or direct http)
20
+ # Example
21
+ # set_notification("Success", "The message has been sent successfully")
22
+ # set_notification("Success", "Permission denied")
23
23
  def set_notification(success, title, message)
24
24
  @notification[:success] = success
25
25
  @notification[:title] = title
@@ -7,6 +7,9 @@ module RenderHelper
7
7
  end
8
8
  end
9
9
 
10
+ # TODO - This is still not fixed.
11
+ # May be it will work on Ajax Request and show sign in pop up.
12
+ # This is not working for HTTP direct requests
10
13
  def handle_invalid_authenticity_token
11
14
  heading = I18n.t("status.invalid_token.heading")
12
15
  message = I18n.t("status.invalid_token.message")
@@ -15,7 +18,10 @@ module RenderHelper
15
18
  notifyError('#{heading}','#{message}');
16
19
  eos
17
20
  respond_to do |format|
18
- format.html { render :status => 404 }
21
+ format.html {
22
+ #redirect_to root_path
23
+ render template: '/kuppayam/404', layout: 'kuppayam/blank', :status => 404
24
+ }
19
25
  format.js { render text: js_message }
20
26
  end
21
27
  end
@@ -38,7 +44,10 @@ module RenderHelper
38
44
 
39
45
  def render_accordingly
40
46
  respond_to do |format|
41
- format.html { get_collections and render params[:action].to_sym }
47
+ format.html {
48
+ get_collections
49
+ render :index
50
+ }
42
51
  format.js {
43
52
  view_path = @resource_options && @resource_options[:view_path] ? "#{@resource_options[:js_view_path]}/#{params[:action]}" : params[:action].to_sym
44
53
  render view_path
@@ -49,7 +49,13 @@ module ResourceHelper
49
49
  if @r_object
50
50
  @r_object.assign_attributes(permitted_params)
51
51
  instance_variable_set("@#{@resource_options[:item_name]}", @r_object)
52
- save_resource
52
+ if @r_object.can_be_edited?
53
+ save_resource
54
+ else
55
+ message = I18n.t('errors.failed_to_update', item: default_item_name.titleize)
56
+ set_flash_message(message, :failure)
57
+ set_notification(false, I18n.t('status.error'), message)
58
+ end
53
59
  else
54
60
  set_notification(false, I18n.t('status.error'), I18n.t('status.not_found', item: default_item_name.titleize))
55
61
  end
@@ -57,14 +63,13 @@ module ResourceHelper
57
63
 
58
64
  def destroy
59
65
  @r_object = @resource_options[:class].find_by_id(params[:id])
60
-
61
66
  if @r_object
62
67
  instance_variable_set("@#{@resource_options[:item_name]}", @r_object)
63
68
  if @r_object.can_be_deleted?
64
69
  @r_object.destroy
65
70
  get_collections
66
71
  set_flash_message(I18n.t('success.deleted'), :success)
67
- set_notification(false, I18n.t('status.success'), I18n.t('success.deleted', item: default_item_name.titleize))
72
+ set_notification(true, I18n.t('status.success'), I18n.t('success.deleted', item: default_item_name.titleize))
68
73
  @destroyed = true
69
74
  else
70
75
  message = I18n.t('errors.failed_to_delete', item: default_item_name.titleize)
@@ -90,12 +95,11 @@ module ResourceHelper
90
95
  @r_object = @resource_options[:class].find_by_id(params[:id])
91
96
  if @r_object
92
97
  instance_variable_set("@#{@resource_options[:item_name]}", @r_object)
93
- @r_object.status = params[:status]
94
- if @r_object.valid?
95
- @r_object.save
98
+ @r_object.update_attribute(:status, params[:status])
99
+ if @r_object.errors.blank?
96
100
  set_notification(true, I18n.t('status.success'), I18n.t('state.changed', item: default_item_name.titleize, new_state: @r_object.status))
97
101
  else
98
- set_notification(false, I18n.t('status.error'), I18n.translate("error"), @r_object.errors.full_messages.join("<br>"))
102
+ set_notification(false, I18n.t('status.error'), @r_object.errors.full_messages.join("<br>"))
99
103
  end
100
104
  else
101
105
  set_notification(false, I18n.t('status.not_found'), I18n.t('status.not_found', item: default_item_name.titleize))
@@ -114,7 +118,11 @@ module ResourceHelper
114
118
  end
115
119
 
116
120
  def default_collection_name
117
- params[:controller].split("/").last
121
+ begin
122
+ params[:controller].split("/").last
123
+ rescue
124
+ :items
125
+ end
118
126
  end
119
127
 
120
128
  def default_item_name
@@ -122,7 +130,11 @@ module ResourceHelper
122
130
  end
123
131
 
124
132
  def default_class
125
- default_collection_name.singularize.camelize.constantize
133
+ begin
134
+ default_collection_name.singularize.camelize.constantize
135
+ rescue
136
+ nil
137
+ end
126
138
  end
127
139
 
128
140
  def resource_controller_configuration
@@ -137,6 +149,8 @@ module ResourceHelper
137
149
  item_name: default_item_name,
138
150
  class: default_class,
139
151
  layout: :table,
152
+ show_modal_after_create: true,
153
+ show_modal_after_update: true,
140
154
  view_path: "/kuppayam/workflows/peacock",
141
155
  js_view_path: "/kuppayam/workflows/peacock"
142
156
  }