orbit-basic/app/assets/javascripts/lib/tags.js.erb

208 lines
7.3 KiB
Plaintext

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) {
checkedLength();
$('#tags-merger').on('hidden', function () {
$(this).find('.filter-item').remove();
});
} else {
checkedLength();
};
});