diff --git a/app/assets/javascripts/lib/checkbox.card.js b/app/assets/javascripts/lib/checkbox.card.js index d8c05b237..7b7e97aac 100644 --- a/app/assets/javascripts/lib/checkbox.card.js +++ b/app/assets/javascripts/lib/checkbox.card.js @@ -1,25 +1,53 @@ -function cardCheck() { - if($('.tags').length) { - var $card = $('.checkbox-card .card'), - $check = $card.children($('input[type="checkbox"]')); - $check.each(function(){ - if($(this).attr('checked')) { - $(this).parent(".check").addClass("active"); - } - }) - } else { - var $card = $('.checkbox-card>li'), - $check = $('input[type="checkbox"]'); - $check.each(function(){ - if($(this).attr('checked')) { - $(this).parent("li").addClass("active"); - } - }) - } - $card.on('click', function() { - $(this).toggleClass('active') - }); -} +// function cardCheck() { +// if($('.tags').length) { +// var $card = $('.checkbox-card .card'), +// $check = $card.children($('input[type="checkbox"]')); +// $check.each(function(){ +// if($(this).attr('checked')) { +// $(this).parent(".check").addClass("active"); +// } +// }) +// } else { +// var $card = $('.checkbox-card>li'), +// $check = $('input[type="checkbox"]'); +// $check.each(function(){ +// if($(this).attr('checked')) { +// $(this).parent("li").addClass("active"); +// } +// }) +// } +// $card.on('click', function() { +// $(this).toggleClass('active') +// }); +// } + +// Focus first element +!function ($) { + $.fn.cardCheck = function(param) { + _defaultSettings = { + check: '', + }; + _set = $.extend(_defaultSettings, param); + $card = $(this); + $check = _set.check; + $check.each(function(){ + if($(this).attr('checked')) { + $(this).parent($card).addClass("active"); + } + }); + $card.on('click', function() { + $(this).toggleClass('active') + }); + } +}(window.jQuery); $(function(){ - cardCheck(); + if($('.tags').length) { + $('.card').cardCheck({ + check: $('.card input[type="checkbox"]'), + }); + } else { + $('.checkbox-card > li').cardCheck({ + check: $('.checkbox-card > li input[type="checkbox"]'), + }); + } }); \ No newline at end of file diff --git a/app/assets/javascripts/lib/jquery.fastLiveFilter.js b/app/assets/javascripts/lib/jquery.fastLiveFilter.js index b843a6271..4c0cf4c5d 100644 --- a/app/assets/javascripts/lib/jquery.fastLiveFilter.js +++ b/app/assets/javascripts/lib/jquery.fastLiveFilter.js @@ -52,10 +52,12 @@ // if(showTags == 0) { // $('#deselect, #deleteTags').addClass('hide') // } - li.children('.card').removeClass('active').children('input').attr('checked', false); - if($('.tags input[type="checkbox"]:checked').length == 0) { - $('#deselect, #deleteTags, #addDefault').addClass('hide') - } + + + // li.children('.card').removeClass('active').children('input').attr('checked', false); + // if($('.tags input[type="checkbox"]:checked').length == 0) { + // $('#deselect, #deleteTags, #addDefault').addClass('hide') + // } } } } diff --git a/app/assets/javascripts/lib/jquery.pageslide.js b/app/assets/javascripts/lib/jquery.pageslide.js index 83a0c3773..a85ce0b87 100644 --- a/app/assets/javascripts/lib/jquery.pageslide.js +++ b/app/assets/javascripts/lib/jquery.pageslide.js @@ -53,6 +53,13 @@ } else { $viewPage.find('.content').load(url, function(){ $viewPage.clone(true).appendTo( $pageslide.empty() ).show(); + if($('#filter-default-tag').length) { + $('#filter-default-tag').fastLiveFilter('.add-default-tags-list', '.filter-item', '.tag'); + addTagsTab(); + $('#view-page .card').cardCheck({ + check: $('#view-page input[type="checkbox"]'), + }); + }; }); } @@ -188,12 +195,12 @@ - if($('#add-tags').length) { - $('.set_new').addClass('active in').siblings().removeClass('active in'); - $('#pageslide .selete_defat .search-query').attr('id','filter-default-tag') - $('#filter-default-tag').fastLiveFilter('.add-defalt-tags-list', '.filter-item', '.tag'); - $('.add-defalt-tags-list .filter-item').removeClass('mark'); - } + // if($('#add-tags').length) { + // $('.set_new').addClass('active in').siblings().removeClass('active in'); + // $('#pageslide .select_default .search-query').attr('id','filter-default-tag') + // $('#filter-default-tag').fastLiveFilter('.add-default-tags-list', '.filter-item', '.tag'); + // $('.add-default-tags-list .filter-item').removeClass('mark'); + // } } // Close the pageslide @@ -242,7 +249,9 @@ $pageslide.hide(); _sliding = false; if( typeof callback != 'undefined' ) callback(); - $body.css({'width': 'auto'}) + $body.css({'width': 'auto'}); + $('#view-page .content').empty(); + $('#view-page .pane').remove(); }); } diff --git a/app/assets/javascripts/lib/jquery.pageslide_old.js b/app/assets/javascripts/lib/jquery.pageslide_old.js index 1cd2fd84e..2309a0451 100644 --- a/app/assets/javascripts/lib/jquery.pageslide_old.js +++ b/app/assets/javascripts/lib/jquery.pageslide_old.js @@ -233,9 +233,9 @@ // for Orbit if($('#add-tags').length) { $('.set_new').addClass('active in').siblings().removeClass('active in'); - $('#pageslide .selete_defat .search-query').attr('id','filter-default-tag') - $('#filter-default-tag').fastLiveFilter('.add-defalt-tags-list', '.filter-item', '.tag'); - $('.add-defalt-tags-list .filter-item').removeClass('mark'); + $('#pageslide .select_default .search-query').attr('id','filter-default-tag') + $('#filter-default-tag').fastLiveFilter('.add-default-tags-list', '.filter-item', '.tag'); + $('.add-default-tags-list .filter-item').removeClass('mark'); } // } diff --git a/app/assets/javascripts/lib/tags.js.erb b/app/assets/javascripts/lib/tags.js.erb index e8b4a1251..b9a8f0761 100644 --- a/app/assets/javascripts/lib/tags.js.erb +++ b/app/assets/javascripts/lib/tags.js.erb @@ -13,11 +13,10 @@ function checkedLength() { $moduleTags, $defaultTags, $toDefault; - $card.on('click', function() { + function reload_links() { if($('.default-tags').length) { $moduleTags = $('.module-tags input[type="checkbox"]:checked'); $defaultTags = $('.default-tags input[type="checkbox"]:checked'); - var ids = new Array(); if($moduleTags.length > 1 || $moduleTags.length+$defaultTags.length > 1) { $('#mergerTags').removeClass('hide'); @@ -97,14 +96,14 @@ function checkedLength() { $('#deselect').off('click', deselect); }; }; - }) - $('#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() - } - } + } + $card.on('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(); @@ -127,6 +126,14 @@ function checkedLength() { $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")); @@ -154,7 +161,7 @@ function checkedLength() { function addTagsTab() { - $('#add-tags .nav a').click(function (e) { + $('a[data-toggle="tab"]').click(function (e) { e.preventDefault(); $(this).tab('show'); }) @@ -198,5 +205,5 @@ $(function() { } else { checkedLength(); }; - addTagsTab(); + // addTagsTab(); }); diff --git a/app/assets/stylesheets/lib/pageslide.css b/app/assets/stylesheets/lib/pageslide.css index 697c5ab99..ad233d76d 100644 --- a/app/assets/stylesheets/lib/pageslide.css +++ b/app/assets/stylesheets/lib/pageslide.css @@ -20,8 +20,8 @@ #pageslide .content { padding: 15px; } -#pageslide #view-page .content, -#pageslide #view-page .pane { +#items #pageslide #view-page .content, +#items #pageslide #view-page .pane { padding: 0px; margin-top: 57px; } diff --git a/app/assets/stylesheets/lib/tags-groups.css b/app/assets/stylesheets/lib/tags-groups.css index b5ed7ac02..e715e474a 100644 --- a/app/assets/stylesheets/lib/tags-groups.css +++ b/app/assets/stylesheets/lib/tags-groups.css @@ -153,6 +153,6 @@ width: 199px; margin-bottom: 5px; } -#pageslide .add-defalt-tags-list { +#pageslide .add-default-tags-list { margin-bottom: 0; } \ No newline at end of file diff --git a/app/controllers/admin/module_tags_controller.rb b/app/controllers/admin/module_tags_controller.rb index 7b04d8143..653b88b95 100644 --- a/app/controllers/admin/module_tags_controller.rb +++ b/app/controllers/admin/module_tags_controller.rb @@ -12,12 +12,12 @@ class Admin::ModuleTagsController < OrbitBackendController helper 'admin/tags' def index - @included_tags = @module_app.module_tags.where(is_default: true) @tags = @module_app.module_tags @default_tags = get_default_tags end def new + @default_tags = get_default_tags_without_included @tag = ModuleTag.new render layout: false end @@ -73,7 +73,11 @@ class Admin::ModuleTagsController < OrbitBackendController end def update_included_default - @module_app.update_attribute(:module_tag_ids, (@module_app.module_tag_ids - get_default_tag_ids) << params[:ids]) + default_tags = ModuleTag.find(params[:ids].split(',')) rescue nil + default_tags.each do |tag| + clone_tag_from_default(tag) + end + redirect_to admin_module_tags_url(module_app_id: @module_app_id) end protected @@ -84,8 +88,8 @@ class Admin::ModuleTagsController < OrbitBackendController @module_app_id = @module_app.id rescue nil end - def get_default_tags - ModuleTag.where(is_default: true) + def get_default_tags_without_included + ModuleTag.where(is_default: true, parent_id: nil) - @module_app.module_tags.where(is_default: true).map{|m| m.parent } end def get_default_tag_ids diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index 05a2ad982..817a9726b 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -50,11 +50,7 @@ class Admin::TagsController < OrbitBackendController if module_tags module_tags.each do |module_tag| module_tag.update_attribute(:is_default, true) - new_tag = module_tag.clone - new_tag['_id'] = BSON::ObjectId.new - new_tag['module_app_id'] = @module_app.id - new_tag.save - module_tag.update_attribute(:parent_id, new_tag.id) + clone_tag_to_default(module_tag) end end redirect_to admin_tags_url diff --git a/app/controllers/orbit_backend_controller.rb b/app/controllers/orbit_backend_controller.rb index 9a79ab45c..699425288 100644 --- a/app/controllers/orbit_backend_controller.rb +++ b/app/controllers/orbit_backend_controller.rb @@ -64,13 +64,12 @@ class OrbitBackendController < ApplicationController tag_array = @module_app.tags.inject([]){ |result, value| result << [value.name, value] } - params[:direction].eql?('asc') ? tag_array.sort : tag_array.sort.reverse! + params[:direction].eql?('asc') ? tag_array.sort! : tag_array.sort!.reverse! sorted_objects = Array.new tag_array.each do |x| taggings = x[1].taggings taggings.each {|tagging| sorted_objects << tagging.taggable } end - # debugger sorted_objects.flatten! sorted_objects.uniq! objects = get_with_nil(objects, option, sorted_objects) @@ -155,7 +154,7 @@ class OrbitBackendController < ApplicationController def get_with_nil(objects, option, sorted_objects) tmp = Array.new objects.each { |object| tmp << [get_string_value_from_object(object), object] if (object.send(option).blank? || (object.send(option).size == 0 rescue nil)) } - sorted = params[:direction].eql?('asc') ? tmp.sort : tmp.sort.reverse! + sorted = params[:direction].eql?('asc') ? tmp.sort : tmp.sort.reverse sorted_tmp = sorted.collect {|a| a[1] } a = params[:direction].eql?('asc') ? (sorted_tmp + sorted_objects) : (sorted_objects + sorted_tmp) a.flatten diff --git a/app/views/admin/module_tags/_index.html.erb b/app/views/admin/module_tags/_index.html.erb index 9501845d5..b639016ed 100644 --- a/app/views/admin/module_tags/_index.html.erb +++ b/app/views/admin/module_tags/_index.html.erb @@ -3,7 +3,8 @@