Class: Labels::VersionsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Labels::VersionsController
- Defined in:
- app/controllers/labels/versions_controller.rb
Instance Method Summary collapse
- #branch ⇒ Object
- #consistency_check ⇒ Object
- #lock ⇒ Object
- #merge ⇒ Object
- #to_review ⇒ Object
- #unlock ⇒ Object
Instance Method Details
#branch ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/controllers/labels/versions_controller.rb', line 39 def branch current_label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).published.last! if Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last raise "There is already an unpublished version for Label '#{params[:origin]}'" end :branch, current_label new_version = nil ActiveRecord::Base.transaction do new_version = current_label.branch(current_user) new_version.save! Iqvoc.change_note_class.create! do |note| note.owner = new_version note.language = I18n.locale.to_s note.annotations_attributes = [ { namespace: 'dct', predicate: 'creator', value: current_user.name }, { namespace: 'dct', predicate: 'modified', value: DateTime.now.to_s } ] end end flash[:success] = t('txt.controllers.versioning.branched') redirect_to edit_label_path(published: 0, id: new_version, check_associations_in_editing_mode: true) end |
#consistency_check ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'app/controllers/labels/versions_controller.rb', line 89 def consistency_check label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last! :check_consistency, label if label.publishable? flash[:success] = t('txt.controllers.versioning.consistency_check_success') redirect_to label_path(published: 0, id: label) else flash[:error] = t('txt.controllers.versioning.consistency_check_error') redirect_to edit_label_path(published: 0, id: label, full_consistency_check: 1) end end |
#lock ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/controllers/labels/versions_controller.rb', line 63 def lock new_version = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last! raise "Label with origin '#{params[:origin]}' has already been locked." if new_version.locked? :lock, new_version new_version.lock_by_user(current_user.id) new_version.save! flash[:success] = t('txt.controllers.versioning.locked') redirect_to edit_label_path(published: 0, id: new_version) end |
#merge ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/controllers/labels/versions_controller.rb', line 2 def merge current_label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).published.last new_version = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last! :merge, new_version ActiveRecord::Base.transaction do if current_label.blank? || current_label.destroy new_version.publish new_version.unlock if new_version.publishable? new_version.save begin # TODO if RdfStore.update(new_version.rdf_uri, label_url(:id => new_version, :format => :ttl)) # new_version.update_attribute(:rdf_updated_at, 1.seconds.since) # end rescue Exception => e handle_virtuoso_exception(e.) end if new_version.has_concept_or_label_relations? flash[:success] = t('txt.controllers.versioning.published') redirect_to label_path(id: new_version) else flash[:error] = t('txt.controllers.versioning.published_with_warning') redirect_to label_path(id: new_version) end else flash[:error] = t('txt.controllers.versioning.merged_publishing_error') redirect_to label_path(published: 0, id: new_version) end else flash[:error] = t('txt.controllers.versioning.merged_delete_error') redirect_to label_path(published: 0, id: new_version) end end end |
#to_review ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'app/controllers/labels/versions_controller.rb', line 103 def to_review label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last! :send_to_review, label label.to_review :unlock, label label.unlock label.save! flash[:success] = t('txt.controllers.versioning.to_review_success') redirect_to label_path(published: 0, id: label) end |
#unlock ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'app/controllers/labels/versions_controller.rb', line 76 def unlock new_version = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last! raise "Label with origin '#{params[:origin]}' wasn't locked." unless new_version.locked? :unlock, new_version new_version.unlock new_version.save! flash[:success] = t('txt.controllers.versioning.unlocked') redirect_to label_path(published: 0, id: new_version) end |