-
Notifications
You must be signed in to change notification settings - Fork 0
/
gmail-basic.user.js
107 lines (89 loc) · 3.61 KB
/
gmail-basic.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// ==UserScript==
// @name gmail basic enhancements
// @namespace camelsoft
// @description Extended labels and check all messages
// @match https://mail.google.com/mail/u/*/h/*
// @icon https://ssl.gstatic.com/ui/v1/icons/mail/images/favicon5.ico
// @downloadURL https://github.com/acavalin/tp_home/raw/main/gmail-basic.user.js
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
// @version 1.0.7
// @grant none
// @license GPLv3
// ==/UserScript==
jQuery.noConflict();
(function ($) { $(function () {
// -----------------------------------------------------------------------------
function shorten_combobox_options () {
var cur_path = $('body').data('cbb_cur_path')||'';
var cur_lvl = $('body').data('cbb_cur_lvl' )||0;
var path = $(this).val().substring(3);
var path_parent = path.substr(0, path.lastIndexOf("/"));
var path_element = path.substring(parseInt(path.lastIndexOf("/"))+1);
if (cur_path != path_parent) {
cur_path = path_parent;
cur_lvl = (path_parent.match(/\//g) || []).length;
$('body').data('cbb_cur_path', path_parent);
$('body').data('cbb_cur_lvl' , cur_lvl);
}//if
var label = '<tt>';
if (cur_lvl > 0) {
label += " ".repeat(cur_lvl);
label += '↳ ';
}//if
label += '</tt>'
$(this).
attr('title', decodeURIComponent(path)).
html(label + decodeURIComponent(path_element));
}//shorten_combobox_options
function shorten_sidebar_links () {
var cur_path = $('body').data('sbl_cur_path')||'';
var cur_lvl = $('body').data('sbl_cur_lvl' )||0;
var path = $(this).attr('href').substring(8);
var path_parent = path.substr(0, path.lastIndexOf("/"));
var path_element = path.substring(parseInt(path.lastIndexOf("/"))+1);
if (cur_path != path_parent) {
cur_path = path_parent;
cur_lvl = (path_parent.match(/\//g) || []).length;
$('body').data('sbl_cur_path', path_parent);
$('body').data('sbl_cur_lvl' , cur_lvl);
}//if
var label = '';
if (cur_lvl > 0) {
label += '↳ ';
$(this).css('margin-left', (0.75*cur_lvl)+'rem');
}//if
var unread = $(this).text().trim().match(/.+(\([0-9]+\))/) ?
$(this).text().trim().replace(/.+(\([0-9]+\))/, '$1') : ''
$(this).
attr('title', decodeURIComponent(path)).
children().first().html(label + decodeURIComponent(path_element) + ' ' + unread);
}//shorten_sidebar_links
// extend labels on "More actions..." combobox
$('select[name=tact] option[value^=ac_]').each(shorten_combobox_options);
$('select[name=tact] option[value^=rc_]').each(shorten_combobox_options);
// striped labels on the left sidebar
$('td.lb:contains(Labels) a').
css('border-radius', '5px').
css('display', 'inline-block').
css('width', '8rem').
css('padding', '1px');
// extend labels on the left sidebar
$('td.lb:contains(Labels) a:odd').css('background-color', '#dcdcdc');
$('td.lb:contains(Labels) a').each(shorten_sidebar_links);
// add toggle all messages checkbox
$('<input type="checkbox" name="toggle_all" title="Toggle all messages">').
prependTo('form[name=f] td:first');
$('input[type=checkbox][name=toggle_all]').click(function () {
$(this).prop('checked', false);
$('input[type=checkbox][name=t]').each(function () {
$(this).prop('checked', !$(this).prop('checked'));
});
});
// emails rows: hide label and show it as a title
$('form[name=f] span.ts > font:first-child').each(function () {
var lbl = $(this);
lbl.parent().parent().attr('title', lbl.text());
lbl.remove();
});
// -----------------------------------------------------------------------------
});})(jQuery);