Class: Labels::VersionsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Labels::VersionsController
- Defined in:
- app/controllers/labels/versions_controller.rb
Instance Method Summary collapse
Instance Method Details
#branch ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'app/controllers/labels/versions_controller.rb', line 41 def branch current_label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).published.last! if draft_label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last flash[:info] = t('txt.controllers.versioning.branch_error') redirect_to label_path(published: 0, id: draft_label) else :branch, current_label new_version = nil ActiveRecord::Base.transaction do new_version = current_label.branch new_version.save! Iqvoc.change_note_class.create! do |note| note.owner = new_version note.language = I18n.locale.to_s note.position = (current_label.send(Iqvoc.change_note_class_name.to_relation_name).maximum(:position) || 0).succ 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 end |
#consistency_check ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/controllers/labels/versions_controller.rb', line 68 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 |
#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 38 39 |
# 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 new_version.publish 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 current_label && !current_label.destroy flash[:error] = t('txt.controllers.versioning.merged_delete_error') redirect_to label_path(published: 0, id: new_version) 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 end end |
#to_review ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'app/controllers/labels/versions_controller.rb', line 82 def to_review label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last! :send_to_review, label if label.publishable? label.to_review label.save! flash[:success] = t('txt.controllers.versioning.to_review_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 |