function checkTagsQuantity() { var $tagLead = $('.tag-lead'), $tagsGroups = $('.tags-groups'); $tagsGroups.each(function(i) { var $children = $(this).children().length; $tagLead.eq(i).children('.badge').text($children); }) } function checkedLength() { var $tagsList = $('#tags-list'), $moduleTags, $defaultTags, $toDefault; function reload_links() { if($('.default-tags').length) { $moduleTags = $('.module-tags input[type="checkbox"]:checked'); $defaultTags = $('.default-tags input[type="checkbox"]:checked'); if($moduleTags.length > 1 || $moduleTags.length+$defaultTags.length > 1) { $('#mergerTags').removeClass('hide'); } else { $('#mergerTags').addClass('hide'); }; if ($moduleTags.length > 0 || $defaultTags.length > 0) { $('#deselect').removeClass('hide'); var ids = new Array(); $defaultTags.each(function(i) { ids.push($defaultTags.eq(i).parent().siblings('.tag_id').val()); }); $moduleTags.each(function(i) { ids.push($moduleTags.eq(i).parent().siblings('.tag_id').val()); }); $('#deleteTags').attr('rel', "<%= Rails.application.routes.url_helpers.delete_tags_admin_tags_path %>" + "?ids=" + ids); $('#deleteTags').removeClass('hide'); $('#deselect').on('click', deselect); } else { $('#deselect').addClass('hide'); $('#deleteTags').attr('rel', ""); $('#deleteTags').addClass('hide'); $('#deselect').off('click', deselect); }; if ($moduleTags.length > 0 && $defaultTags.length == 0) { var ids = new Array(); $moduleTags.each(function(i) { ids.push($moduleTags.eq(i).parent().siblings('.tag_id').val()); }); $('#addDefault').attr('href', "<%= Rails.application.routes.url_helpers.add_to_default_admin_tags_path %>" + "?ids=" + ids); $('#addDefault').removeClass('hide'); } else { $('#addDefault').attr('href', ""); $('#addDefault').addClass('hide'); }; } else { $moduleTags = $('.module-tags li.module input[type="checkbox"]:checked'); $defaultTags = $('.module-tags li.default input[type="checkbox"]:checked'); if($defaultTags.length > 0 || $moduleTags.length > 0) { $('#deselect').removeClass('hide'); $('#deselect').on('click', deselect); if($defaultTags.length > 0 && $moduleTags.length > 0) { $('#deleteTags').attr('rel', ""); $('#deleteTags').addClass('hide'); $('#removeDefaults').attr('rel', ""); $('#removeDefaults').addClass('hide'); $('#mergerTags').addClass('hide'); } else if ($defaultTags.length > 0) { var ids = new Array(); $defaultTags.each(function(i) { ids.push($defaultTags.eq(i).parent().siblings('.tag_id').val()); }); $('#removeDefaults').attr('rel', "<%= Rails.application.routes.url_helpers.remove_default_admin_module_tags_path %>" + "?module_app_id=" + $('#module_app_id').val() + "&ids=" + ids); $('#removeDefaults').removeClass('hide'); } else { var ids = new Array(); $moduleTags.each(function(i) { ids.push($moduleTags.eq(i).parent().siblings('.tag_id').val()); }); $('#deleteTags').attr('rel', "<%= Rails.application.routes.url_helpers.delete_tags_admin_module_tags_path %>" + "?module_app_id=" + $('#module_app_id').val() + "&ids=" + ids); $('#deleteTags').removeClass('hide'); if($moduleTags.length > 1) { $('#mergerTags').removeClass('hide'); } else { $('#mergerTags').addClass('hide'); }; }; } else { $('#deselect').addClass('hide'); $('#deleteTags').attr('rel', ""); $('#deleteTags').addClass('hide'); $('#removeDefaults').attr('rel', ""); $('#removeDefaults').addClass('hide'); $('#mergerTags').addClass('hide'); $('#deselect').off('click', deselect); }; }; } $tagsList.delegate('.card', 'click', function() { reload_links(); }); $('#selectAllTags').on('click', function() { $('.filter-item:not(".mark") input[type="checkbox"]').attr('checked', true); $('.filter-item:not(".mark") .card').addClass('active'); reload_links(); }); $('#deleteTags').on('click', function() { $('#delete_tags .tags-groups').empty(); $('#delete_tags a.delete-tags').attr("href", $(this).attr("rel")); if($defaultTags) { $defaultTags.each(function(i) { $defaultTags.eq(i).parents('.filter-item').clone().appendTo('#delete_tags .tags-groups'); $('#delete_tags .tags-groups .filter-item').addClass('def'); }); } $moduleTags.each(function(i) { $moduleTags.eq(i).parents('.filter-item').clone().appendTo('#delete_tags .tags-groups'); }); $('#delete_tags').modal('show', cleanTagInputs()); function cleanTagInputs(){ var $tagsDelete = $('#delete_tags'), $filterItem = $tagsDelete.find('.filter-item'); $filterItem.find('.card, .amount').remove(); $filterItem.find('a').removeAttr('class'); $filterItem.find('a').removeAttr('href'); } }); $('#mergerTags').on('click', function() { if($moduleTags || $defaultTags) { if($moduleTags.length > 1 || $moduleTags.length+$defaultTags.length > 1) { $('#tags-merger form').attr("action", $(this).attr("rel")); mergerTags() } } }); $('#removeDefaults').on('click', function() { $('#remove_defaults .tags-groups').empty(); $('#remove_defaults a.remove-defaults').attr("href", $(this).attr("rel")); $defaultTags.each(function(i) { $defaultTags.eq(i).parents('.filter-item').clone().appendTo('#remove_defaults .tags-groups'); }); $('#remove_defaults').modal('show', cleanTagInputs()); function cleanTagInputs(){ var $removeDefaults = $('#remove_defaults'), $filterItem = $removeDefaults.find('.filter-item'); $filterItem.find('.card, .amount').remove(); $filterItem.find('a').removeAttr('class'); $filterItem.find('a').removeAttr('href'); } }); function deselect() { $('.tags input[type="checkbox"]').attr('checked', false); $('.card').removeClass('active'); $('.bottomnav .toggable').not('.open-slide').addClass('hide'); $('#deleteTags').attr('rel', "<%= Rails.application.routes.url_helpers.delete_tags_admin_tags_path %>"); $('#addDefault').attr('href', "<%= Rails.application.routes.url_helpers.add_to_default_admin_tags_path %>"); } } function addTagsTab() { $('a[data-toggle="tab"]').click(function (e) { e.preventDefault(); $(this).tab('show'); }) } function mergerTags() { var $moduleTags = $('.module-tags input[type="checkbox"]:checked'), $defaultTags = $('.default-tags input[type="checkbox"]:checked'); $defaultTags.each(function(i) { $defaultTags.eq(i).parents('.filter-item').clone().appendTo('#tags-merger .tags-groups'); $('#tags-merger .tags-groups .filter-item').addClass('def'); }); $moduleTags.each(function(i) { $moduleTags.eq(i).parents('.filter-item').clone().appendTo('#tags-merger .tags-groups'); }); $('#tags-merger').modal('show', changeTagName()); function changeTagName() { var $tagsMerger = $('#tags-merger'), $newTagsName = $('.new-tags-name'), $filterItem = $tagsMerger.find('.filter-item'); $filterItem.find('.card, .amount').remove(); $filterItem.find('a').removeAttr('class'); $filterItem.find('a').removeAttr('href'); $filterItem.on('click', function() { $(this).find('.tag').each(function(i) { $newTagsName.eq(i).val($(this).text()) }); }); } } $(function() { if($('.default-tags').length) { // checkTagsQuantity(); checkedLength(); $('#tags-merger').on('hidden', function () { $(this).find('.filter-item').remove(); }); } else { checkedLength(); }; // addTagsTab(); });