Skip to content
Snippets Groups Projects
Commit d7ea34e1 authored by jurgenhaas's avatar jurgenhaas
Browse files

Merge branch 'develop' into 'master'

Update readme



See merge request !1
parents 2619f78e 18f779b3
No related branches found
No related tags found
1 merge request!1Update readme
......@@ -57,6 +57,8 @@ Once Greasemonkey is installed, you can either add user scripts from GitHub or t
### How to install from GitLab
IMPORTANT: The links to raw files are currently not working due to a bug in GitLab. Please move on to the next chapter and use the links from **Greasy Fork** !
Just open one of the PLATFORM.user.js files and then click on "Raw". Your Firefox browser should tell you that you're opening a Greasemonkey user script and provides an option "Install" which you should then click.
The direct links are:
......@@ -103,9 +105,7 @@ However, you can adjust their scope by individually defining the list of domains
## Useful links
* [Greasy Fork][17]
* [User Scripts][14]
* [Toggl Button Greasy Fork][3]
* [Toggl Button User Scripts][1]
* [Greasemonkey Homepage][15]
* [Greasemonkey AddOn][11]
* [Other browser support][12]
......@@ -136,14 +136,12 @@ As the author of this set of scripts I do disclose that I am **in no way** assoc
This also means, that the scripts here are in no way *official products* of Toggl and therefore not supported by Toggl or their associates.
[1]: http://userscripts.org:8080/tags/toggl
[2]: https://gitlab.paragon-es.de/toggl-button/core/merge_requests
[3]: https://greasyfork.org/scripts/search?q=toggl
[10]: https://new.toggl.com
[10]: https://www.toggl.com
[11]: https://addons.mozilla.org/en-US/firefox/addon/greasemonkey
[12]: http://wiki.greasespot.net/Cross-browser_userscripting
[13]: https://github.com/toggl/toggl-button
[14]: http://userscripts.org:8080
[15]: http://www.greasespot.net
[16]: https://github.com/toggl/toggl_api_docs
[17]: https://greasyfork.org
......
......@@ -61,7 +61,7 @@
position: fixed;
bottom: 10px;
left: 10px;
z-index: 999;
z-index: 1001;
padding: 0;
border: 1px solid #999999;
-moz-box-shadow: 0 0 5px 5px #888;
......@@ -141,7 +141,10 @@
text-decoration: underline;
}
/* Special positioning on TeamWork */
body#tasks #toggl-button-wrapper {
bottom: 40px;
/* Special: TeamWork */
body#tasks .startTimer {
display: none;
}
body#tasks .btn.harvest-timer {
display: none;
}
......@@ -16,6 +16,7 @@ function TogglButtonGM(selector, renderer) {
$newApiUrl = "https://www.toggl.com/api/v8",
$legacyApiUrl = "https://new.toggl.com/api/v8",
$triedAlternative = false,
$addedDynamicListener = false,
$api_token = null,
$default_wid = null,
$clientMap = {},
......@@ -119,34 +120,48 @@ function TogglButtonGM(selector, renderer) {
if (selector == null) {
return;
}
var i, len, elems = document.querySelectorAll(selector);
var i, len, elems = document.querySelectorAll(selector + ':not(.toggl)');
for (i = 0, len = elems.length; i < len; i += 1) {
elems[i].classList.add('toggl');
$instances[i] = new TogglButtonGMInstance(renderer(elems[i]));
}
document.addEventListener('TogglButtonGMUpdateStatus', function() {
GM_xmlhttpRequest({
method: "GET",
url: $activeApiUrl + "/time_entries/current",
headers: {
"Authorization": "Basic " + btoa($api_token + ':api_token')
},
onload: function (result) {
if (result.status === 200) {
var resp = JSON.parse(result.responseText),
data = resp.data || false;
if (data) {
for (i in $instances) {
$instances[i].checkCurrentLinkStatus(data);
if (!$addedDynamicListener) {
$addedDynamicListener = true;
document.addEventListener('TogglButtonGMUpdateStatus', function() {
GM_xmlhttpRequest({
method: "GET",
url: $activeApiUrl + "/time_entries/current",
headers: {
"Authorization": "Basic " + btoa($api_token + ':api_token')
},
onload: function (result) {
if (result.status === 200) {
var resp = JSON.parse(result.responseText),
data = resp.data || false;
if (data) {
for (i in $instances) {
$instances[i].checkCurrentLinkStatus(data);
}
}
}
}
}
});
});
});
window.addEventListener('focus', function() {
document.dispatchEvent(new CustomEvent('TogglButtonGMUpdateStatus'));
});
window.addEventListener('focus', function() {
document.dispatchEvent(new CustomEvent('TogglButtonGMUpdateStatus'));
});
if (selector !== 'body') {
document.body.addEventListener('DOMSubtreeModified', function () {
setTimeout(function () {
render(selector, renderer);
}, 1000);
});
}
}
}
this.clickLinks = function() {
......@@ -341,13 +356,24 @@ function TogglButtonGM(selector, renderer) {
document.querySelector('body').classList.add('toggl-button-available');
if (params.targetSelectors == undefined) {
var wrapper = document.createElement('div'),
var wrapper,
existingWrapper = document.querySelectorAll('#toggl-button-wrapper'),
content = createTag('div', 'content');
wrapper.id = 'toggl-button-wrapper';
content.appendChild($link);
content.appendChild(createProjectSelect());
wrapper.appendChild(content);
document.querySelector('body').appendChild(wrapper);
if (existingWrapper.length > 0) {
wrapper = existingWrapper[0];
while (wrapper.firstChild) {
wrapper.removeChild(wrapper.firstChild);
}
wrapper.appendChild(content);
}
else {
wrapper = document.createElement('div');
wrapper.id = 'toggl-button-wrapper';
wrapper.appendChild(content);
document.querySelector('body').appendChild(wrapper);
}
} else {
var elem = params.targetSelectors.context || document;
if (params.targetSelectors.link != undefined) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment