diff options
Diffstat (limited to 'app/assets/javascripts/refinery/blog')
-rw-r--r-- | app/assets/javascripts/refinery/blog/backend.js | 115 | ||||
-rw-r--r-- | app/assets/javascripts/refinery/blog/frontend.js | 25 |
2 files changed, 140 insertions, 0 deletions
diff --git a/app/assets/javascripts/refinery/blog/backend.js b/app/assets/javascripts/refinery/blog/backend.js new file mode 100644 index 0000000..695cdb7 --- /dev/null +++ b/app/assets/javascripts/refinery/blog/backend.js @@ -0,0 +1,115 @@ +$(document).ready(function(){ + $('nav#actions.multilist > ul:not(.search_list) li a[href$="' + window.location.pathname + '"]') + .parent().addClass('selected'); + if($('nav#actions.multilist > ul:not(.search_list) li.selected').length == 0) { + $('nav#actions.multilist > ul:not(.search_list) li a:nth(1)').parent().addClass('selected'); + } + + $('nav#actions.multilist > ul:not(.search_list) li > a').each(function(i,a){ + if ($(this).data('dialog-title') == null) { + $(this).bind('click', function(){ + $(this).css('background-image', "url('/images/refinery/icons/ajax-loader.gif') !important"); + }); + } + }); + + $('ul.collapsible_menu').each(function(i, ul) { + (first_li = $(this).children('li:first')).after(div=$("<div></div>")); + + $("<span class='arrow'> </span>").appendTo(first_li) + + if (($(this).children('li.selected')).length == 0) { + div.hide(); + first_li.addClass("closed"); + } + $(this).children('li:not(:first)').appendTo(div); + + first_li.find('> a, > span.arrow').click(function(e){ + $(this).parent().toggleClass("closed"); + $(this).parent().toggleClass("open"); + + $(this).parent().next('div').animate({ + opacity: 'toggle' + , height: 'toggle' + }, 250, $.proxy(function(){ + $(this).css('background-image', null); + }, $(this)) + ); + e.preventDefault(); + }); + }); + + $('.success_icon, .failure_icon').bind('click', function(e) { + $.get($(this).attr('href'), $.proxy(function(data){ + $(this).css('background-image', null) + .removeClass('failure_icon').removeClass('success_icon') + .addClass(data.enabled ? 'success_icon' : 'failure_icon'); + }, $(this))); + e.preventDefault(); + }); + + + $(function() { + $('#page-tabs').tabs(); + $('#copy_body_link').click(function(event) { + // Find the WYMEditor that maps to the custom_teaser field + var teaserTextArea = $('#blog_post_custom_teaser')[0]; + var teaserEditor = null; + $.each(WYMeditor.INSTANCES, function(index, editor) { + if (editor._element[0] == teaserTextArea) { + teaserEditor = editor; + } + }); + + if (teaserEditor) { + teaserEditor.html($('#blog_post_body').attr('value')); + } + + event.preventDefault(); + }); + }); + + + function split( val ) { + return val.split( /,\s*/ ); + } + function extractLast( term ) { + return split( term ).pop(); + } + + page_options.init(false, '', '') + + $('<%= dom_id %>').bind( "keydown", function( event ) { + if ( event.keyCode === $.ui.keyCode.TAB && $( this ).data( "autocomplete" ).menu.active ) { + event.preventDefault() + } + }).autocomplete({ + source: function( request, response ) { + $.getJSON( "<%= url %>", { + term: extractLast( request.term ) + }, response ); + }, + search: function() { + // custom minLength + var term = extractLast( this.value ); + if ( term.length < 2 ) { + return false; + } + }, + focus: function() { + // prevent value inserted on focus + return false; + }, + select: function( event, ui ) { + var terms = split( this.value ); + // remove the current input + terms.pop(); + // add the selected item + terms.push( ui.item.value ); + // add placeholder to get the comma-and-space at the end + terms.push( "" ); + this.value = terms.join( ", " ); + return false; + } + }) +}); diff --git a/app/assets/javascripts/refinery/blog/frontend.js b/app/assets/javascripts/refinery/blog/frontend.js new file mode 100644 index 0000000..269f70f --- /dev/null +++ b/app/assets/javascripts/refinery/blog/frontend.js @@ -0,0 +1,25 @@ +$(document).ready(function(){ + $('#show_blog_post').height($('#show_blog_post').height()); + + $('#next_prev_article a:not(".home")').live('click', function(){ + url = this.href + ".js"; + $('#show_blog_post > *').fadeOut(); + $.ajax({ + url: url, + success: function(data) { + $('#show_blog_post').html(data); + new_height = 0; + $('#show_blog_post > *').each(function(){ + new_height += $(this).height() + }); + $('#show_blog_post').animate({ + height: new_height + }); + } + }); + $('html, body').animate({ + scrollTop: $('body').offset().top + }, 2000); + return false; + }) +})
\ No newline at end of file |