Git Product home page Git Product logo

ignotifier's People

Contributors

catzil avatar ecaron avatar inbasic avatar justanotheranonymoususer avatar kissdanigh avatar mkiol avatar need74 avatar sijera avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ignotifier's Issues

Add support of MultiFox add-on

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".

Opens wrong account

I have v0.1.6 and it opens only the default account even though the other account has the new mail.

Icon color and function

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).

Select Account window position not remembered

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?

Exchange [disconnected] and [nounreadmail] icons

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.

Display all accounts at all times

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).

Mail count indicator

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.

Convert <SVG> to <label>

object needs to be converted to . Also we need to implement CSS filters instead of SVG filters.

Separate sounds for accounts

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.

Add-ons Manager page suggestions

"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

Notify only for "Important and unread"

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?

Add support of private tabs

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.

Still opening the wrong account

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.

Bug: Not loaded on startup

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?

Errors in the console [on Nightly]

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);

Disable opening context menu on right-click

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.

Errors in the console

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

Middle click alternative

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

RMB should not open a new non-modal window

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)

Implement panel.destroy()

Currently there is no listener for destroying panels. It is required by uninstall and disable requests.

Check labels other than inbox

It is not possible to check emails of other channels rather than inbox. There is a conflict with multi-account access.

Blank subjects causes nothing clickable in window

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.