// ==UserScript==
// @name GMail Compact-View with Buttons and Search
// @name:pl GMail - kompaktowy widok z przyciskami i paskiem wyszukiwania
// @author Jimi
// @namespace https://greasyfork.org/pl/users/174756-jimi
// @include /^https?:\/\/mail\.google\.com(?:.*)$/
// @version 1.04beta
// @description Add buttons to hide sidebar and topbar, inbox and compose. Some css changes
// @description:pl Dodaje przyciski do ukrycia paska bocznego i górnego, skrzynki odbiorczej oraz nowej wiadomości. Trochę zmian w css
// @grant none
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==
$(window).on("load", function() {
//config
var myBarRight = 450; //try to change the right margin of div with buttons
var hideBarsOnStart = true;
var cssAdd = true;
var cssFont = "Neuton, monospace"; // eg. Domina, Exo 2, Play, Neuton...
//config - tooltips
var sideBarText = "Show/hide SideBar"; //"Pokaż/ukryj pasek boczny"
var topBarText = "Sow/hide TopBar"; //"Pokaż/ukryj pasek górny"
var inboxButtonText = "INBOX";
var composeButtonText = "Compose"; //"Napisz wiadomość"
//end of config :)
var sideBarHidden = hideBarsOnStart;
var composeBtn = document.querySelector('.T-I-KE');
var inboxBtn = document.querySelector('.J-Ke.n0');
$('<div id="my-Bar" style="position: absolute; left: auto; right: '+myBarRight+'px; top: 15px; z-index: 6;"></div>').prependTo($("body:not(.xE.Su)"));
$('<div id="gm-sideBar" class="T-I J-J5-Ji lR T-I-ax7 T-I-Js-IF ar7" role="button" tabindex="0" aria-haspopup="false" aria-expanded="false" style="-moz-user-select: none;" data-tooltip="'+sideBarText+'"><div class="bjy T-I-J3 J-J5-Ji" style="background: url(//ssl.gstatic.com/ui/v1/icons/mail/sprite_black2.png) -21px -84px no-repeat; width: 21px; height: 21px; transform: rotate(-90deg);"></div></div>').appendTo('#my-Bar');
$('<div id="gm-topBar" class="T-I J-J5-Ji nN T-I-ax7 T-I-Js-Gs T-I-Js-IF ar7" role="button" tabindex="0" aria-haspopup="false" aria-expanded="false" style="-moz-user-select: none;" data-tooltip="'+topBarText+'"><div class="bjy T-I-J3 J-J5-Ji" style="background: url(//ssl.gstatic.com/ui/v1/icons/mail/sprite_black2.png) -21px -84px no-repeat; width: 21px; height: 21px;"></div></div>').insertAfter("#gm-sideBar");
$('<div id="gm-myinbox" class="T-I J-J5-Ji nX T-I-ax7 T-I-Js-Gs T-I-Js-IF ar7" role="button" tabindex="0" aria-haspopup="false" aria-expanded="false" style="user-select: none; background: lightgreen;" data-tooltip="'+inboxButtonText+'"><div class="bjy T-I-J3 J-J5-Ji" style="background: url(//ssl.gstatic.com/ui/v1/icons/mail/sprite_black2.png) -84px -41px no-repeat; width: 21px; height: 21px;"></div></div>').insertAfter('#gm-topBar');
$('<div id="gm-compo" class="T-I J-J5-Ji m9 T-I-ax7 T-I-Js-Gs ar7" role="button" tabindex="0" aria-haspopup="false" aria-expanded="false" gh="cm" style="user-select: none; color: white; background: -webkit-linear-gradient(top,#4387fd,#4683ea); background: linear-gradient(top,#4387fd,#4683ea);" data-tooltip="'+composeButtonText+'"><div class="bjy T-I-J3 J-J5-Ji" style="background: url(//ssl.gstatic.com/ui/v1/icons/mail/skinnable/skinnable_ltr_light_1x.png) -56px -115px no-repeat; width: 21px; height: 21px; -webkit-filter: invert(100%);"></div></div>').insertAfter('#gm-myinbox');
$('#gm-myinbox').hover(function() {$(this).addClass("T-I-JW");}, function() {$(this).removeClass("T-I-JW");});
$('#gm-sideBar').hover(function() {$(this).addClass("T-I-JW");}, function() {$(this).removeClass("T-I-JW");});
$('#gm-topBar').hover(function() {$(this).addClass("T-I-JW");}, function() {$(this).removeClass("T-I-JW");});
$('#gm-compo').hover(function() {$(this).addClass("T-I-JW");}, function() {$(this).removeClass("T-I-JW");});
$("#my-Bar>.T-I").css("padding", "0 0px");
$("#gbqfqw").css("height", "29px");
$("#gbqfb").css("height", "29px");
var gmMainView = $('.nH.bkK.nn'), gmMainViewWidth = $('.nH.bkK.nn').width(), sideBar = $(".nH.oy8Mbf.nn.aeN"), sideBar2 = $(".Ls77Lb.aZ6"), sideBarWidth = sideBar.width();
var topBar = $(".nH.w-asV.aiw"), div1 = $('.nH.age.apP.aZ6.apk.nn'), div2 = $('.nH.aNW.apk.nn'), div3 = $('.nH.nn .apj');
var he1 = $('[role=banner]'), df1 = $("#gb").children("div:first-child").children("div:nth-child(1)"), db1 = $("#gb").children("div:first-child").children("div:nth-child(2)");
var height1 = he1.height();
var se1 = $('#gbq2'), spad1 = se1.css("padding-top"), swidth1 = se1.css("width");
var se3 = $("#gb").children("div:first-child").children("div:nth-child(3)"), seh3 = se3.css("height"), sew3 = se3.css("width");
var tbheight = topBar.height();
sideBar.css("transition-property", "width");sideBar.css("transition-duration", "0.5s");
gmMainView.css("transition-property", "width");gmMainView.css("transition-duration", "0.5s");
he1.css("transition-property", "height");he1.css("transition-duration", "0.5s");
se3.css("transition-property", "left");se3.css("transition-duration", "0.5s");
db1.css("transition-property", "height");db1.css("transition-duration", "0.5s");
function setSearchLeft () {
se3.css("height", "0px").css("left", "calc("+$("#my-Bar").css("left")+" - 16px"+" - 200px - "+db1.width()+"px)").css("width", "0");
}
function checkIcons () {
//mark as read
$("[act=1]").find(".Bn").html('<div class="T-I-J3 J-J5-Ji" style="background: transparent url(//ssl.gstatic.com/mail/sprites/general_black-2eb471de5e5ea7371fa18ebc5339694d.png) 0px 291px; width: 22px; height: 21px;" data-tooltip="Oznacz jako przeczytane"></div>');
//delete
$("[act=10]").css("background-color", "red");
//archiv
$("[act=7]").css("background-color", "yellow");
//del etiquette
$("[act=13]").find(".Bn").html('<div class="T-I-J3 J-J5-Ji" style="background: transparent url(//ssl.gstatic.com/mail/sprites/general_black-2eb471de5e5ea7371fa18ebc5339694d.png) 0px 267px; width: 22px; height: 21px;"></div><div class="T-I-J3 J-J5-Ji" style="background: transparent url(//ssl.gstatic.com/mail/sprites/general_black-2eb471de5e5ea7371fa18ebc5339694d.png) 0px 220px; width: 22px; height: 21px;"></div>');
//
}
function winRes () {
if(sideBar2.css("display") == "none") {
//gmMainView.css("width", "100%");
gmMainView.width("calc(100% - 25px");
//gmMainViewWidth = gmMainView.width();
} else {
sideBarWidth = sideBar.width();
gmMainView.css("width", "calc(100% - "+sideBarWidth+"px)");
gmMainViewWidth = gmMainView.width();
}
if (he1.css("height") == "0px") {
se3.css("left", "calc("+$("#my-Bar").css("left")+" - 16px"+" - 200px - "+db1.width()+"px)");
}
}
function topBarHide () {
topBar.css("margin-bottom", "0").css("width", "0");
$("#my-Bar").css("top", "4px");
df1.css("display", "none");
db1.css("height", "0");
he1.css("height", "0");
se1.css("padding-top", "4px");
setSearchLeft();
se3l = se3.css("left");
$('.b8.UC > .J-J5-Ji').css("top", "47px");
div1.height(div1.outerHeight()+tbheight);
div2.height(div2.outerHeight()+tbheight);
div3.height(div3.outerHeight()+tbheight);
checkIcons();
}
function topBarShow () {
topBar.css("margin-bottom", "5px").css("width", "100%");
$("#my-Bar").css("top", "15px");
df1.css("display", "flex");
db1.css("height", height1);
he1.css("height", height1);
se1.css("padding-top", spad1);
se3.css("height", seh3).css("left", "0").css("width", sew3);
se3l = se3.css("left");
$('.b8.UC > .J-J5-Ji').css("top", "0");
div1.height(div1.outerHeight()-tbheight);
div2.height(div2.outerHeight()-tbheight);
div3.height(div3.outerHeight()-tbheight);
}
function sideBarHide () {
sideBar.css("width", "25px");
sideBar2.css("display", "none");
gmMainView.width("calc(100% - 25px)");
checkIcons();
}
function sideBarShow () {
sideBar.css("width", sideBarWidth);
sideBar2.css("display", "block");
gmMainView.css("width", "calc(100% - "+sideBarWidth+"px)");
gmMainViewWidth = gmMainView.width();
$(".wT").css("width", "auto");
}
$(".G-atb").css("padding", "0 0 4px 0");
$("#gb").children("div:first-child").css("height", "0");
$('.nH.bkL > .no').css("width", "100%");
$("#gm-myinbox").click(function() {
inboxBtn.click();
});
$("#gm-compo").click(function() {
var mousedownEvent = new MouseEvent('mousedown');
composeBtn.dispatchEvent(mousedownEvent);
var mouseupEvent = new MouseEvent('mouseup');
composeBtn.dispatchEvent(mouseupEvent);
});
$("#gbq").focusin(function() {
if (he1.css("height") == "0px") {
se3.css("width", sew3);
se3.css("left", "calc("+$("#my-Bar").css("left")+" - 16px"+" - "+se3.css("width")+")");
$(".gstl_50.gssb_c").css("left", se3.css("left"));
}
});
$("#gbq").focusout(function() {
if (he1.css("height") == "0px" && $(".ZF-Av").css("visibility") == "hidden") {
se3.css("width", "0");
se3.css("left", "calc("+$("#my-Bar").css("left")+" - 16px"+" - 200px)");
$(".gstl_50.gssb_c").css("left", se3.css("left"));
}
});
$(".aoq").click(function () {
if (he1.css("height") == "0px") {
se3.css("width", sew3);
se3.css("left", "calc("+$("#my-Bar").css("left")+" - 16px"+" - "+se3.css("width")+")");
$(".gstl_50.gssb_c").css("left", se3.css("left"));
}
});
$(document).on("click", "#gm-sideBar", function() {
if(sideBar2.css("display") == "none") {sideBarShow(); sideBarHidden = false;} else {sideBarHide(); sideBarHidden = true;}
});
$(document).on("click", "#gm-topBar", function() {
if(he1.css("height") == "0px") {topBarShow();} else {topBarHide();}
});
$(document).on("mouseover", ".nH.oy8Mbf.nn.aeN", function() {
if (sideBarHidden) {sideBarShow();}
});
$(document).on("mouseout", ".nH.oy8Mbf.nn.aeN", function() {
if (sideBarHidden) {sideBarHide();}
});
$(".l2.ov").css("padding-bottom", "0px");
if (cssAdd) {
checkIcons();
var styles = 'body, td, input, .ii, .Ak, .ao5, .LW-avf, table.message tbody tr td font {font: normal 14px '+cssFont+' !important; font-size: 14px !important; font-family: '+cssFont+' !important;}';
styles = styles + '.zE {background: lightblue;} .TK span{font: normal 14px arial !important;} .xY {padding-top: 0 !important; padding-bottom: 0 !important;} .Wg {padding-top: 0 !important;}';
styles = styles + ' .aps {background: lightgreen;} .aps.yO {background: lightyellow !important;} .zA:nth-child(2n-1) {color: blue;}';
var heads = $('head');
if (heads.length > 0) {
var node = document.createElement('style');
node.type = 'text/css';
node.appendChild(document.createTextNode(styles));
heads[0].appendChild(node);
}
}
if (hideBarsOnStart) {
sideBarHide();
topBarHide();
}
$(window).resize(function () {winRes();});
});