diff --git a/app/assets/javascripts/toolbar.js b/app/assets/javascripts/toolbar.js index 31c6b43..3bdf29b 100644 --- a/app/assets/javascripts/toolbar.js +++ b/app/assets/javascripts/toolbar.js @@ -29,8 +29,13 @@ tbody = $('').appendTo(table), tfoot = $('').appendTo(table), cols = data.all_columns, - selected = data.selected_columns; - + selected = []; + + // grab the keys from the data.selected_columns hash + $.each(data.selected_columns, function(k,v){ + selected.push(k); + }); + table.before(''); // PUT not POST table.before(''); // Auth token table.after('

' + I18n.t("helpers.project.project_settings_text") + '

'); diff --git a/app/controllers/settings/projects_controller.rb b/app/controllers/settings/projects_controller.rb index 8c0c814..b0df35c 100644 --- a/app/controllers/settings/projects_controller.rb +++ b/app/controllers/settings/projects_controller.rb @@ -5,9 +5,6 @@ before_filter :get_settings def show - -puts "COLS: #{settings_json.inspect}" - respond_to do |format| format.html format.json { render json: settings_json } @@ -17,8 +14,6 @@ def update columns = (params[:columns] || {}) -puts "COLUMNS: #{params[:columns].inspect}" - if @settings.update_attributes(columns: columns) respond_to do |format| format.html { redirect_to(projects_path) } diff --git a/app/helpers/plans_helper.rb b/app/helpers/plans_helper.rb index 3588ed0..f5cf56d 100644 --- a/app/helpers/plans_helper.rb +++ b/app/helpers/plans_helper.rb @@ -1,17 +1,17 @@ module PlansHelper def project_list_head(column) - klass = case column + klass = case column[0] when 'name' then :dmp_th_big when 'description' then :dmp_th_big else :dmp_th_small end - content_tag(:th, t("helpers.project.columns.#{column}"), class: klass) + content_tag(:th, t("helpers.project.columns.#{column[0]}"), class: klass) end def project_list_body(column, project) - klass, content = case column + klass, content = case column[0] when 'name' [ "dmp_td_big", link_to(project.title, project_path(project), class: "dmp_table_link") ] @@ -34,9 +34,9 @@ when 'last_edited' [ "dmp_td_small", l(project.latest_update.to_date, formats: :short) ] when 'description' - [ "dmp_td_medium", (project.try(column) || "Unknown") ] + [ "dmp_td_medium", (project.try(column[0]) || "Unknown") ] else - [ "dmp_td_small", (project.try(column) || "Unknown") ] + [ "dmp_td_small", (project.try(column[0]) || "Unknown") ] end content_tag(:td, content, class: klass) diff --git a/app/models/settings/plan_list.rb b/app/models/settings/plan_list.rb index 77d7a6a..662ce75 100644 --- a/app/models/settings/plan_list.rb +++ b/app/models/settings/plan_list.rb @@ -5,14 +5,19 @@ # TODO: can these be taken from somewhere else rather than hard-coded here? DEFAULT_COLUMNS = ['name', 'owner', 'shared', 'last_edited'] - ALL_COLUMNS = DEFAULT_COLUMNS + %i( template_owner identifier grant_number principal_investigator data_contact description ) + ALL_COLUMNS = DEFAULT_COLUMNS + ['template_owner', 'identifier', 'grant_number', + 'principal_investigator', 'data_contact', 'description'] validate do cols = value["columns"] + if cols.present? # columns can be empty, in which case they revert to defaults - errors.add(:columns, I18n.t("helpers.settings.projects.errors.no_name")) unless cols.member?(:name) - errors.add(:columns, I18n.t("helpers.settings.projects.errors.duplicate")) unless cols.to_a.uniq == cols - errors.add(:columns, I18n.t("helpers.settings.projects.errors.unknown")) unless (cols.to_a.uniq & ALL_COLUMNS) == cols.to_a.uniq + +puts "COLS: #{cols.keys.inspect}" + + errors.add(:columns, I18n.t("helpers.settings.projects.errors.no_name")) unless cols.member?("name") + errors.add(:columns, I18n.t("helpers.settings.projects.errors.duplicate")) unless cols.keys.uniq == cols.keys + errors.add(:columns, I18n.t("helpers.settings.projects.errors.unknown")) unless (cols.keys.uniq & ALL_COLUMNS) == cols.keys.uniq end end end