inbasic / ignotifier Goto Github PK
View Code? Open in Web Editor NEWMultiple account Gmail notifier (without storing passwords)
Home Page: https://webextension.org/listing/gmail-notifier.html
License: Other
Multiple account Gmail notifier (without storing passwords)
Home Page: https://webextension.org/listing/gmail-notifier.html
License: Other
Make toolbar icon blink when there are new messages
Could you, please, add support of MultiFox add-on?
The thing is that add-on modifies all the cookies by changing their URL that way:
site.com -> site.com.heregolotsofrandomsymbols.multifox-auth-2
mail.google.com -> mail.google.com.heregolotsofrandomsymbols.multifox-auth-2
Thus, your extension says "please log into an account first".
Check bug #38 for more info.
I have v0.1.6 and it opens only the default account even though the other account has the new mail.
Do not open a new tab each time Gmail is called.
https://addons.mozilla.org/en-US/firefox/addon/gmail-notifier-restartless/reviews/408474/
I think it's better if it were:
gray: none logged-in yet
blue: no new unread mail
red: old unread mail
red + count: new unread mail
This would complement and prepare for a possible future option to assign customizable color combinations (sounds too).
When more than one account has new mail we get the Select Account window. It would be nice if it would restore it's previous position on the screen rather than centering every time?
For me it is way more logical that a gray icon should indicate that there is no connection with the server, or the user hasn't logged into the account.
So please, just exchange the icons for "no unread messages" and "not logged in" states.
If all accounts, or the one with which I want to compose a new message with, is without any new notifications, I have no 'convenient' way of accessing it.
I'd suggest displaying all accounts upon hoovering the icon at all times. And, if with no new, let there be no count at all, not even a (0).
Would you consider adding a link to Restore default?
better if furthest away from mouse pointer, like top left, if most users have the toolbar at the top and usually approaches the icon from a bottom-to-top motion of the screen.
Opening gmail should reset and freeze the timer until the tab gets unloaded.
Adding a preview of new emails to the tooltip of the toolbarbutton.
Can we have notifications of any Facebook activity?
object needs to be converted to . Also we need to implement CSS filters instead of SVG filters.
main.js -> config needs to be updated to support dynamic pref reads.
Can we have the option to assign each account their own sound? In X-notifier I was able to do so via the about:config page.
Currently, leftclicking the popup just dismisses it.
I think rightclicking is fine for dismissing popups, but leftclicking should open the mail site.
"Gmail Notifier (restartless) supports multiple account Gmail check. To log-in to multiple accounts follow this instruction."
EDIT:
The text "this instruction" is not a link and, coincidentally, the instructions below it does not pertain. if not supported, I'd say - Gmail Notifier (restartless) for single and/ or multiple Gmail accounts. To enable "multi accounts", please search for the quoted text at: http://support.google.com.
Left click: Open Gmail
Middle/right click: Check Gmail(s) for updates
EDIT:
Left click: Opens Gmail
Right click: Account selections
Middle click: Refreshes all accounts
Source Code
Source code is available on Github
To report bugs and track them submit them here
EDIT: here too, the text "here" is not a link, I'd say - To report and track issues, please submit them at: https://github.com/inbasic/ignotifier/issues
Separate feeds by ",".
EDIT:
Shouldn't it actually be comma+space?
I'd say - Separate feeds by ", " (comma + space).
This setting takes place after first restart
EDIT:
I'd say - Restart required - and also include it at the color changing lines
Use alphabetic sort order for accounts
EDIT:
I'd say - Sort account selections alphabetically
Hey. I would like for the add-on to notify me only when a new email arrives in the "Important and unread section" (but not when an unimportant email arrives). Is that possible?
In the changelog to the last version I've noticed support of private windows, could you also add support of private tabs?
The thing is that private tabs should be ignored, so if a user is logged into 2 Gmail accounts, but 1 of them is logged in in a private tab - whenever the user left-clicks your add-on's button - it should activate a normal tab with the account that the user logged in unprivately.
Currently, your extension just seeks the tab-bar for a tab with gmail and activates it regardless of that tab's privacy state.
I think that opening inbox and especially opening it via clicking the extension's button/popup should reset the counter on that button to zero.
Right or Middle-click when no accounts are logged-in opens the Gmail Sing in page but also sounds the alert sound.
I don't like the pop-up: on my pretty modern PC it still very laggy.
I'd prefer icon blinking + sound notification.
It asks which account to open but still opens the default account even though I clicked the other. It doesn't seem to matter which was the last account accessed.
I do hear it in Windows control panel
Toolbar icon blinks when icon image changes.
Now and then, when I open Firefox, the addon isn't shown in my toolbar. I have to disable and enable the addon for it to show up, or restart Firefox. Why is this and can you fix it, please?
Error: gmail-notifier: DEPRECATED: The require("private-browsing") module's "start" and "stop" events are deprecated.
Traceback (most recent call last):
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 155, in then
result.then(resolve, reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/addon/runner.js", line 95, in null
run(options);
File "resource://gre/modules/commonjs/sdk/addon/runner.js", line 127, in run
let program = main(options.loader, options.main);
File "resource://gre/modules/commonjs/toolkit/loader.js", line 353, in main
return load(loader, module).exports;
File "resource://gre/modules/commonjs/toolkit/loader.js", line 237, in load
evaluate(sandbox, module.uri);
File "resource://gre/modules/commonjs/toolkit/loader.js", line 210, in evaluate
: loadSubScript(uri, sandbox, encoding);
File "resource://jid0-gjwrpchs3ugt7xydvqvk4dqk8ls-at-jetpack/gmail-notifier/lib/main.js", line 282, in null
pb.on("start", function() {
File "resource://gre/modules/commonjs/sdk/util/deprecate.js", line 32, in deprecateEvent
deprecateUsage(msg);
File "resource://gre/modules/commonjs/sdk/util/deprecate.js", line 16, in deprecateUsage
let stack = get().slice(2);
Timestamp: 01.04.2013 0:08:15
Error: gmail-notifier: DEPRECATED: The require("private-browsing") module's "start" and "stop" events are deprecated.
Traceback (most recent call last):
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 187, in resolve
result.then(observer.resolve, observer.reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 155, in then
result.then(resolve, reject);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 45, in then
return { then: function then(fulfill) { fulfill(value); } };
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/core/promise.js", line 120, in resolve
deferred.resolve(onFulfill ? onFulfill(value) : value);
File "resource://gre/modules/commonjs/sdk/addon/runner.js", line 95, in null
run(options);
File "resource://gre/modules/commonjs/sdk/addon/runner.js", line 127, in run
let program = main(options.loader, options.main);
File "resource://gre/modules/commonjs/toolkit/loader.js", line 353, in main
return load(loader, module).exports;
File "resource://gre/modules/commonjs/toolkit/loader.js", line 237, in load
evaluate(sandbox, module.uri);
File "resource://gre/modules/commonjs/toolkit/loader.js", line 210, in evaluate
: loadSubScript(uri, sandbox, encoding);
File "resource://jid0-gjwrpchs3ugt7xydvqvk4dqk8ls-at-jetpack/gmail-notifier/lib/main.js", line 285, in null
pb.on("stop", function() {
File "resource://gre/modules/commonjs/sdk/util/deprecate.js", line 32, in deprecateEvent
deprecateUsage(msg);
File "resource://gre/modules/commonjs/sdk/util/deprecate.js", line 16, in deprecateUsage
let stack = get().slice(2);
Having no middle button, I was happy to learn a right-click also functioned in the same way, check for updates. But, as expected, it opens the context menu. Disabling it when clicking the icon would be nice. I have, however, learned how to configure my Synaptics TouchPad to simulate a middle-click and no longer need to perform the additional step of clicking a blank area to close the context menu. I assigned tapping the top-right-corner of my touchpad.
In Linux OS, "+" symbol is not aligned center like in Windows. There should be SVG font issue.
I prefer the previous spinning orb, it was much easier to see and also not intrusive
if i use the regular feed url, https://mail.google.com/mail/u/0/feed/atom the addon works.
but if i wanna that the addon will check an label,
so, url like that: https://mail.google.com/mail/u/0/feed/atom/unread
will not work, i suspect that it because google setts fullcount property to 0 even though there are the correct amount of entities.
Having the Site Searcher (https://addons.mozilla.org/firefox/addon/site-searcher/) and Gmail notifier buttons in the same toolbar together, and then restarting the browser, results in the Gmail notifier button getting moved from the toolbar to the "Customize toolbar" dialog.
Add the ability to custom sort the accounts in the window, via click-n-drag, possibly.
I get 4 duplicate errors to the Error Console on browser startup caused by this add-on.
Error: gmail-notifier: An exception occurred. Traceback (most recent call last): File "resource://jid0-gjwrpchs3ugt7xydvqvk4dqk8ls-at-jetpack/api-utils/lib/xhr.js", line 125, in self._orsc.apply(self, arguments); File "resource://jid0-gjwrpchs3ugt7xydvqvk4dqk8ls-at-jetpack/gmail-notifier/lib/main.js", line 123, in count = xml.fullcount; File "resource://jid0-gjwrpchs3ugt7xydvqvk4dqk8ls-at-jetpack/gmail-notifier/lib/main.js", line 72, in return parseInt(xml.getElementsByTagName("fullcount")[0].childNodes[0].nodeValue) TypeError: xml.getElementsByTagName("fullcount")[0] is undefined
Since some users may not have a middle button (I don't), you may want to add the option to also use Alt+Left click.
Add-ons Manager page to read:
Left click: Opens Gmail
Right click: Account selections
Middle (or Alt+Left) click: Refreshes all accounts
When logged in with multiple accounts, if more than 1 account has an unread message, I can't left-click the icon to access the accounts (right-click still works fine.) If only 1 account has an unread message, left-click works fine. This feature worked in 0.2.6 beta.
Instead, you could use just a context menu: that approach doesn't require the user to move cursor far away from the icon that has just been clicked and it doesn't block the content area of the browser (which your extension currently does until you dismiss the window)
Currently there is no listener for destroying panels. It is required by uninstall and disable requests.
There is no sound in OS == "Linux"
https://addons.mozilla.org/en-US/firefox/addon/gmail-notifier-restartless/reviews/408474/
When I post a new issue, how do I attach a label to it? Or is that something only you can do?
When In Firefox option, Privacy -> History -> "Accept third-party cookies" check-box is blank, this add-on does not work.
The letter icon is still 'not logged-in' color.
It is not possible to check emails of other channels rather than inbox. There is a conflict with multi-account access.
As discussed in issue #47, when master (and 0.27beta) are compiled against 1.14 the toolbar button cannot be left-clicked.
If there's an email that doesn't have a subject line, the new 0.3.0beta shows a window overlay that makes it impossible to click & view the email. Likely an italicized "No subject provided" in its place would correct the UX roadblock.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.