fixed all button for page settings and also filter display after page refresh

This commit is contained in:
Harry Bomrah 2013-11-06 22:30:41 +08:00 committed by saurabhbhatia
parent 591a3e0bc4
commit 49217d4705
4 changed files with 74 additions and 24 deletions

View File

@ -541,6 +541,8 @@ function changeStatusHidden() {
// Document Ready // Document Ready
$(function() { $(function() {
showFiltersOnPageRefresh();
new ini(); new ini();
$('#main-wrap').on('click', '.delete', function() { $('#main-wrap').on('click', '.delete', function() {
api.modal($(this).attr('rel')); api.modal($(this).attr('rel'));
@ -590,3 +592,34 @@ $(function() {
formTip() formTip()
sidebarNav(); sidebarNav();
}); });
var showFiltersOnPageRefresh = function(){
var params = getUrlVars(),
paramfilter = params['new_filter[type]'];
// switch (paramfilter){
// case "role":
// paramfilter = "status";
// break;
// }
if( paramfilter ){
$( "#filter" ).addClass('open');
$( '#filter a[href="#collapse-' + paramfilter + '"]').parent().parent().addClass('active');
$( '#filter #collapse-' + paramfilter ).addClass('in');
}
}
var getUrlVars = function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes[i].split('=');
vars.push(decodeURIComponent(hash[0]));
vars[decodeURIComponent(hash[0])] = decodeURIComponent(hash[1]);
}
if(vars[0] == window.location.href){
vars =[];
}
return vars;
}

View File

@ -81,7 +81,7 @@ function customOpenSlide() {
} else { } else {
$('#pageslide form').prop('method', 'post') $('#pageslide form').prop('method', 'post')
}; };
_type == 'page' ? pageSetting(element.data('id'), _edit) : linkSetting(element.data('id'), _edit, pageslide); _type == 'page' ? pageSetting(element.data('id'), _edit, pageslide) : linkSetting(element.data('id'), _edit, pageslide);
} }
}); });
$iFrame.pageslide({ $iFrame.pageslide({
@ -135,7 +135,8 @@ function iFrameContent() {
iFrameFunction($iContents, $pc); iFrameFunction($iContents, $pc);
}); });
} }
function pageSetting(id, edit) {
function pageSetting(id, edit, ps) {
$pageModule = $('#pageslide #page_module_app_id'); $pageModule = $('#pageslide #page_module_app_id');
$pageF2E = $('#pageslide #page_app_frontend_url'); $pageF2E = $('#pageslide #page_app_frontend_url');
$pageDivF2E = $('#pageslide #front_url'); $pageDivF2E = $('#pageslide #front_url');
@ -183,23 +184,25 @@ function pageSetting(id, edit) {
if(val.category.length > 0) { if(val.category.length > 0) {
$.each(val.category, function(index, val) { $.each(val.category, function(index, val) {
var _arr = $.inArray($(this)[1], _selectData.module.category[1]); var _arr = $.inArray($(this)[1], _selectData.module.category);
$pageCategory.append('<label class="checkbox"><input type="checkbox" name="page[category][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>'); $pageCategory.append('<label class="checkbox"><input type="checkbox" name="page[category][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>');
if(!_selectData.module.category[0] && _arr !== -1) { if(_arr !== -1) {
$pageCategory.find('input[type="checkbox"]').eq(index).prop('checked', true); $pageCategory.find('input[type="checkbox"]').eq(index).prop('checked', true);
} }
_selectData.module.category[0] ? $pageCategory.siblings('.checkbox').children('.select_all').prop('checked', true) : ''; var $all = $pageCategory.siblings('.checkbox').children('.select_all')
_selectData.module.category.length > 1 && _selectData.module.category.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false);
}); });
$pageCategoryGroup.show(); $pageCategoryGroup.show();
} }
if(val.tags.length > 0) { if(val.tags.length > 0) {
$.each(val.tags, function(index, val) { $.each(val.tags, function(index, val) {
var _arr = $.inArray($(this)[1], _selectData.module.tags[1]); var _arr = $.inArray($(this)[1], _selectData.module.tags);
$pageTags.append('<label class="checkbox"><input type="checkbox" name="page[tag][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>'); $pageTags.append('<label class="checkbox"><input type="checkbox" name="page[tag][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>');
if(!_selectData.module.tags[0] && _arr !== -1) { if(_arr !== -1) {
$pageTags.find('input[type="checkbox"]').eq(index).prop('checked', true); $pageTags.find('input[type="checkbox"]').eq(index).prop('checked', true);
} }
_selectData.module.tags[0] ? $pageTags.siblings('.checkbox').children('.select_all').prop('checked', true) : ''; var $all = $pageTags.siblings('.checkbox').children('.select_all')
_selectData.module.tags.length > 1 && _selectData.module.tags.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false);
}); });
$pageTagsGroup.show(); $pageTagsGroup.show();
} }
@ -397,12 +400,13 @@ $(function() {
if(val.category.length > 0) { if(val.category.length > 0) {
$.each(val.category, function(index, val) { $.each(val.category, function(index, val) {
if(val !== 0) { if(val !== 0) {
var _arr = _select ? $.inArray($(this)[1], _select.category[1]) : ''; var _arr = _select ? $.inArray($(this)[1], _select.category) : '';
$pageCategory.append('<label class="checkbox"><input type="checkbox" name="page[category][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>'); $pageCategory.append('<label class="checkbox"><input type="checkbox" name="page[category][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>');
if(_select && !_select.category[0] && _arr !== -1) { if(_boolean && _arr !== -1) {
$pageCategory.find('input[type="checkbox"]').eq(index).prop('checked', true); $pageCategory.find('input[type="checkbox"]').eq(index).prop('checked', true);
} }
_select && _val == _select.main && _select.category[0] ? $pageCategory.siblings('.checkbox').children('.select_all').prop('checked', true) : ''; var $all = $pageCategory.siblings('.checkbox').children('.select_all');
_boolean && _val == _select.main && _select.category.length > 1 && _select.category.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false);
} }
}); });
$pageCategoryGroup.show(); $pageCategoryGroup.show();
@ -413,12 +417,13 @@ $(function() {
if(val.tags.length > 0) { if(val.tags.length > 0) {
$.each(val.tags, function(index, val) { $.each(val.tags, function(index, val) {
if(val !== 0) { if(val !== 0) {
var _arr = _select ? $.inArray($(this)[1], _select.tags[1]) : ''; var _arr = _select ? $.inArray($(this)[1], _select.tags) : '';
$pageTags.append('<label class="checkbox"><input type="checkbox" name="page[tag][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>'); $pageTags.append('<label class="checkbox"><input type="checkbox" name="page[tag][]" value="'+ $(this)[1] + '">'+ $(this)[0] +'</label>');
if(_select && !_select.tags[0] && _arr !== -1) { if(_boolean && _arr !== -1) {
$pageTags.find('input[type="checkbox"]').eq(index).prop('checked', true); $pageTags.find('input[type="checkbox"]').eq(index).prop('checked', true);
} }
_select && _val == _select.main && _select.tags[0] ? $pageTags.siblings('.checkbox').children('.select_all').prop('checked', true) : ''; var $all = $pageTags.siblings('.checkbox').children('.select_all');
_boolean && _val == _select.main && _select.tags.length > 1 && _select.tags.length == index + 1 ? $all.prop('checked', true) : $all.prop('checked', false);
} }
}); });
$pageTagsGroup.show(); $pageTagsGroup.show();
@ -451,12 +456,16 @@ $(function() {
$('#pageslide').on('change', '.checkbox-groups input', function(event) { $('#pageslide').on('change', '.checkbox-groups input', function(event) {
var $checked = $(this); var $checked = $(this);
if($checked.attr('type') == 'checkbox') { if($checked.attr('type') == 'checkbox') {
if($checked.hasClass('select_all') && $checked.prop('checked')) { if($checked.hasClass('select_all')) {
$checked.closest('.checkbox').siblings('.groups').find('input[type="checkbox"]').prop('checked', false); if($checked.prop('checked')) {
} else if($checked.prop('checked') && !$checked.hasClass('lang-enable')) { $checked.closest('.checkbox').siblings('.groups').find('input[type="checkbox"]').prop('checked', true);
$checked.closest('.groups').siblings('.checkbox').find('.select_all').prop('checked', false); } else {
} else { $checked.closest('.checkbox').siblings('.groups').find('input[type="checkbox"]').prop('checked', false);
}
} else if($checked.hasClass('lang-enable')) {
var checkboxes = $checked.closest('.groups').find('input[type="checkbox"]');
if($checked.prop('checked')) { if($checked.prop('checked')) {
$checked.closest('.active-link').addClass('active').siblings('active-link').removeClass('active').end().find('.active-mune').slideDown(300); $checked.closest('.active-link').addClass('active').siblings('active-link').removeClass('active').end().find('.active-mune').slideDown(300);
if(_status) { if(_status) {
@ -470,6 +479,14 @@ $(function() {
$(this).find('input:eq(0)').prop('checked', true); $(this).find('input:eq(0)').prop('checked', true);
}) })
} }
} else {
var _l = $checked.closest('.groups').find('input[type="checkbox"]').length,
_c = $checked.closest('.groups').find('input[type="checkbox"]:checked').length;
if(_l == _c) {
$checked.closest('.groups').siblings('.checkbox').find('.select_all').prop('checked', true)
} else {
$checked.closest('.groups').siblings('.checkbox').find('.select_all').prop('checked', false)
};
} }
return false; return false;
} else if($checked.attr('type') == 'radio' && !$(this).closest('div').hasClass('active-mune')) { } else if($checked.attr('type') == 'radio' && !$(this).closest('div').hasClass('active-mune')) {

View File

@ -60,8 +60,8 @@ class Admin::PagesController < Admin::ItemsController
m = {} m = {}
m["main"] = page.module_app_id.to_s m["main"] = page.module_app_id.to_s
m["sub"] = page.app_frontend_url m["sub"] = page.app_frontend_url
m["category"] = page.category.present? ? [0, page.category.map{|c| c.to_s}] : [1] m["category"] = page.category.present? ? page.category.map{|c| c.to_s} : []
m["tags"] = page.tag.present? ? [0, page.tag.map{|c| c.to_s}] : [1] m["tags"] = page.tag.present? ? page.tag.map{|c| c.to_s} : []
m["public"] = page.is_published ? 1 : 0 m["public"] = page.is_published ? 1 : 0
m["link"] = @site_valid_locales.inject([]) do |link, locale| m["link"] = @site_valid_locales.inject([]) do |link, locale|
link << [locale, (page.enabled_for && page.enabled_for.include?(locale)) ? 1 : 0, (page.menu_enabled_for && page.menu_enabled_for[locale].eql?('true')) ? 1 :0] link << [locale, (page.enabled_for && page.enabled_for.include?(locale)) ? 1 : 0, (page.menu_enabled_for && page.menu_enabled_for[locale].eql?('true')) ? 1 :0]

View File

@ -24,12 +24,12 @@
<ul class="nav nav-pills filter-nav pull-right"> <ul class="nav nav-pills filter-nav pull-right">
<li class="accordion-group"> <li class="accordion-group">
<div class="accordion-heading"> <div class="accordion-heading">
<a href="#collapse-status" data-toggle="collapse" data-parent="#filter" class="accordion-toggle">Roles</a> <a href="#collapse-role" data-toggle="collapse" data-parent="#filter" class="accordion-toggle">Roles</a>
</div> </div>
</li> </li>
</ul> </ul>
<div class="filter-group accordion-group"> <div class="filter-group accordion-group">
<div class="accordion-body collapse" id="collapse-status"> <div class="accordion-body collapse" id="collapse-role">
<%= render :partial => "filter"%> <%= render :partial => "filter"%>