engine/public/javascripts/admin/pages.js

99 lines
3.1 KiB
JavaScript

$(document).ready(function() {
// open / close folder
if (typeof $.fn.toggleMe != 'undefined')
$('#pages-list ul.folder img.toggler').toggleMe();
// sortable folder items
$('#pages-list ul.folder').sortable({
'handle': 'em',
'axis': 'y',
'update': function(event, ui) {
var params = $(this).sortable('serialize', { 'key': 'children[]' });
params += '&_method=put';
params += '&' + $('meta[name=csrf-param]').attr('content') + '=' + $('meta[name=csrf-token]').attr('content');
$.post($(this).attr('data-url'), params, function(data) {
var error = typeof(data.error) != 'undefined';
$.growl((error ? 'error' : 'success'), (error ? data.error : data.notice));
}, 'json');
}
});
// templatized feature
$.subscribe('toggle.page_templatized.checked', function(event, data) {
$('#page_slug_input').hide();
$('#page_redirect').parent('li').hide();
$('#page_listed').parent('li').hide();
$('#page_content_type_id_input').show();
}, []);
$.subscribe('toggle.page_templatized.unchecked', function(event, data) {
$('#page_slug_input').show();
$('#page_redirect').parent('li').show();
$('#page_listed').parent('li').show();
$('#page_slug').val(makeSlug($('#page_title').val())).addClass('touched');
$('#page_content_type_id_input').hide();
}, []);
// redirect feature
var advancedSettingsFieldset = $('.formtastic.page fieldset#advanced-options');
$.subscribe('toggle.page_redirect.checked', function(event, data) {
$('#page_templatized').parent('li').hide();
$('#page_cache_strategy_input').hide();
$('#page_redirect_url_input').show();
advancedSettingsFieldset.trigger('refresh');
}, []);
$.subscribe('toggle.page_redirect.unchecked', function(event, data) {
$('#page_templatized').parent('li').show();
$('#page_cache_strategy_input').show();
$('#page_redirect_url_input').hide();
advancedSettingsFieldset.trigger('refresh');
}, []);
// automatic slug from page title
$('#page_title').keypress(function() {
var input = $(this);
var slug = $('#page_slug');
if (!slug.hasClass('filled')) {
setTimeout(function() {
slug.val(makeSlug(input.val(), '-')).addClass('touched');
}, 50);
}
});
$('#page_slug').keypress(function() {
$(this).addClass('filled').addClass('touched');
});
var lookForSlugAndUrl = function() {
params = 'parent_id=' + $('#page_parent_id').val() + "&slug=" + $('#page_slug').val();
$.get($('#page_slug').attr('data-url'), params, function(data) {
$('#page_slug_input .inline-hints').html(data.url).effect('highlight');
}, 'json');
};
$('#page_parent_id').change(lookForSlugAndUrl);
setInterval(function() {
var slug = $('#page_slug');
if (slug.hasClass('touched')) {
slug.removeClass('touched');
lookForSlugAndUrl();
}
}, 2000);
if (typeof $.fn.imagepicker != 'undefined')
$('a#image-picker-link').imagepicker({
insertFn: function(link) {
return "{{ '/" + link.attr('data-local-path') + "' | theme_image_url }}";
}
});
});