SpeciesFileGroup/taxonworks

View on GitHub
app/views/pinboard_items/create.js.erb

Summary

Maintainability
Test Coverage
$('[data-pin-button-item-id="<%= @pinboard_item.pinned_object_id -%>"]').replaceWith("<%= j pin_item_to_pinboard_link(@pinboard_item.pinned_object, sessions_current_user) -%>");
$('body').mx_spinner('hide');
TW.workbench.alert.create("Pinboard item was successfully created.", "notice");

var pinItemJson = {
  id: <%= @pinboard_item.pinned_object_id -%>,
  type: "<%= @pinboard_item.pinned_object_type -%>",
  object_id: <%= @pinboard_item.pinned_object.id -%>,
  is_inserted: <%= @pinboard_item.is_inserted -%>,
  pinned_object_section: "<%= @pinboard_item.pinned_object_type.pluralize -%>"
}

var defaultExist = TW.workbench.pinboard.getInsertedPin(pinItemJson);

if (defaultExist) {
  TW.workbench.pinboard.changeLink(defaultExist, false);
}

var injectItem = `<li class="slide-panel-category-item" data-insert="<%= @pinboard_item.is_inserted -%>" data-pinboard-object-id="<%= @pinboard_item.pinned_object.id -%>" data-pinboard-item-id="<%= @pinboard_item.id -%>" data-pin-item="<%= @pinboard_item.id -%>" id="<%= "order_#{@pinboard_item.id}" -%>">
                <div class="handle flex-separate middle ui-sortable-handle">
                  <%= object_link(@pinboard_item.pinned_object) -%>
                </div>
                <%= pinboard_item_options(@pinboard_item) -%>
              </li>`

if (!$('[data-pinboard-section="<%= @pinboard_item.pinned_object_type.pluralize -%>"]').length) {
  var injectCategory = `
                <div id="order_<%= @pinboard_item.pinned_object_type.pluralize -%>">
                  <div class="slide-panel-category-header flex-separate">
                    <%= @pinboard_item.pinned_object_type.pluralize -%>
                    <span 
                      class="remove-all-pinned small-icon"
                      data-icon="close"
                      data-delete-all-pinboard-type="<%= @pinboard_item.pinned_object_type -%>"
                      data-delete-all-pinboard-section="<%= @pinboard_item.pinned_object_type.pluralize -%>"
                    >
                    </span>
                  </div>
                    <ul class="slide-panel-category-content"
                              data-pinboard-section="<%= @pinboard_item.pinned_object_type.pluralize -%>"
                              data-sortable
                              data-sortable-items="li"
                              data-sortable-on-change-url="<%= update_position_pinboard_items_path -%>"
                             >
                </ul>
              </div>`;

  $(injectCategory).appendTo('#pinboard');
}

$(injectItem).appendTo('[data-pinboard-section="<%= @pinboard_item.pinned_object_type.pluralize -%>"]');

TW.workbench.pinboard.eventPinboardAdd(pinItemJson);
TW.workbench.pinboard.eventPinboardInsert(pinItemJson);
TW.workbench.pinboard.setDefaultClass();

if($(".slide-pinboard .empty-message").length) {
  $(".empty-message").remove();
}