Major optimizations. Added a function for extension state. Tooltip is now being change also.
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
var config = require('../config');
|
||||
|
||||
/**
|
||||
* It changes the extension icon color.
|
||||
* Supported values are: 'red', 'white', 'gray' and ''.
|
||||
*
|
||||
* @param color
|
||||
*/
|
||||
export default function changeExtensionIcon(color = '') {
|
||||
function changeExtensionIcon(color = '') {
|
||||
|
||||
var path = null;
|
||||
|
||||
@@ -18,9 +22,9 @@ export default function changeExtensionIcon(color = '') {
|
||||
|
||||
if (color === '') {
|
||||
chrome.storage.sync.get({
|
||||
theme: 'light'
|
||||
theme: config.theme
|
||||
}, function (items) {
|
||||
if (items.theme == 'light') {
|
||||
if (items.theme == config.theme) {
|
||||
path = './graphics/wakatime-logo-38.png';
|
||||
|
||||
chrome.browserAction.setIcon({
|
||||
@@ -38,3 +42,5 @@ export default function changeExtensionIcon(color = '') {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default changeExtensionIcon;
|
||||
|
||||
34
assets/js/helpers/changeExtensionState.js
Normal file
34
assets/js/helpers/changeExtensionState.js
Normal file
@@ -0,0 +1,34 @@
|
||||
var config = require('../config');
|
||||
|
||||
// Helpers
|
||||
var changeExtensionIcon = require('./changeExtensionIcon');
|
||||
var changeExtensionTooltip = require('./changeExtensionTooltip');
|
||||
var in_array = require('./in_array');
|
||||
|
||||
/**
|
||||
* Sets the current state of the extension.
|
||||
*
|
||||
* @param state
|
||||
*/
|
||||
function changeExtensionState(state){
|
||||
if (! in_array(state, config.states)) {
|
||||
throw new Error('Not a valid state!');
|
||||
}
|
||||
|
||||
switch (state) {
|
||||
case 'allGood':
|
||||
changeExtensionIcon(config.colors.allGood);
|
||||
changeExtensionTooltip(config.tooltips.allGood);
|
||||
break;
|
||||
case 'notLogging':
|
||||
changeExtensionIcon(config.colors.notLogging);
|
||||
changeExtensionTooltip(config.tooltips.notLogging);
|
||||
break;
|
||||
case 'notSignedIn':
|
||||
changeExtensionIcon(config.colors.notSignedIn);
|
||||
changeExtensionTooltip(config.tooltips.notSignedIn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
export default changeExtensionState;
|
||||
20
assets/js/helpers/changeExtensionTooltip.js
Normal file
20
assets/js/helpers/changeExtensionTooltip.js
Normal file
@@ -0,0 +1,20 @@
|
||||
var config = require('../config');
|
||||
|
||||
/**
|
||||
* It changes the extension title
|
||||
*
|
||||
* @param text
|
||||
*/
|
||||
function changeExtensionTooltip(text) {
|
||||
|
||||
if (text === '') {
|
||||
text = config.name;
|
||||
}
|
||||
else {
|
||||
text = config.name + ' - ' + text;
|
||||
}
|
||||
|
||||
chrome.browserAction.setTitle({title: text});
|
||||
}
|
||||
|
||||
export default changeExtensionTooltip;
|
||||
@@ -1,6 +1,10 @@
|
||||
/**
|
||||
* Returns UNIX timestamp
|
||||
*
|
||||
* @returns {number}
|
||||
*/
|
||||
export default function(){
|
||||
function currentTimestamp(){
|
||||
return Math.round((new Date()).getTime() / 1000);
|
||||
}
|
||||
|
||||
export default currentTimestamp;
|
||||
|
||||
13
assets/js/helpers/getDomainFromUrl.js
Normal file
13
assets/js/helpers/getDomainFromUrl.js
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Returns domain from given URL.
|
||||
*
|
||||
* @param url
|
||||
* @returns {string}
|
||||
*/
|
||||
function getDomainFromUrl(url) {
|
||||
var parts = url.split('/');
|
||||
|
||||
return parts[0] + "//" + parts[2];
|
||||
}
|
||||
|
||||
export default getDomainFromUrl;
|
||||
@@ -1,3 +1,10 @@
|
||||
/**
|
||||
* Returns boolean if needle is found in haystack or not.
|
||||
*
|
||||
* @param needle
|
||||
* @param haystack
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function in_array(needle, haystack) {
|
||||
for (var i = 0; i < haystack.length; i ++) {
|
||||
if (needle == haystack[i]) {
|
||||
|
||||
Reference in New Issue
Block a user