Automatically repositions the elements of the Facebook navigation bar as they were in the previous version of the social network: friends requests, messages and notifications on the left (next to the logo), the other ones on the right. Lets also add a short personalized text (eg. a nickname) in the navbar. Ability to change the background color of the navigation bar.
// ==UserScript==// @name Facebook Old NavBar by LaNouille974// @name:fr Ancienne barre de navigation de Facebook par LaNouille974// @description Automatically repositions the elements of the Facebook navigation bar as they were in the previous version of the social network: friends requests, messages and notifications on the left (next to the logo), the other ones on the right. Lets also add a short personalized text (eg. a nickname) in the navbar. Ability to change the background color of the navigation bar.// @description:fr Repositionne automatiquement les éléments de la barre de navigation de Facebook tels qu'ils étaient dans la version précédente du réseau social : invitations en ami, messages et notifications à gauche (à côté du logo), le reste à droite. Permet également d'ajouter un court texte personnalisé (ex: un pseudo) à la barre de navigation. Possibilité de changer la couleur de fond de la barre.// @namespace https://www.facebook.com// @include https://www.facebook.com/*// @version 1.3// @icon http://img15.hostingpics.net/pics/772325facebookoldnavbar11bylanouille974.png// @grant none// @require https://code.jquery.com/jquery-1.11.0.min.js// ==/UserScript==$.noConflict();jQuery( document ).ready(function($) {/*** Configuration ***/var defaultNickName = 'LaNouille974';var defaultNavBarColor = '';var defaultPic = 'http://img11.hostingpics.net/pics/962935runico.png';var colorpickerPic = 'http://img4.hostingpics.net/pics/387100colorpicker.png';var navBar = $('#blueBarNAXAnchor');var logo = navBar.find('h1:first')/**** End Configuration ***//*** Global vars ***/var colorChanged = false;/*** End Global vars ***/var originalNavRight = navBar.find('div._2gyk:first');//Cloner la navRightvar newNavRight = originalNavRight.clone();//Un peu de CSS pour les nouvelles navBarnewNavRight.css({'float': 'left','margin-left': logo.width() + 2 + 'px','margin-right': '10px','position': 'relative'});//Remettre les boutons permettant d'ouvrir les popups au premier plannewNavRight.find('a.jewelButton').css({'z-index': '100'});//Retirer les éléments indésirables de chaque navBarremoveNavElements(originalNavRight, 'old');removeNavElements(newNavRight, 'new');//Personnalisationvar li = $("<li/>");li.attr('id', 'thenoodle');li.attr('title', 'Cliquer pour changer le texte');li.addClass('navItem tinyman litestandNavItem').text(defaultNickName);li.prependTo(originalNavRight.children('ul:first'));$('li#thenoodle').css({'height': '25px','line-height': '25px','color': 'white','font-weight': 'bold','position': 'relative','left': '-25px','top': '-2px','background-image': "url('"+ defaultPic +"')",'background-repeat': 'no-repeat','background-size': '25px 25px','padding-left' : '32px','cursor': 'pointer','float': 'left'});//Création du colorPicker invisible$('<input/>').attr({ type: 'color', id: 'colorpicker', name: 'colorpicker'}).appendTo('body');$('#colorpicker').css({'position': 'absolute','top': -9999,'left': -9999,});//Ajouter bouton colorPickervar liPicker = $("<li/>");liPicker.attr('id', 'pickerOpenerLi');var divPicker = $("<div/>");divPicker.attr('id', 'pickerOpenerDiv');divPicker.appendTo(liPicker);$('#thenoodle').after(liPicker);$('#pickerOpenerLi').css({'position': 'relative','border-radius': '2px','cursor': 'pointer','width': '27px','height': '27px','float': 'left','top': '-3px','margin-right': '5px'});$('#pickerOpenerDiv').css({'background-image': "url('"+ colorpickerPic +"')",'background-repeat': 'no-repeat','background-size': '19px 19px','border-radius': '2px','width': '19px','height': '19px','position': 'relative','top': '4px','left': '4px'});liPicker.mouseenter(function(e){$(this).css('background', 'none repeat scroll 0 0 rgba(0, 0, 0, 0.1)');});liPicker.mouseleave(function(e){$(this).css('background', 'transparent');});//Ouvrir le colorPicker au clic$('#pickerOpenerLi').click(function(e) {$('#colorpicker').trigger('click');});$('#colorpicker').on('input', function() {changeColor($(this).val());});//Animation fadeIn/fadeOut perpétuelinfiniteFadeInOut($('li#thenoodle'), true);//Changer le pseudo à la volée$('li#thenoodle').click(function(){changeNickName($(this));});//Ajoute la nouvelle navBar à gauchenewNavRight.prependTo(logo.parent());//Modifier emplacements popup//Messages$("#u_0_5").parent().click(function() {//Fleche$('#u_0_5 .beeperNub').css({'right': '0','left': '35px'});//Popup$('#u_0_5').css({'right': '0','left': '-30px'});});//Friends requests$("#fbRequestsFlyout").parent().click(function() {//Fleche$('#fbRequestsFlyout .beeperNub').css({'left': '4px'});//Popup$("#fbRequestsFlyout").css({'left': '0',});});//Notifications$('#fbNotificationsFlyout').parent().click(function(){//Fleche$('#fbNotificationsFlyout .beeperNub').css({'right': '0','left': '4px'});//Popup$("#fbNotificationsFlyout").css({'right': 'auto',});});//Changer la couleur de la navBar au chargement si une couleur par défaut est définiechangeColor(defaultNavBarColor);/*$(document).on("DOMNodeInserted",function(evt){var target = $(evt.target);var parents = target.parents('#pagelet_timeline_recent');if (parents.length)console.log('node inserted in timeline');});*//*** FUNCTIONS ***///Change la couleur de la barrefunction changeColor(colorHex) {if (typeof colorHex === 'undefined' || colorHex == '')return;/*if (!colorChanged) {$('*').filter(function(i){return $(this).css("color") == $("<div style='color:#3b5998'/>").css("color");}).css("color", colorHex);colorChanged = true;}else {var currentNavBarColor = navBar.css('background-color');$('*').filter(function(i){return $(this).css("color") == currentNavBarColor;}).css("color", colorHex);}*/navBar.css({'background-color': colorHex,'background-image' : 'none'});}//FadeIn puis fadeOut en boucle de l'élément passé en paramètrefunction infiniteFadeInOut (elem, fadeOut) {var targetOpacity = fadeOut ? 0.5 : 1;var duration = fadeOut ? 2000 : 500;fadeOut = !fadeOut;elem.animate({opacity: targetOpacity}, duration, 'swing', function() {infiniteFadeInOut($(this), fadeOut);});}//Retire les li indésirables de la navBar passé en param//Type = old ou Type = newfunction removeNavElements(navBar, type) {var elementsToRemove = [];if (type == 'new')elementsToRemove = [0, 1, 4, 5, 6];elseelementsToRemove = [2, 3];navBar.children('ul:first').children('li').each(function(i) {//console.log(elementsToRemove);if ($.inArray(i, elementsToRemove) !== -1) {$(this).remove();//console.log(i);}});}function changeNickName(domElem) {var precNickName = domElem.text();var newNick = '';do {newNick = prompt('Nouveau texte (12 caractères max, taper "!q" pour quitter) :');if (newNick === null || newNick == '!q') break;else if (newNick.length > 12)alert('Nouveau texte trop long ! 12 caractères max. (' + newNick.length + ' saisis)');} while (newNick.length > 12 || newNick == '')console.log(newNick);if (newNick == null ) {if (precNickName == '')newNick = defaultNickName;elsenewNick = precNickName;}else if(newNick == '!q') newNick = precNickName;domElem.text(newNick);}});