Class: FolderItemsController

Inherits:
CatalogController
  • Object
show all
Includes:
Bpluser::FoldersVerifyUser
Defined in:
app/controllers/folder_items_controller.rb

Instance Method Summary collapse

Instance Method Details

#clearObject



59
60
61
62
63
64
65
66
67
68
# File 'app/controllers/folder_items_controller.rb', line 59

def clear
  @folder = current_user.folders.find(params[:id])

  if @folder.folder_items.clear && @folder.save
    flash[:notice] = t('blacklight.folder_items.clear.success')
  else
    flash[:error] = t('blacklight.folder_items.clear.failure')
  end
  redirect_to folders_path(@folder)
end

#createObject



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
# File 'app/controllers/folder_items_controller.rb', line 8

def create
  @response, @document = search_service.fetch(params[:id])

  @folder_items = params[:folder_items].present? ? folder_items_params : default_folder_item_params

  success = @folder_items.all? do |f_item|
    folder_to_update = current_user.folders.find(f_item[:folder_id])

    next true if folder_to_update.folder_item?(f_item[:document_id])

    begin
      folder_to_update.folder_items.create!(document_id: f_item[:document_id])
      next true
    rescue ActiveRecord::RecordInvalid
      break false
    end
  end

  unless request.xhr?
    if success
      flash[:notice] = t('blacklight.folder_items.add.success')
    else
      flash[:error] = t('blacklight.folder_items.add.failure')
    end
  end

  respond_to do |format|
    format.html { redirect_back(fallback_location: root_path) }
    format.js
  end
end

#delete_selectedObject

PRETTY SURE THIS METHOD IS NEVER USED!



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'app/controllers/folder_items_controller.rb', line 71

def delete_selected
  @folder = Bpluser::Folder.find(params[:id])

  if params[:selected]
    if @folder.folder_items.destroy_by(document_id: params[:selected])
      flash[:notice] = t('blacklight.folders.update_items.remove.success')
    else
      flash[:error] = t('blacklight.folders.update_items.remove.failure')
    end

    redirect_to folders_path(@folder)
  else
    flash[:error] = t('blacklight.folders.update_items.remove.no_items')
    redirect_back(fallback_location: root_path)
  end
end

#destroyObject

Beware, :id is the Solr document_id, not the actual Bookmark id. idempotent, as DELETE is supposed to be. PRETTY SURE THIS METHOD IS NEVER USED!



47
48
49
50
51
52
53
54
55
56
57
# File 'app/controllers/folder_items_controller.rb', line 47

def destroy
  @response, @document = search_service.fetch(params[:id])
  folder_item = current_user.existing_folder_item_for(params[:id])

  Bpluser::FolderItem.find(folder_item.id).destroy

  respond_to do |format|
    format.html { redirect_back(fallback_location: root_path) }
    format.js
  end
end

#updateObject



40
41
42
# File 'app/controllers/folder_items_controller.rb', line 40

def update
  create
end