diff --git a/src/noosfero-spb/noosfero-spb-theme/theme.js b/src/noosfero-spb/noosfero-spb-theme/theme.js index 5ab2919..30afbd6 100644 --- a/src/noosfero-spb/noosfero-spb-theme/theme.js +++ b/src/noosfero-spb/noosfero-spb-theme/theme.js @@ -1,98 +1,141 @@ -function alignBlocks(containerIndex){ - //Needed to save the original reference to jQuery(this) - jt = jQuery(this); - longerBlock = 0; - jt.find(".block-outer").each(function () { - if(jQuery(this).height() > longerBlock) - longerBlock = jQuery(this).height(); - }); +/* globals jQuery */ + +// Theme javascript namespace +var SPBNoosferoTheme = {}; + +SPBNoosferoTheme.OrganizationRatings = (function($) { + + function set_use_report_content() { + $('.profile-homepage .organization-average-rating-container .rate-this-organization a').html('Avalie este software'); + $('.make-report-block .make-report-container .button-bar a span').html('Avalie este software'); + $('.star-rate-data .star-rate-form.rating-cooldown .button-bar a span').html('Avalie este software'); + $('.make-report-block .make-report-container .make-report-message').html('Relate sua experiência ou do órgão/empresa com relação ao software.'); + $('.ratings-list .see-more a.icon-arrow-right-p').html('veja todos os relatos'); + $('.main-content .star-rate-data .star-rate-form .star-comment-container .button-bar input').attr('value', 'Enviar'); + $('.main-content .star-rate-data .star-rate-form .star-rate-text').html('Avalie este software'); + $('.main-content .star-rate-data .star-rate-form .star-comment-container .formlabel').html('Depoimento sobre o software'); + $('.star-rate-form .star-comment-container .comments-display-fields span#comments-additional-information').html('Dados adicionais (órgãos e empresas)'); + $('.star-rate-form .star-comment-container .comments-software-extra-fields #input_institution_comments label').html('Nome do órgão ou empresa'); + $('.star-rate-form .star-comment-container .comments-software-extra-fields .comments-software-people-benefited label').html('Número de beneficiados'); + $('.star-rate-form .star-comment-container .comments-software-extra-fields .comments-software-saved-values label').html('Recursos economizados'); + } + + function set_tooltip_content() { + $('.star-tooltip').html("?"); + } - jt.find("#block-48504 .block-inner-2").height(492); - jt.find("#block-55304 .block-inner-2").height(378); - - //Aligns the blocks in the most common situations - jt.find(".block-outer").height(longerBlock); - //Only used for blocks with video, since it uses the size of the iframe - if(jt.find("iframe").length > 0){ - jt.find(".block-inner-1 .block-inner-2").each(function (idx) { - if(idx==2){ - jQuery(this).height(jt.find("iframe").height()); - } - }); + function animateExtraFields(additional_fields, arrow) { + var innerHeight = additional_fields[0].offsetHeight; + + if(additional_fields.height() !== 0) { + arrow.attr('class', "comments-arrow-down"); + additional_fields.animate({height: 0}); + } else { + arrow.attr('class', "comments-arrow-up"); + additional_fields.animate({height: additional_fields.get(0).scrollHeight}, 1000 ); } -} -(function($) { - // Run code - if($.cookie("high_contrast") === 'true'){ - $( "body" ).toggleClass( "contraste" ); - } - $( "#siteaction-contraste a" ).click(function() { - $( "body" ).toggleClass( "contraste" ); - if($('body').hasClass('contraste')){ - $.cookie('high_contrast', 'true', {path: '/'}); - } else { - $.cookie('high_contrast', null, { path: '/' }); - } - }); + // Fix for the arrow change on modal display to block, killing the entire page + $("#institution_modal").css({'display':'none'}); + } - $( ".profile-image" ).prepend( "" ); - //insere a mensagem no bloco de trilhas na página inicial// - $( ".action-home-index #content .community-track-plugin_track-card-list-block .track_list" ).prepend( "Construa seu caminho de participação na elaboração de políticas públicas..." ); - //insere a mensagem no bloco de comunidades na página inicial// - $( ".action-home-index #content .communities-block .block-inner-2>div" ).prepend( "Participe dos dialogos entre governo e sociedade em comunidades temáticas..." ); - $( ".action-home-index #content .communities-block .block-inner-2>div.block-footer-content .msg_block" ).remove(); - $('.container-block-plugin_container-block').each(alignBlocks); + function set_arrow_direction() { + var additional_data_bar = $('.comments-display-fields'); - $('#block-48500 > .block-inner-1 > .block-inner-2').append('
'); + additional_data_bar.on('click', function() { + var arrow = additional_data_bar.find('span[class*="comments-arrow"]'); + var additional_fields = $('.comments-software-extra-fields'); + + if (additional_fields) { + animateExtraFields(additional_fields, arrow); + } + }); + } + function initialize() { + set_use_report_content(); + set_tooltip_content(); + set_arrow_direction(); + } -// Foco no botao de busca -$('#link-buscar').click(function(e) { - e.defaultPrevented(); - window.location.hash = '#portal-searchbox'; - $('.searchField').focus() -}) + return { + init: initialize + }; -})(jQuery); +}) (jQuery); -// Efeito Fade nos box de softwares +SPBNoosferoTheme.NoosferoUserMessages = (function($) { + // Places some user mensagens on noosfero + function user_messages_additions() { + //insere a mensagem no bloco de trilhas na página inicial// + $(".action-home-index #content .community-track-plugin_track-card-list-block .track_list").prepend("Construa seu caminho de participação na elaboração de políticas públicas..."); + //insere a mensagem no bloco de comunidades na página inicial// + $(".action-home-index #content .communities-block .block-inner-2>div").prepend("Participe dos dialogos entre governo e sociedade em comunidades temáticas..."); + $(".action-home-index #content .communities-block .block-inner-2>div.block-footer-content .msg_block").remove(); -(function($){ - "use strict";// Make javascript less intolerant to errors + $('#block-48500 > .block-inner-1 > .block-inner-2').append(' '); + } - var TRANSITION_TIME = 250;// milliseconds + function initialize() { + user_messages_additions(); + } - function show_finality() { - var finality = $(this).children(".software-block-finality"); + return { + init: initialize + }; - //finality.stop().fadeTo(TRANSITION_TIME,1); - finality.stop().fadeTo('fast', 1); - //finality.stop().animate({"top" : "0%"}, TRANSITION_TIME); +}) (jQuery); + + +// Fade effect on software blocks in the portal homepage +SPBNoosferoTheme.HighlightedSoftwaresBlock = (function($) { + "use strict"; + + function show_finality(evt) { + var $finality = $(this).children(".software-block-finality"); + + $finality.stop().fadeTo('fast', 1); } + function hide_finality() { - var finality = $(this).children(".software-block-finality"); + var $finality = $(this).children(".software-block-finality"); - //finality.stop().fadeTo(TRANSITION_TIME,0); - finality.stop().fadeTo('fast', 0); - //finality.stop().animate({"top" : "100%"}, TRANSITION_TIME); + $finality.stop().fadeTo('fast', 0); } - function move_article_buttons(){ - var article_actions = $('#article-actions').clone(); - var report = $('.report-abuse-action').remove(); - var suggest = $('.icon-suggest').remove(); + function set_events(){ + // Fade css + var $softwares_finality_blocks = $('.software-block-finality'); + $softwares_finality_blocks.css({'opacity':0, 'top':0}); - $(article_actions).find('.icon-edit, .icon-new, .icon-delete, .icon-locale').remove(); - $('.article-body').append(article_actions); + // End Fade CSS + var $softwares_blocks = $('.software-block'); + $softwares_blocks.mouseover(show_finality); + $softwares_blocks.mouseout(hide_finality); + } + + + function initialize() { + if ($("#box-1 .softwares-block").length === 1) { + set_events(); + } } + return { + init: initialize + }; +}) (jQuery); + + +SPBNoosferoTheme.NoosferoHTMLAditions = (function($) { + "use strict"; + function add_link_to_article_div(){ var list = $('.display-content-block').find('li'); @@ -108,27 +151,120 @@ $('#link-buscar').click(function(e) { }); } + function insert_notice_div(){ var notice = $('.display-content-block').find('li'); - notice.each(function(){ - var $set = $(this).children(); - for(var i=1, len = $set.length; i < len; i+=5){ + + notice.each(function() { + var i, len, $set = $(this).children(); + + for(i=1, len = $set.length; i < len; i+=5){ $set.slice(i, i+5).wrapAll(''); } - for(var i=2, len = $set.length; i < len; i+=3){ + + for(i=2, len = $set.length; i < len; i+=3){ $set.slice(i, i+3).wrapAll(''); } - //$('').wrap($(this).find( '.image', '.title', '.lead', '.read_more')); }); + } + + function add_tooltips(){ + $('#content span[title]').attr("data-toggle","tooltip"); + + $('[data-toggle="tooltip"]').tooltip(); } + + function add_popovers() { + var span = $('span[data-toggle="popover"]'); + var place = span.attr("data-placement"); + var elementClass = span.attr("data-class"); + + var popover = span.popover({ + html:true, + placement: place, + content: function() { + return $(this).next().html(); + } + }) + .data('bs.popover'); + + if(popover) { + popover.tip() + .addClass(elementClass); + $('a.toggle-popover').on("click",function() { + span.trigger("click"); + }); + } + } + + function move_breadcrumbs() { + $('.breadcrumbs-plugin_content-breadcrumbs-block').prependTo('#wrap-2'); + $(' ').insertBefore($('.breadcrumbs-plugin_content-breadcrumbs-block .block-inner-2').children().first()); + } + + // temporary solution for the suspension_point in some buttons + function remove_suspension_points_in_buttons() { + $(".template-kind a span:contains('...')").each(function(index, element) { + element.innerHTML = element.innerHTML.replace(/(\...)/, ""); + }); + } + + // temporary solution for the text in send_email buttons + function replace_send_email_button_text() { + $('.action-profile-members .page-members-header .icon-menu-mail').html('Contatar administradores'); + } + + + // Put the focus on the search form when user click on the "go to search link" + function search_link_apply_focus_to_its_form() { + $('#link-buscar').click(function(e) { + e.preventDefault(); + $('.searchField').focus(); + }); + } + + + function move_article_buttons(){ + var article_actions = $('#article-actions').clone(); + var report = $('.report-abuse-action').remove(); + var suggest = $('.icon-suggest').remove(); + + $(article_actions).find('.icon-edit, .icon-new, .icon-delete, .icon-locale').remove(); + $('.article-body').append(article_actions); + } + + + function initialize() { + add_link_to_article_div(); + insert_notice_div(); + add_tooltips(); + add_popovers(); + move_breadcrumbs(); + remove_suspension_points_in_buttons(); + replace_send_email_button_text(); + search_link_apply_focus_to_its_form(); + move_article_buttons(); + } + + return { + init: initialize + }; + +}) (jQuery); + + +SPBNoosferoTheme.SoftwareCatalog = (function($) { + "use strict"; + //toggle filter options in catalog page function setFilterCategoriesOptionClass() { var filterOptions = $("#filter-categories-option"); filterOptions.addClass("animated slideInDown"); } + function toggleFilterOptions(){ var filterOptions = $("#filter-categories-option"); var filterHeight = filterOptions[0].scrollHeight; @@ -152,34 +288,28 @@ $('#link-buscar').click(function(e) { } } - function setEvents(){ - // Fade css - $('.software-block-finality').css({'opacity':0, 'top':0}); - // End Fade CSS - var software_block = $('.software-block'); - software_block.mouseover(show_finality); - software_block.mouseout(hide_finality); + function setEvents() { var showOptions = $("#filter-option-catalog-software"); var hideOptions = $("#filter-option-catalog-close"); + showOptions.click(toggleFilterOptions); hideOptions.click(toggleFilterOptions); } - /* Finds all uploaded files from manuals page and sets its names on the right format */ - function set_uploaded_files_names() { - try { - var article = document.getElementById('article'); - var folderList = article.getElementsByClassName('folder-content')[0]; - var folderItens = folderList.getElementsByClassName('item-description'); + function initialize() { + setFilterCategoriesOptionClass(); + setEvents(); + } - for(var i = 0, var loop_length = folderItens.length; i < loop_length; i++) { - split_file_extension(folderItens[i].getElementsByTagName('a')[0]); - } - } catch(e) { + return { + init: initialize + }; +}) (jQuery); - } - } + +SPBNoosferoTheme.NoosferoFoldersContent = (function($) { + "use strict"; /* Splits a file name from its extension. Example: example.pdf becomes example - PDF */ function split_file_extension(element) { @@ -191,113 +321,46 @@ $('#link-buscar').click(function(e) { } } - function set_tooltip_content() { - $('.star-tooltip').html("?"); - } - - function set_arrow_direction() { - var additional_data_bar = $('.comments-display-fields'); - additional_data_bar.on('click', function() { - var arrow = additional_data_bar.find('span[class*="comments-arrow"]'); - var additional_fields = $('.comments-software-extra-fields'); + /* Finds all uploaded files from manuals page and sets its names on the right format */ + function set_uploaded_files_names() { + try { + var article = document.getElementById('article'); + var folderList = article.getElementsByClassName('folder-content')[0]; + var folderItens = folderList.getElementsByClassName('item-description'); - if (additional_fields) { - animateExtraFields(additional_fields, arrow); + for(var i = 0, loop_length = folderItens.length; i < loop_length; i++) { + split_file_extension(folderItens[i].getElementsByTagName('a')[0]); } - }); - } - - - function animateExtraFields(additional_fields, arrow) { - var innerHeight = additional_fields[0].offsetHeight; + } catch(e) { - if(additional_fields.height() !== 0) { - arrow.attr('class', "comments-arrow-down"); - additional_fields.animate({height: 0}); - } else { - arrow.attr('class', "comments-arrow-up"); - additional_fields.animate({height: additional_fields.get(0).scrollHeight}, 1000 ); } - - // Fix for the arrow change on modal display to block, killing the entire page - $("#institution_modal").css({'display':'none'}); } - function set_use_report_content() { - $('.profile-homepage .organization-average-rating-container .rate-this-organization a').html('Avalie este software'); - $('.make-report-block .make-report-container .button-bar a span').html('Avalie este software'); - $('.star-rate-data .star-rate-form.rating-cooldown .button-bar a span').html('Avalie este software'); - $('.make-report-block .make-report-container .make-report-message').html('Relate sua experiência ou do órgão/empresa com relação ao software.'); - $('.ratings-list .see-more a.icon-arrow-right-p').html('veja todos os relatos'); - $('.main-content .star-rate-data .star-rate-form .star-comment-container .button-bar input').attr('value', 'Enviar'); - $('.main-content .star-rate-data .star-rate-form .star-rate-text').html('Avalie este software'); - $('.main-content .star-rate-data .star-rate-form .star-comment-container .formlabel').html('Depoimento sobre o software'); - $('.star-rate-form .star-comment-container .comments-display-fields span#comments-additional-information').html('Dados adicionais (órgãos e empresas)'); - $('.star-rate-form .star-comment-container .comments-software-extra-fields #input_institution_comments label').html('Nome do órgão ou empresa'); - $('.star-rate-form .star-comment-container .comments-software-extra-fields .comments-software-people-benefited label').html('Número de beneficiados'); - $('.star-rate-form .star-comment-container .comments-software-extra-fields .comments-software-saved-values label').html('Recursos economizados'); + function initialize() { + set_uploaded_files_names(); } - function add_tooltips(){ - $('#content span[title]').attr("data-toggle","tooltip"); - $('[data-toggle="tooltip"]').tooltip(); - } - - function add_popovers() { - var span = $('span[data-toggle="popover"]'); - var place = span.attr("data-placement"); - var elementClass = span.attr("data-class"); - if(span){ - var popover = span.popover({ - html:true, - placement: place, - content: function() { - return $(this).next().html(); - } - }) - .data('bs.popover'); - } - if(popover) { - popover.tip() - .addClass(elementClass); - $('a.toggle-popover').on("click",function() { - span.trigger("click"); - }); - } - } + return { + init: initialize + }; - function move_breadcrumbs() { - $('.breadcrumbs-plugin_content-breadcrumbs-block').prependTo('#wrap-2'); - $(' ').insertBefore($('.breadcrumbs-plugin_content-breadcrumbs-block .block-inner-2').children().first()); - } +}) (jQuery); - // temporary solution for the suspension_point in some buttons - function remove_suspension_points_in_buttons() { - $(".template-kind a span:contains('...')").each(function(index, element) { - element.innerHTML = element.innerHTML.replace(/(\...)/, ""); - }); - } - // temporary solution for the text in send_email buttons - function replace_send_email_button_text() { - $('.action-profile-members .page-members-header .icon-menu-mail').html('Contatar administradores'); - } +// Theme javascript bootstrap +(function(jQuery) { + "use strict"; - $(document).ready(function(){ - add_tooltips(); - add_popovers(); - move_article_buttons(); - move_breadcrumbs(); - insert_notice_div(); - set_uploaded_files_names(); - set_tooltip_content(); - set_arrow_direction(); - set_use_report_content(); - setEvents(); - remove_suspension_points_in_buttons(); - replace_send_email_button_text(); - }); -})(jQuery); + // Initialize everything + $(document).ready(function() { + SPBNoosferoTheme.OrganizationRatings.init(); + SPBNoosferoTheme.NoosferoUserMessages.init(); + SPBNoosferoTheme.HighlightedSoftwaresBlock.init(); + SPBNoosferoTheme.NoosferoHTMLAditions.init(); + SPBNoosferoTheme.SoftwareCatalog.init(); + SPBNoosferoTheme.NoosferoFoldersContent.init(); + }); +}) (jQuery); -- libgit2 0.21.2