Changeset 452
- Timestamp:
- 01/22/07 14:25:42 (2 years ago)
- Files:
-
- branches/workorder_report_rename/app/controllers/form_category_controller.rb (moved) (moved from branches/workorder_report_rename/app/controllers/report_category_controller.rb) (5 diffs)
- branches/workorder_report_rename/app/controllers/form_controller.rb (moved) (moved from branches/workorder_report_rename/app/controllers/report_controller.rb) (24 diffs)
- branches/workorder_report_rename/app/controllers/form_type_controller.rb (moved) (moved from branches/workorder_report_rename/app/controllers/report_type_controller.rb) (18 diffs)
- branches/workorder_report_rename/app/helpers/form_category_helper.rb (moved) (moved from branches/workorder_report_rename/app/helpers/report_category_helper.rb) (1 diff)
- branches/workorder_report_rename/app/helpers/form_helper.rb (moved) (moved from branches/workorder_report_rename/app/helpers/report_helper.rb) (1 diff)
- branches/workorder_report_rename/app/helpers/form_type_helper.rb (moved) (moved from branches/workorder_report_rename/app/helpers/report_type_helper.rb) (1 diff)
- branches/workorder_report_rename/app/models/form.rb (moved) (moved from branches/workorder_report_rename/app/models/report.rb) (14 diffs)
- branches/workorder_report_rename/app/models/form_category.rb (moved) (moved from branches/workorder_report_rename/app/models/report_category.rb) (3 diffs)
- branches/workorder_report_rename/app/models/form_event.rb (moved) (moved from branches/workorder_report_rename/app/models/report_event.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field.rb) (4 diffs)
- branches/workorder_report_rename/app/models/form_field_bool_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_bool_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_date_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_date_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_datetime_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_datetime_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_enum_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_enum_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_float_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_float_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_group.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_group.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_image_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_image_value.rb) (3 diffs)
- branches/workorder_report_rename/app/models/form_field_int_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_int_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_long_string_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_long_string_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_string_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_string_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_time_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_time_value.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_field_value.rb (moved) (moved from branches/workorder_report_rename/app/models/report_field_value.rb) (4 diffs)
- branches/workorder_report_rename/app/models/form_html_template.rb (moved) (moved from branches/workorder_report_rename/app/models/report_html_template.rb) (3 diffs)
- branches/workorder_report_rename/app/models/form_permission.rb (moved) (moved from branches/workorder_report_rename/app/models/report_permission.rb) (1 diff)
- branches/workorder_report_rename/app/models/form_tag.rb (moved) (moved from branches/workorder_report_rename/app/models/report_tag.rb) (3 diffs)
- branches/workorder_report_rename/app/models/form_template.rb (moved) (moved from branches/workorder_report_rename/app/models/report_template.rb) (2 diffs)
- branches/workorder_report_rename/app/models/form_template_image.rb (moved) (moved from branches/workorder_report_rename/app/models/report_template_image.rb) (2 diffs)
- branches/workorder_report_rename/app/views/form (moved) (moved from branches/workorder_report_rename/app/views/report)
- branches/workorder_report_rename/app/views/form/_creation_form.rhtml (modified) (2 diffs)
- branches/workorder_report_rename/app/views/form/_inputs_for_fields.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form/_recursive_tree.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form/_report_list.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form/fill_image_field.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form/online_help__general.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form/remove.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form/search.rhtml (modified) (3 diffs)
- branches/workorder_report_rename/app/views/form/view.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_category (moved) (moved from branches/workorder_report_rename/app/views/report_category)
- branches/workorder_report_rename/app/views/form_category/_recursive_tree.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_category/online_help__general.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_category/view_as_tree.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_type (moved) (moved from branches/workorder_report_rename/app/views/report_type)
- branches/workorder_report_rename/app/views/form_type/change_template.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_type/create_step1.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_type/create_step2.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_type/create_step3.rhtml (modified) (2 diffs)
- branches/workorder_report_rename/app/views/form_type/create_step4.rhtml (modified) (8 diffs)
- branches/workorder_report_rename/app/views/form_type/edit.rhtml (modified) (5 diffs)
- branches/workorder_report_rename/app/views/form_type/online_help__general.rhtml (modified) (1 diff)
- branches/workorder_report_rename/app/views/form_type/preview.rhtml (modified) (1 diff)
- branches/workorder_report_rename/db/migrate/021_version_one_dot_two_tables.rb (modified) (3 diffs)
- branches/workorder_report_rename/public/images/16x16/form.png (moved) (moved from branches/workorder_report_rename/public/images/16x16/report.png)
- branches/workorder_report_rename/public/images/16x16/form_type.gif (moved) (moved from branches/workorder_report_rename/public/images/16x16/report_type.gif)
- branches/workorder_report_rename/public/images/16x16/form_type.png (moved) (moved from branches/workorder_report_rename/public/images/16x16/report_type.png)
- branches/workorder_report_rename/public/images/16x16/timeline_form.gif (moved) (moved from branches/workorder_report_rename/public/images/16x16/timeline_report.gif)
- branches/workorder_report_rename/public/images/22x22/form.png (moved) (moved from branches/workorder_report_rename/public/images/22x22/report.png)
- branches/workorder_report_rename/public/images/22x22/form_category.png (moved) (moved from branches/workorder_report_rename/public/images/22x22/report_category.png)
- branches/workorder_report_rename/public/images/22x22/form_type.png (moved) (moved from branches/workorder_report_rename/public/images/22x22/report_type.png)
- branches/workorder_report_rename/public/images/22x22/menu_form_category.gif (moved) (moved from branches/workorder_report_rename/public/images/22x22/menu_report_category.gif)
- branches/workorder_report_rename/public/images/22x22/menu_form_type.gif (moved) (moved from branches/workorder_report_rename/public/images/22x22/menu_report_type.gif)
- branches/workorder_report_rename/public/stylesheets/forms.css (moved) (moved from branches/workorder_report_rename/public/stylesheets/reports.css)
- branches/workorder_report_rename/test/fixtures/form_categories.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/report_categories.yml) (3 diffs)
- branches/workorder_report_rename/test/fixtures/form_field_groups.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/report_field_groups.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/form_field_values.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/report_field_values.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/form_fields.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/report_fields.yml) (5 diffs)
- branches/workorder_report_rename/test/fixtures/form_types.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/report_types.yml) (9 diffs)
- branches/workorder_report_rename/test/fixtures/forms.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/reports.yml) (26 diffs)
- branches/workorder_report_rename/test/fixtures/forms_work_orders.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/reports_work_orders.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/selenium/form_categories.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/selenium/report_categories.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/selenium/form_field_groups.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/selenium/report_field_groups.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/selenium/form_field_values.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/selenium/report_field_values.yml)
- branches/workorder_report_rename/test/fixtures/selenium/form_fields.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/selenium/report_fields.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/selenium/form_types.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/selenium/report_types.yml) (1 diff)
- branches/workorder_report_rename/test/fixtures/selenium/forms.yml (moved) (moved from branches/workorder_report_rename/test/fixtures/selenium/reports.yml)
- branches/workorder_report_rename/test/functional/form_category_controller_test.rb (moved) (moved from branches/workorder_report_rename/test/functional/report_category_controller_test.rb) (13 diffs)
- branches/workorder_report_rename/test/functional/form_controller_test.rb (moved) (moved from branches/workorder_report_rename/test/functional/report_controller_test.rb) (13 diffs)
- branches/workorder_report_rename/test/functional/form_type_controller_test.rb (moved) (moved from branches/workorder_report_rename/test/functional/report_type_controller_test.rb) (13 diffs)
- branches/workorder_report_rename/test/unit/form_category_test.rb (moved) (moved from branches/workorder_report_rename/test/unit/report_category_test.rb) (4 diffs)
- branches/workorder_report_rename/test/unit/form_field_group_test.rb (moved) (moved from branches/workorder_report_rename/test/unit/report_field_group_test.rb) (1 diff)
- branches/workorder_report_rename/test/unit/form_field_test.rb (moved) (moved from branches/workorder_report_rename/test/unit/report_field_test.rb) (2 diffs)
- branches/workorder_report_rename/test/unit/form_field_value_test.rb (moved) (moved from branches/workorder_report_rename/test/unit/report_field_value_test.rb) (1 diff)
- branches/workorder_report_rename/test/unit/form_template_test.rb (moved) (moved from branches/workorder_report_rename/test/unit/report_template_test.rb) (7 diffs)
- branches/workorder_report_rename/test/unit/form_type_test.rb (moved) (moved from branches/workorder_report_rename/test/unit/report_type_test.rb) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/workorder_report_rename/app/controllers/form_category_controller.rb
r378 r452 2 2 # See license agreement for additional rights 3 3 4 # Class: ReportCategoryController4 # Class: FormCategoryController 5 5 # ==================================== 6 6 # … … 9 9 # <ApplicationController> 10 10 # 11 class ReportCategoryController < ApplicationController11 class FormCategoryController < ApplicationController 12 12 prepend_before_filter :login_required 13 13 14 14 def list 15 15 @help = 'general' 16 @title = _(' Reportcategories')16 @title = _('Form categories') 17 17 @fields = [ [_('Name'), :name], 18 18 [_('Parent'), :parent_name], 19 [_('Tag'), : report_tag],20 [_(' Report type count'), :report_type_count]19 [_('Tag'), :form_tag], 20 [_('Form type count'), :form_type_count] 21 21 ] 22 @items = items_for_page( ReportCategory, :order => 'parent_id, report_tag_id, name')22 @items = items_for_page(FormCategory, :order => 'parent_id, form_tag_id, name') 23 23 render(:partial => 'shared/list_items', :layout => 'mainlevel') 24 24 end … … 26 26 def create 27 27 @help = 'general' 28 @title = _('Create a new reportcategory')28 @title = _('Create a new form category') 29 29 @fields = [ 30 30 [_('Name'), :text_field, 'name', { :size => 40, :maxlength => 40 }], 31 [_('Tag'), :select, ' report_tag_id', ReportTag.find(:all, :order => 'name').map {|tag| [tag.full_name, tag.id] }, { :include_blank => true } ],31 [_('Tag'), :select, 'form_tag_id', FormTag.find(:all, :order => 'name').map {|tag| [tag.full_name, tag.id] }, { :include_blank => true } ], 32 32 [_('Parent'), :select, 'parent_id' ] 33 33 ] 34 34 update_possible_parents() 35 common_create( ReportCategory, 'name', {:action => 'list'}, {:action => 'list'})35 common_create(FormCategory, 'name', {:action => 'list'}, {:action => 'list'}) 36 36 end 37 37 38 38 def edit 39 39 @help = 'general' 40 @title = _('Edit reportcategory')41 @ report_category = ReportCategory.find params[:id]40 @title = _('Edit form category') 41 @form_category = FormCategory.find params[:id] 42 42 @fields = [ 43 43 [_('Name'), :text_field, 'name', { :size => 40, :maxlength => 40 }], 44 [_('Tag'), :select, ' report_tag_id', ReportTag.find(:all, :order => 'name').map {|tag| [tag.full_name, tag.id] }, { :include_blank => true } ],44 [_('Tag'), :select, 'form_tag_id', FormTag.find(:all, :order => 'name').map {|tag| [tag.full_name, tag.id] }, { :include_blank => true } ], 45 45 [_('Parent'), :select, 'parent_id' ] 46 46 ] 47 update_possible_parents(@ report_category)48 common_edit( ReportCategory, 'name', {:action => 'list'}, {:action => 'list'})47 update_possible_parents(@form_category) 48 common_edit(FormCategory, 'name', {:action => 'list'}, {:action => 'list'}) 49 49 end 50 50 51 51 def remove 52 common_remove( ReportCategory, 'name', :action => 'list') {|instance|53 unless instance.children.empty? and instance. report_types.empty?52 common_remove(FormCategory, 'name', :action => 'list') {|instance| 53 unless instance.children.empty? and instance.form_types.empty? 54 54 msg_could_not_remove_because_not_empty(instance) 55 55 end … … 59 59 def view_as_tree 60 60 @help = 'general' 61 @title = (' Reportcategory hierarchy')62 @ report_categories = ReportCategory.find :all, :readonly => true, :order => 'name'61 @title = ('Form category hierarchy') 62 @form_categories = FormCategory.find :all, :readonly => true, :order => 'name' 63 63 end 64 64 … … 68 68 # ================================= 69 69 # 70 # Updates possible parents for the report_category.70 # Updates possible parents for the form_category. 71 71 # 72 # If no report_category is given, then the list of72 # If no form_category is given, then the list of 73 73 # possible parents will contain all existing categories. 74 def update_possible_parents( report_category = nil)75 report_categories = ReportCategory.find(:all, :order => 'name')74 def update_possible_parents(form_category = nil) 75 form_categories = FormCategory.find(:all, :order => 'name') 76 76 possible_parents = [[_('No parent'), 0]] 77 77 78 report_categories.each do |potential_parent|79 unless potential_parent.is_child_of?( report_category) or potential_parent == report_category78 form_categories.each do |potential_parent| 79 unless potential_parent.is_child_of?(form_category) or potential_parent == form_category 80 80 possible_parents << [potential_parent.name, potential_parent.id] 81 81 end branches/workorder_report_rename/app/controllers/form_controller.rb
r373 r452 4 4 require 'RMagick' 5 5 6 # Class: ReportController6 # Class: FormController 7 7 # =========================== 8 8 # … … 11 11 # <ApplicationController> 12 12 # 13 class ReportController < ApplicationController13 class FormController < ApplicationController 14 14 prepend_before_filter :login_required 15 15 … … 17 17 18 18 def edit_protector 19 remove_ report_lock20 user_left_page_group(: report_edit)19 remove_form_lock 20 user_left_page_group(:form_edit) 21 21 redirect_to(params[:destination]) 22 22 end … … 25 25 # ============== 26 26 # 27 # Lists reports for asset @selected_asset.28 # Optionaly also lists reports for all asset's subassets:27 # Lists forms for asset @selected_asset. 28 # Optionaly also lists forms for all asset's subassets: 29 29 # The choice is saved to session so that it is rememberd when returned to this action. 30 30 def list … … 32 32 33 33 if session[:select_branches] 34 @title = _(' Reports for selected assets in branch %s', @selected_asset.code_and_name)35 else 36 @title = _(' Reports for asset %s', @selected_asset.code_and_name)34 @title = _('Forms for selected assets in branch %s', @selected_asset.code_and_name) 35 else 36 @title = _('Forms for asset %s', @selected_asset.code_and_name) 37 37 end 38 38 … … 40 40 41 41 @items_limit = 10 42 generate_ report_lists(ReportType.find(:all, :readonly => true), @selected_assets_condition)43 render(:partial => ' report_list', :layout => 'mainlevel')44 end 45 46 def select_ report_type47 unless @selected_asset.authorized_to_create_ report?48 redirect_with_error_message(msg_unauthorized_operation(_('create report'), @selected_asset.code_and_name), :action => 'index')49 return 50 end 51 52 redirect_to(:action => 'create', :id => params[: report_type][:id], :cause_work_order_id => params[:cause_work_order_id]) and return if request.post?53 54 @title = _('Select reporttype to create')55 @help = 'general' 56 57 report_types = params[:tag_id].nil? ? ReportType.find(:all, :conditions => ['ready = ?', true], :readonly => true) : ReportTag.find(params[:tag_id]).report_types58 59 redirect_with_message(_('No report types defined.'), :back) and return if report_types.empty?42 generate_form_lists(FormType.find(:all, :readonly => true), @selected_assets_condition) 43 render(:partial => 'form_list', :layout => 'mainlevel') 44 end 45 46 def select_form_type 47 unless @selected_asset.authorized_to_create_form? 48 redirect_with_error_message(msg_unauthorized_operation(_('create form'), @selected_asset.code_and_name), :action => 'index') 49 return 50 end 51 52 redirect_to(:action => 'create', :id => params[:form_type][:id], :cause_work_order_id => params[:cause_work_order_id]) and return if request.post? 53 54 @title = _('Select form type to create') 55 @help = 'general' 56 57 form_types = params[:tag_id].nil? ? FormType.find(:all, :conditions => ['ready = ?', true], :readonly => true) : FormTag.find(params[:tag_id]).form_types 58 59 redirect_with_message(_('No form types defined.'), :back) and return if form_types.empty? 60 60 61 61 @hidden_fields = [ ['cause_work_order_id', params[:cause_work_order_id].to_i] ] if params[:cause_work_order_id] 62 @fields = [ [_(' Report type'), 'report_type', 'id', report_types.collect { |type| [type.name, type.id] }] ]62 @fields = [ [_('Form type'), 'form_type', 'id', form_types.collect { |type| [type.name, type.id] }] ] 63 63 render(:partial => 'shared/select', :layout => 'mainlevel', 64 64 :locals => { :cancel_url_options => { :action => 'list' } }) … … 67 67 def create 68 68 @help = 'general' 69 unless @selected_asset.authorized_to_create_ report?70 redirect_with_error_message(msg_unauthorized_operation(_('create report'), @selected_asset.code_and_name), :action => 'index')71 return 72 end 73 74 @title = _('Create a new report')75 @ report_type = ReportType.find(params[:id], :conditions => ['ready = ?', true])76 @ report = @report_type.create_empty_report(@selected_asset)77 @ report.creator = session[:user]69 unless @selected_asset.authorized_to_create_form? 70 redirect_with_error_message(msg_unauthorized_operation(_('create form'), @selected_asset.code_and_name), :action => 'index') 71 return 72 end 73 74 @title = _('Create a new form') 75 @form_type = FormType.find(params[:id], :conditions => ['ready = ?', true]) 76 @form = @form_type.create_empty_form(@selected_asset) 77 @form.creator = session[:user] 78 78 @cause_work_order_id = params[:cause_work_order_id] if params[:cause_work_order_id] 79 # Reportcookies are used to match image field values in the session80 # to specific reportcreation / edit form.81 @ report_cookie = params[:report_cookie] || Time.now.to_i79 # Form cookies are used to match image field values in the session 80 # to specific form creation / edit form. 81 @form_cookie = params[:form_cookie] || Time.now.to_i 82 82 session[:image_fields] ||= { } 83 session[:image_fields][@ report_cookie] ||= {}83 session[:image_fields][@form_cookie] ||= {} 84 84 85 85 if request.post? 86 for field in @ report_type.report_fields86 for field in @form_type.form_fields 87 87 next if field.automatic? 88 @value = @ report.get_field_value_for(field)89 raise "No report field value found for reportfield: #{field.inspect}" unless @value90 if field.type_code == ReportField::IMAGE91 @value.attributes = session[:image_fields][@ report_cookie][field.id.to_s]88 @value = @form.get_field_value_for(field) 89 raise "No form field value found for form field: #{field.inspect}" unless @value 90 if field.type_code == FormField::IMAGE 91 @value.attributes = session[:image_fields][@form_cookie][field.id.to_s] 92 92 else 93 93 @value.attributes = params[field.form_field_name.to_sym] if @value … … 97 97 end 98 98 99 @ report.cause_work_order_id = @cause_work_order_id if @cause_work_order_id100 101 if @ report.validate_fields and @report.valid?102 @ report.editable = params[:report][:editable] if params[:report] and @report_type.editable103 @ report.ready = true104 session[:image_fields].delete(@ report_cookie) if session[:image_fields]105 106 if @ report.save and @report.update_automatic_field_values107 redirect_to :action => 'view', :id => @ report.id99 @form.cause_work_order_id = @cause_work_order_id if @cause_work_order_id 100 101 if @form.validate_fields and @form.valid? 102 @form.editable = params[:form][:editable] if params[:form] and @form_type.editable 103 @form.ready = true 104 session[:image_fields].delete(@form_cookie) if session[:image_fields] 105 106 if @form.save and @form.update_automatic_field_values 107 redirect_to :action => 'view', :id => @form.id 108 108 return 109 109 end … … 116 116 render(:partial => 'creation_form', 117 117 :layout => 'mainlevel', 118 :locals => { : report => @report, :report_type => @report_type })118 :locals => { :form => @form, :form_type => @form_type }) 119 119 end 120 120 … … 122 122 # ============== 123 123 # 124 # Edits an existing report124 # Edits an existing form 125 125 def edit 126 126 @help = 'general' 127 @title = _('Edit report')128 @ report = Report.find(params[:id], :include => [:data_permissions, :report_field_values])129 130 unless @ report.editable and @report.authorized_to_edit?131 redirect_with_error_message(msg_unauthorized_operation(_('edit'), @ report.to_s),132 :action => 'view', :id => @ report.id)133 return 134 end 135 136 @ report_type = @report.report_type137 # Reportcookies are used to match image field values in the session138 # to specific reportcreation / edit form.139 @ report_cookie = params[:report_cookie] || Time.now.to_i127 @title = _('Edit form') 128 @form = Form.find(params[:id], :include => [:data_permissions, :form_field_values]) 129 130 unless @form.editable and @form.authorized_to_edit? 131 redirect_with_error_message(msg_unauthorized_operation(_('edit'), @form.to_s), 132 :action => 'view', :id => @form.id) 133 return 134 end 135 136 @form_type = @form.form_type 137 # Form cookies are used to match image field values in the session 138 # to specific form creation / edit form. 139 @form_cookie = params[:form_cookie] || Time.now.to_i 140 140 session[:image_fields] ||= { } 141 session[:image_fields][@ report_cookie] ||= {}141 session[:image_fields][@form_cookie] ||= {} 142 142 143 143 if request.post? 144 for field in @ report_type.report_fields144 for field in @form_type.form_fields 145 145 next if field.automatic? 146 @value = @ report.get_field_value_for(field)147 148 if field.type_code == ReportField::IMAGE149 @value.attributes = session[:image_fields][@ report_cookie][field.id.to_s]146 @value = @form.get_field_value_for(field) 147 148 if field.type_code == FormField::IMAGE 149 @value.attributes = session[:image_fields][@form_cookie][field.id.to_s] 150 150 else 151 151 @value.attributes = params[field.form_field_name.to_sym] … … 154 154 end 155 155 156 if @ report.validate_fields157 @ report.editable = params[:report][:editable] if params[:report] and @report.report_type.editable158 session[:image_fields].delete(@ report_cookie) if session[:image_fields]159 if @ report.save_with_values156 if @form.validate_fields 157 @form.editable = params[:form][:editable] if params[:form] and @form.form_type.editable 158 session[:image_fields].delete(@form_cookie) if session[:image_fields] 159 if @form.save_with_values 160 160 flash[:notice] = msg_changes_saved 161 redirect_to :action => 'view', :id => @ report.id and return161 redirect_to :action => 'view', :id => @form.id and return 162 162 else 163 163 flash[:error] = msg_saving_failed … … 167 167 168 168 else 169 unless @ report.lock_for_current_user(LOCK_DURATION)170 flash[:error] = msg_resource_locked(@ report)171 return redirect_to(:action => 'view', :id => @ report.id)172 end 173 174 unless @ report.save175 flash[:error] = msg_locking_failed_for(@ report)176 return redirect_to(:action => 'view', :id => @ report.id)177 end 178 179 user_entered_page_group(: report_edit, @report.id)169 unless @form.lock_for_current_user(LOCK_DURATION) 170 flash[:error] = msg_resource_locked(@form) 171 return redirect_to(:action => 'view', :id => @form.id) 172 end 173 174 unless @form.save 175 flash[:error] = msg_locking_failed_for(@form) 176 return redirect_to(:action => 'view', :id => @form.id) 177 end 178 179 user_entered_page_group(:form_edit, @form.id) 180 180 181 181 # Create instance variables that can be used in the form 182 for field in @ report_type.report_fields182 for field in @form_type.form_fields 183 183 next if field.automatic? 184 @value = @ report.get_field_value_for(field)185 186 if field.type_code == ReportField::IMAGE184 @value = @form.get_field_value_for(field) 185 186 if field.type_code == FormField::IMAGE 187 187 session[:image_fields] ||= {} 188 session[:image_fields][@ report_cookie] ||= {}189 session[:image_fields][@ report_cookie][field.id.to_s] ||= { :position_x => @value.position_x, :position_y => @value.position_y }188 session[:image_fields][@form_cookie] ||= {} 189 session[:image_fields][@form_cookie][field.id.to_s] ||= { :position_x => @value.position_x, :position_y => @value.position_y } 190 190 else 191 191 instance_variable_set("@#{field.form_field_name}".to_sym, @value) … … 196 196 render(:partial => 'creation_form', 197 197 :layout => 'mainlevel', 198 :locals => { : report => @report, :report_type => @report.report_type, :preview => false })198 :locals => { :form => @form, :form_type => @form.form_type, :preview => false }) 199 199 end 200 200 201 201 def fill_image_field 202 @field = ReportField.find params[:id]203 @ report_cookie = params[:report_cookie]202 @field = FormField.find params[:id] 203 @form_cookie = params[:form_cookie] 204 204 session[:image_fields] ||= { } 205 session[:image_fields][@ report_cookie] ||= {}206 if session[:image_fields][@ report_cookie][@field.id.to_s]207 @position_x = session[:image_fields][@ report_cookie][@field.id.to_s][:position_x]208 @position_y = session[:image_fields][@ report_cookie][@field.id.to_s][:position_y]205 session[:image_fields][@form_cookie] ||= {} 206 if session[:image_fields][@form_cookie][@field.id.to_s] 207 @position_x = session[:image_fields][@form_cookie][@field.id.to_s][:position_x] 208 @position_y = session[:image_fields][@form_cookie][@field.id.to_s][:position_y] 209 209 end 210 210 … … 221 221 field_id, position = params[:field_id_and_xy_position].split('?') 222 222 position_x, position_y = position.split(',').map {|c| c.to_i} 223 report_cookie = params[:report_cookie]224 225 session[:image_fields][ report_cookie][field_id] = { :position_x => position_x, :position_y => position_y }223 form_cookie = params[:form_cookie] 224 225 session[:image_fields][form_cookie][field_id] = { :position_x => position_x, :position_y => position_y } 226 226 227 227 redirect_to :back … … 231 231 # ================ 232 232 # 233 # Displays the reportlisting233 # Displays the form listing 234 234 def search 235 235 @help = 'general' … … 242 242 end 243 243 244 @ report_categories = ReportCategory.find(:all, :readonly => true, :order => 'name')244 @form_categories = FormCategory.find(:all, :readonly => true, :order => 'name') 245 245 246 246 find_selected_assets 247 247 248 # Reporttypes were selected249 if params[: report_types]250 @selected_types = ReportType.find(params[:report_types], :conditions => ['ready = ?', true], :readonly => true, :order => 'name')251 session[:keywords] = ReportType.get_keywords(@selected_types.collect { |t| t.id }, @selected_assets_condition).sort248 # Form types were selected 249 if params[:form_types] 250 @selected_types = FormType.find(params[:form_types], :conditions => ['ready = ?', true], :readonly => true, :order => 'name') 251 session[:keywords] = FormType.get_keywords(@selected_types.collect { |t| t.id }, @selected_assets_condition).sort 252 252 else 253 253 @selected_types = [] 254 254 end 255 255 256 @year_span = Report.year_span(@selected_assets_condition)256 @year_span = Form.year_span(@selected_assets_condition) 257 257 @year = params[:year] ? params[:year].to_i : @year_span.last 258 258 @year = Time.now.year if @year < 1900 or @year > 2100 … … 273 273 conditions = @selected_assets_condition 274 274 if conditions.is_a?(Array) 275 conditions[0] = "(#{conditions[0]}) AND reports.created_at >= ? AND reports.created_at <= ?"275 conditions[0] = "(#{conditions[0]}) AND forms.created_at >= ? AND forms.created_at <= ?" 276 276 conditions.push(date_start, date_end) 277 277 else 278 conditions = ["(#{conditions}) AND reports.created_at >= ? AND reports.created_at <= ?", date_start, date_end]279 end 280 281 @keywords = params[: report][:keywords] if params[:report]278 conditions = ["(#{conditions}) AND forms.created_at >= ? AND forms.created_at <= ?", date_start, date_end] 279 end 280 281 @keywords = params[:form][:keywords] if params[:form] 282 282 @keywords ||= "" 283 283 284 generate_ report_lists(@selected_types, conditions, @keywords)285 end 286 287 # Function: auto_complete_for_ report_keywords284 generate_form_lists(@selected_types, conditions, @keywords) 285 end 286 287 # Function: auto_complete_for_form_keywords 288 288 # =========================================== 289 289 # 290 290 # Called by AJAX 291 def auto_complete_for_ report_keywords291 def auto_complete_for_form_keywords 292 292 input = @request.raw_post.split.last 293 input.gsub!(" report%5Bkeywords%5D=", "")293 input.gsub!("form%5Bkeywords%5D=", "") 294 294 input.gsub!("%C3%A4", "À") 295 295 input.gsub!("%C3%B6", "ö") … … 304 304 # ============== 305 305 # 306 # Displays the reportin html.306 # Displays the form in html. 307 307 def view 308 308 @help = 'general' 309 309 begin 310 @ report = Report.find(params[:id], :include => [:data_permissions, :asset])310 @form = Form.find(params[:id], :include => [:data_permissions, :asset]) 311 311 rescue ActiveRecord::RecordNotFound 312 312 if params[:cmms_link] 313 313 redirect_with_error_message(msg_invalid_link_in_markup("[#{params[:id]}]"), :back) 314 314 else 315 redirect_with_error_message(msg_non_existing_data( Report, params[:id]), :action => 'list')315 redirect_with_error_message(msg_non_existing_data(Form, params[:id]), :action => 'list') 316 316 end 317 317 return 318 318 end 319 319 320 unless @ report.authorized_to_read?321 redirect_with_error_message(msg_unauthorized_operation('read', @ report.id), :action => 'list')322 return 323 end 324 325 @title = _(' Report %s (%s)', @report.to_s, @report.report_type.name)326 info("Displaying reportID:#{params[:id]}")327 328 if @ report.report_type and @report.report_type.report_html_template329 image_base_url = url_for(:controller => ' report', :action => 'get_report_image', :id => @report.id) + '?filename='330 html_ report = @report.report_type.report_html_template.create_filled_version(@report, image_base_url)331 @ report_style = html_report.style332 @ report_body = html_report.body333 else 334 flash[:error] = msg_system_failure_in(_('Displaying the report'))320 unless @form.authorized_to_read? 321 redirect_with_error_message(msg_unauthorized_operation('read', @form.id), :action => 'list') 322 return 323 end 324 325 @title = _('Form %s (%s)', @form.to_s, @form.form_type.name) 326 info("Displaying form ID:#{params[:id]}") 327 328 if @form.form_type and @form.form_type.form_html_template 329 image_base_url = url_for(:controller => 'form', :action => 'get_form_image', :id => @form.id) + '?filename=' 330 html_form = @form.form_type.form_html_template.create_filled_version(@form, image_base_url) 331 @form_style = html_form.style 332 @form_body = html_form.body 333 else 334 flash[:error] = msg_system_failure_in(_('Displaying the form')) 335 335 redirect_to :back 336 336 end … … 340 340 # =================== 341 341 # 342 # Displays report template image in the reportcreation wizard342 # Displays form template image in the form creation wizard 343 343 def get_image 344 image = ReportTemplateImage.find_by_report_type_id_and_name(params[:id], params[:name])344 image = FormTemplateImage.find_by_form_type_id_and_name(params[:id], params[:name]) 345 345 if image 346 346 data = image.data 347 347 position_x = params[:position_x] 348 348 position_y = params[:position_y] 349 data = ReportFieldImageValue.draw_marker(data, position_x.to_i, position_y.to_i) if position_x and position_y349 data = FormFieldImageValue.draw_marker(data, position_x.to_i, position_y.to_i) if position_x and position_y 350 350 send_data(data) 351 351 else 352 error('Unable to display reporttemplate image')352 error('Unable to display form template image') 353 353 render :text => '' 354 354 end 355 355 end 356 356 357 # Function: get_ report_image357 # Function: get_form_image 358 358 # ========================== 359 359 # 360 # Displays image from a report361 def get_ report_image362 report = Report.find_authorized_to_read(params[:id])363 image = ReportTemplateImage.find_by_report_type_id_and_filename(report.report_type_id, params[:filename])360 # Displays image from a form 361 def get_form_image 362 form = Form.find_authorized_to_read(params[:id]) 363 image = FormTemplateImage.find_by_form_type_id_and_filename(form.form_type_id, params[:filename]) 364 364 if image 365 image.draw_marker_if_image_field!( report) if image.is_image_field?365 image.draw_marker_if_image_field!(form) if image.is_image_field? 366 366 send_data(image.data) 367 367 else 368 error('Unable to display reportimage')368 error('Unable to display form image') 369 369 render :text => '' 370 370 end … … 374 374 # ================== 375 375 # 376 # Offers OpenDocument reportfor download376 # Offers OpenDocument form for download 377 377 def download 378 378 # Find objects 379 report = Report.find(params[:id])380 381 unless report.authorized_to_read?382 redirect_with_error_message(msg_unauthorized_operation('read', report.to_s), :action => 'list')383 return 384 end 385 386 if report.report_type and report.report_type.report_template379 form = Form.find(params[:id]) 380 381 unless form.authorized_to_read? 382 redirect_with_error_message(msg_unauthorized_operation('read', form.to_s), :action => 'list') 383 return 384 end 385 386 if form.form_type and form.form_type.form_template 387 387 # Inserting field values 388 od_ report = report.report_type.report_template.create_filled_version(report)389 390 info "Offering OpenDocument report ID:#{report.id} for download"391 send_data(od_ report.data, :filename => "report_#{report.id}.odt", :disposition => 'inline')388 od_form = form.form_type.form_template.create_filled_version(form) 389 390 info "Offering OpenDocument form ID:#{form.id} for download" 391 send_data(od_form.data, :filename => "form_#{form.id}.odt", :disposition => 'inline') 392 392 else 393 393 flash[:error] = msg_system_failure_in(_('Preparing the document for download')) … … 397 397 398 398 def remove 399 common_remove( Report, 'id', :action => 'list' ) { |instance|399 common_remove(Form, 'id', :action => 'list' ) { |instance| 400 400 unless instance.authorized_to_remove?