diff options
| -rw-r--r-- | app/controllers/referentials_controller.rb | 9 | ||||
| -rw-r--r-- | app/models/referential.rb | 22 | ||||
| -rw-r--r-- | app/views/referentials/show.html.slim | 17 | ||||
| -rw-r--r-- | config/locales/referentials.en.yml | 5 | ||||
| -rw-r--r-- | config/locales/referentials.fr.yml | 5 | ||||
| -rw-r--r-- | config/routes.rb | 8 | 
6 files changed, 52 insertions, 14 deletions
| diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb index 09d990752..28a95c784 100644 --- a/app/controllers/referentials_controller.rb +++ b/app/controllers/referentials_controller.rb @@ -27,6 +27,15 @@ class ReferentialsController < BreadcrumbController       end    end +  def archive +    referential.archive! +    redirect_to referential_path, notice: t('notice.referential.archived') +  end +  def unarchive +    referential.unarchive! +    redirect_to referential_path, notice: t('notice.referential.unarchived') +  end +    protected    alias_method :referential, :resource diff --git a/app/models/referential.rb b/app/models/referential.rb index 51168a55f..d4bdc8374 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -208,20 +208,18 @@ class Referential < ActiveRecord::Base      GeoRuby::SimpleFeatures::Geometry.from_ewkt(bounds.present? ? bounds : default_bounds ).envelope    end +  # Archive    def archived? -    true if !archived_at.nil? +    archived_at != nil    end -  alias_method :archived, :archived? -  def archived=(state) -    state = [true, "1"].include?(state) -    self.archived_at = (state ? Time.now : nil) +  def archive! +    # self.archived = true +    touch :archived_at    end - -  def archive -    self.archived = true -  end -  def unarchive -    self.archived = false +  def unarchive! +    # self.archived = false +    update_column :archived_at, nil    end -end +   +end
\ No newline at end of file diff --git a/app/views/referentials/show.html.slim b/app/views/referentials/show.html.slim index 1405d4dd2..d5fed0344 100644 --- a/app/views/referentials/show.html.slim +++ b/app/views/referentials/show.html.slim @@ -1,4 +1,6 @@ -= title_tag @referential.name +h2 +  = @referential.name +  em.small = " (archivé)" if @referential.archived?  .summary    p @@ -49,6 +51,19 @@  - content_for :sidebar do    ul.actions      li = link_to t('referentials.actions.edit'), edit_referential_path(@referential), class: 'edit' + +    li +      - if @referential.archived? +        = link_to unarchive_referential_path(@referential), method: :put do +          span.fa-stack +            span.fa.fa-archive.fa-stack-1x +            span.fa.fa-ban.fa-stack-2x +          = " Désarchiver cet espace de données" +      - else +        = link_to archive_referential_path(@referential), method: :put do +          span.fa.fa-archive +          = " Archiver cet espace de données" +      li = link_to t('referentials.actions.destroy'), referential_path(@referential), method: :delete, data: {:confirm => t('referentials.actions.destroy_confirm')}, class: "remove"      li = link_to t('api_keys.actions.new'), new_referential_api_key_path(@referential), class: 'add'      br diff --git a/config/locales/referentials.en.yml b/config/locales/referentials.en.yml index 74342e9e0..3691a8227 100644 --- a/config/locales/referentials.en.yml +++ b/config/locales/referentials.en.yml @@ -77,3 +77,8 @@ en:          prefix: "only alphanumerical or underscore characters"          upper_corner: "latitude,longitude in WGS84 referential, dot for decimal separator"          lower_corner: "latitude,longitude in WGS84 referential, dot for decimal separator" + +  notice: +    referential: +      archived: "The data space has been successfully archived" +      unarchived: "The data space has been successfully unarchived"
\ No newline at end of file diff --git a/config/locales/referentials.fr.yml b/config/locales/referentials.fr.yml index d8b72d3e3..cada9c3a0 100644 --- a/config/locales/referentials.fr.yml +++ b/config/locales/referentials.fr.yml @@ -77,3 +77,8 @@ fr:          prefix: "caractères autorisés : alphanumériques et 'souligné'"          upper_corner: "latitude,longitude dans le référentiel WGS84, le séparateur de décimales est 'point'"          lower_corner: "latitude,longitude dans le référentiel WGS84, le séparateur de décimales est 'point'" + +  notice: +    referential: +      archived: "L'espace de données a été correctement archivé" +      unarchived: "L'espace de données a été correctement désarchivé" diff --git a/config/routes.rb b/config/routes.rb index f83f4771c..af466f640 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -72,6 +72,12 @@ ChouetteIhm::Application.routes.draw do        end      end +    # Archive/unarchive +    member do +      put :archive +      put :unarchive +    end +      resources :networks      match 'lines' => 'lines#destroy_all', :via => :delete @@ -200,4 +206,4 @@ ChouetteIhm::Application.routes.draw do    get '/422', :to => 'errors#server_error'    get '/500', :to => 'errors#server_error' -end +end
\ No newline at end of file | 
