Giter Site home page Giter Site logo

cbrooker / mmm-todoist Goto Github PK

View Code? Open in Web Editor NEW
149.0 10.0 53.0 753 KB

This is an extension for the MagicMirror2 platform. It will display your Todoist todos on your MagicMirror.

License: MIT License

JavaScript 94.56% CSS 5.44%
magicmirror todoist-todos mmm-todoist

mmm-todoist's People

Contributors

agp42 avatar cbrooker avatar dependabot[bot] avatar diego-escalante avatar emanuele-albini avatar gkreitz avatar jdcasey avatar kolbyjack avatar laventin85 avatar mabahj avatar mattdy avatar mossglenn avatar nout-kleef avatar pyrosmiley avatar sdetweil avatar shin10 avatar simphide avatar thyed avatar tintinmaster avatar tkotz8105 avatar trekky12 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

mmm-todoist's Issues

Only Showing One Project

Hi there. Great module! Love it! Only issue I'm having right now is that it is only displaying one project. I have copied over the project ID's (3 of 'em) but it will only show one. If I try each one individually, only one is displaying which is really weird. I know I'm copying the right project number: https://todoist.com/app#project%2F<this_number>%2Ffull

Any ideas on what could be wrong here? Thanks!

A little bit of customising

Hi,

I want to extend the module a little bit:

  • Project Name as header
  • Project color in front of the name / the todos
  • reminder icon behind the todo

Could you please give us a hint, where I have to make the changes?

Thanks, best regards
Maurice

max indent level

to filter to only have max number of indent levels shown to only show the high level items as reminders rather than filling whole screen of details.

ReadMe:
Add Configuration Option text: indent: 1,

This will determine the maximum number of indent to display

Possible values: int
Default value: 10
Note: Todoist only currently allows 4 levels of indent. Default kept high for future compatibility should this change.

MMM-Todoist.js
add line 60: indent: 10,
change line 245: if (item.project_id == project && item.indent <= self.config.indent){

Project ID

great app - but How is it possible to find the Project ID number to display the list you want?

Sync issue locks me out of web apps

I've made the fun discovery that when this module is running, other todoist clients that use the sync API (the web app, native OSX app, etc) can't load/are stuck in Offline mode. I have not yet taken a deep look into the sync API methods so I don't know how, but it's been driving me nuts that I can't use Todoist on a desktop for a couple of weeks, and I only just now figured out that this is the culprit.

Now that I know, I can at least quit the MagicMirror to use todoist on the web but that's pretty hacky. When I have a chance I'll read through their documentation to see if I can figure out what the deal is -- it used to work just fine so I'll bet that when they updated their API (which caused this module to blank before!), something changed that it doesn't like anymore.

Request: Show Completed

I'd like to be able to show completed tasks with a strikethrough. The goal is to have a chore list that can be updated by the family member on their personal device when they've completed it. After that it will show on the MM as done (strikethrough) instead of just disappearing. When it disappears it's more likely just going to be forgotten.

A way to add another Todoist account (multiple users)

Is there a way to add multiple Todoist accounts? E.g. add multiple access tokens, or add another ProjectID from someone else's account? I tried simply adding another project ID from a different account separated by a common and it did not seem to work, I assume each account needs its own unique access token

Not working for me :/

I have done everything you described in the readme file, but it schows only the title of the module but no Tasks.

Sorting Question

Hey all,

I can get the module to sort by date, but I can't quite figure out what the default "todoist" sortType does. It doesn't seem to sort by the time/date I created my to dos and it definitely doesn't seem to mirror whatever sorting option I select for a particular project on either the todoist web interface or the app. How is the default "todoist" sortType sorting?

Thanks!

Label filter does not work

Hey there! :)

I'm trying to create a list what showing every item containing the label "Monitor". Unfortunately it does not show anything besides the header.

I tried single & double quotes, with or without a prefix "@" or "%40", with the capital or only lowercase but everything does not seem to help. I'm I the only one with this problem? And if so, can some one maybe tell me what I'm doing wrong? :)

position: 'bottom_left',
header: 'Monitor',
	 config: { 
		 accessToken: 'mytoken',
		 maximumEntries: 60,
		 updateInterval: 60*1000,
		 fade: false,
		 labels: [ "Monitor" ], 
		 displayTasksWithoutDue: true,
		 displayTasksWithinDays: -1,
		 maxTitleLength: 50,
	 }

Screenshot?

Hi Chris,
Could you please add a screenshot somewhere. I would like to see how this look.
Thanks.

Changing Font on MMM-Todoist

How can the fonts of the Project Title and/or the events be changed? Specifically I would like to change the size

img tag affect other modules

Hello,
Since commit #58 (4a0af4b) todoist module is breaking images from other modules (e.g. MMM-Wallpaper or MMM-reddit).

I think it's because of the css file in the .img section, it affects ALL images.
I'm not very familiar with MM² or JS, so i'm not able to find a clean fix for it and do a PR.
I have temporarily commented the img section in /MMM-Todoist.css

Use Todoist "REST API" rather than "Sync API"

This project is currently using the Sync API over the REST API.

It strikes me that this is not the best approach - the purpose of this module is to display to-dos. Rather than pulling in all of the account data via a sync request and filtering it out, it seems like it would be better to use the REST API to query for the specific tasks to be shown.

This is beneficial for multiple reasons:

  • More efficient network call; good for low bandwidth and large projects
  • Allows for filtering by Todoist filters

Looking at the REST API docs for getting active tasks, it seems pretty simple to retrieve tasks in this way.

It easily allows for filtering tasks by project ID and label for all (making this an easy under-the-hood swap-out for the current implementation, with no breaking changes to the config layout), and also allows for filtering by labels for Todoist Premium, which can be added to the config specification.

This would change behaviour in one way, though:
Currently, if both projects and labels are specified, then tasks from both will be shown. In this new implementation, then it would only show tasks that matched all filtering in the request (i.e. only tasks in the specified projects with specified labels and filters.

However, I feel that this is more appropriate. If this is important, then perhaps it can be added as a flag, which would choose which API to use, based on required functionality? I can imagine that someone on the free version of Todoist might want the existing functionality, but someone on Todoist Premium can get that level of control via a filter quite easily, and more precisely.

Way to switch ToDo projects depending on day

I have 2 different ToDo lists, one for the week (Monday-Friday) and one for the weekend (Sat-Sun), it would be awesome if the module would only show me the project depending on the day. might be a very specific case so I'll fork the project and work on a solution that works for me

Labels and projects are not working correctly when having multiple projects

If two MMM-Todoist modules are added to the magic mirror, (one in the top left and one in the bottom right) and you want to have one show the tasks of a project with a due date and the other show tasks with a label, if the tasks displayed in the top left are being filtered, they won't be displayed in the bottom right, despite having a different filter.

look at line 5268

   var isAdded=0; // To prevent a task in added twice. Far from fancy, can be improved. But it works.
5269
5270       // Filter using label if a label is configured
-271       if (labelIds.length>0 && item.labels.length > 0) {
6272         // Check all the labels assigned to the task. Add to items if match with configured label
+273         for (let label of item.labels) {...}

Is there a way to cap width of widget?

It looks like a similar ask was raised in #27, so close this if it's the same answer.

Is there a max width I can apply? I'm not super familiar w/ how MMirror does all it's layouts and width calculations for the grid, but it looks like the do not put a hard limit on width?

I have one really long task in Todoist/Inbox. It's not a common thing, just a kinda occasional edge-case. This really long task is stretching out the widget so it's clobbering others. I'll get this task cleaned up / organized soon, so it'll stop being an issue soon... I just wanted to ask while i still noticed / could take a screenshot.

magicmirror

Is there something that i can do w/ the API to limit this or should i get a quick PR in?

JS is ... not a core strength of mine, so it'd be dirty / look something like:

item.length >= 60 ? item.substring(0,60) : item

(where 60 should probably be something users can override...)

somewhere around here:
https://github.com/cbrooker/MMM-Todoist/blob/master/MMM-Todoist.js#L95

-K

modify header

hi,
is there a possibility to modify the header via css (or something else) ?
the font-size is too small in my opinion. have a look at the attched picture.

so long an keep corona away !

todoist_03

Module content just stopped displaying

Not really sure what's going on with this one. It worked excellently for awhile (several weeks at least!) and then boom it's stopped showing up since the other day. The module header is there, but there's no list. I've checked my config and I've deleted/reinstalled the module entirely, but there's just no content. Thought I had maybe messed it up while trying to change CSS but I didn't modify this one at all.

Order by date, priority

Hello,

Is there an option which would allow to order records by date, priority? Overdue first, then all records for Today, and so on, records with higher priority on the top.
img_20180128_203501678

Module freezes when entries do not have a due date.

If I add a to do list entry without a due date, the module does not load on startup and if it's already running, it stops updating. I've been able to reproduce this error consistently.

Here’s the log
Create new todo fetcher for list: 2153843199 - Interval: 60000
0|mm | Whoops! There was an uncaught exception…
0|mm | TypeError: Cannot read property ‘substring’ of null
0|mm | at Request._callback (/home/pi/MagicMirror/modules/MMM-Todoist/fetcher.js:69:35)
0|mm | at Request.self.callback (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:188:22)
0|mm | at emitTwo (events.js:106:13)
0|mm | at Request.emit (events.js:191:7)
0|mm | at Request. (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1171:10)
0|mm | at emitOne (events.js:96:13)
0|mm | at Request.emit (events.js:188:7)
0|mm | at IncomingMessage. (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1091:12)
0|mm | at Object.onceWrapper (events.js:290:19)
0|mm | at emitNone (events.js:91:20)
0|mm | MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm | If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues

CSS affecting other module?

I am currently using eouia's MMM-CalendarEXT2, and when I use Todoist module as well, everything on the monthly look ahead view of my calendar is underlined. Should I edit Todoist's module's CSS to be more module specific (I am assuming maybe some of the variables between these two modules are the same...) Thanks for any pointers.

Project Alignment

When arraying multiple projects to a single module and displaying the name in the module, my project names do not alight right as the due date does. Is there a parameter that can adjust this?

Thanks!
Nick

Not displaying at all

Hi,
I have tried to install and setup MMM-Todoist on my mirror but it literally shows nothing, not even the title?! I have the RPi3B+ and am using the latest Raspbian release and MagicMirror2 release. I have other modules working but cannot seem to get this to work at all?!

Todist API V7 is no longer supported

Hello,

I just noticed that the module suddenly stopped working. After some research I found out that the used API V7 is no longer supported.

Can you maybe update the module so it supports the newest API?

Thank you!

ToDos without any date / time

Hi,

since the last update, todos without a date or time specification gets a "12:59 AM". Beside I have the 24h metric, that doesn't seem to be correct, doesn't it?! The cell should be empty.

image

Best regards
Maurice

TypeError and request error in latest version

Since this past update, I have been seeing several error like:

0|mm       | Whoops! There was an uncaught exception...
0|mm       | TypeError: Cannot read property 'substring' of null
0|mm       |     at Request._callback (/home/pi/MagicMirror/modules/MMM-Todoist/fetcher.js:69:35)
0|mm       |     at Request.self.callback (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:187:22)
0|mm       |     at emitTwo (events.js:106:13)
0|mm       |     at Request.emit (events.js:191:7)
0|mm       |     at Request.<anonymous> (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1126:10)
0|mm       |     at emitOne (events.js:96:13)
0|mm       |     at Request.emit (events.js:188:7)
0|mm       |     at IncomingMessage.<anonymous> (/home/pi/MagicMirror/modules/MMM-Todoist/node_modules/request/request.js:1046:12)
0|mm       |     at IncomingMessage.g (events.js:286:16)
0|mm       |     at emitNone (events.js:91:20)
0|mm       | MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
0|mm       | If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues

I don't know much about node but it appears it's not happy with request. All of my other plugins work so I don't think it's related to he latest MM update but I'm feeling around in the dark here.

My configs look like:

{
    module: 'MMM-Todoist',
    position: 'bottom_left',
    header: 'Personal Goals',
    config: {
        accessToken: 'removed-but-verified',
        maximumEntries: 10,
        interval: 60,
        lists: [ removed-but-verified ],
        fade: false
    }

I'm happy to help troubleshoot.

Multiple instances of module only use last item's config

Using the following config, I get three copies of the same project list, despite using separate project IDs, in the below example the list with "projectID3".

Earlier versions of MMM-Todoist allowed separate instances to access different project lists, potentially with different access tokens, ie my wife vs my own accounts.

I find the new showProject tag to be a little distracting, hence me wanting to group my lists manually; 1 title vs 20 copies of "Alexa Shopping List", for example.

Here's my config:

                        module: 'MMM-Todoist',
                        position: 'top_center',
                        header: 'To Do List', // This is optional
                        config: {
                                accessToken: 'accessToken',
                                maximumEntries: 10,
                                interval: 30,
                                projects: [ projectID1 ],
                                showProject: true,
                                fade: false
                        }
                },
                {
                        module: 'MMM-Todoist',
                        position: 'top_center',
                        header: 'Ikea', // This is optional
                        config: {
                                accessToken: 'accessToken',
                                maximumEntries: 10,
                                interval: 30,
                                projects: [ projectID2 ],
                                showProject: true,
                                fade: false
                        }
                },
                {
                        module: 'MMM-Todoist',
                        position: 'top_center', 
                        header: 'Shopping List', // This is optional
                        config: {
                                accessToken: 'accessToken',
                                maximumEntries: 10,
                                interval: 30,
                                projects: [ projectID3 ],
                                showProject: true,
                                fade: false
                        }
                },

Currently outputs:

To Do List
Bacon Alexa Shopping List
Eggs Alexa Shopping List
Milk Alexa Shopping List
Bread Alexa Shopping List

Ikea
Bacon Alexa Shopping List
Eggs Alexa Shopping List
Milk Alexa Shopping List
Bread Alexa Shopping List

Shopping List
Bacon Alexa Shopping List
Eggs Alexa Shopping List
Milk Alexa Shopping List
Bread Alexa Shopping List

Does not appear to work in `serveronly` mode

Hey there :). Thanks for putting this module together!

I have a question. Has the ToDoist module been tested with serveronly? (see: https://github.com/MichMich/MagicMirror#server-only)

I have a working MagicMirror install running in a Docker container. I am able to pull up the magic mirror web-page in a chrome browser.

I am not a JS expert, much less super familiar with node, but it appears that there is some form of node helper script that this plugin relies on. I think this is the case because i see code like this:

this.sendSocketNotification("FETCH_TODOIST", this.config);

and not a whole lot of code that i would expect to see in a ToDoist API client... but i do see it in the node_helper.js

Basically, I see the todoist plugin loading in my browser, but there is no data under it. I suspect that there is something preventing the helper from loading / fetching the data, but i'm not 100% sure where to being looking / if serveronly supports node-helpers.

here's what i see in STDOUT when i launch the magic-mirror server:

Starting MagicMirror: v2.4.0
Loading config ...
Loading module helpers ...
No helper found for module: alert.
Initializing new module helper ...
Module helper loaded: updatenotification
No helper found for module: clock.
Initializing new module helper ...
Module helper loaded: calendar
No helper found for module: compliments.
No helper found for module: currentweather.
No helper found for module: weatherforecast.
No helper found for module: MMM-CountDown.
All module helpers loaded.
Starting server on port 8080 ...
Server started ...
Connecting socket for: updatenotification
Connecting socket for: calendar
Starting node helper for: calendar
Sockets connected & modules started ...

Ready to go! Please point your browser to: http://0.0.0.0:8080
Create new calendar fetcher for url: http://www.calendarlabs.com/templates/ical/US-Holidays.ics - Interval: 300000

Note: the lack of No helper found for module: MMM-Todoist. implying that node_helper.js was found / loaded...

Note: the lack of Starting node helper for: MMM-Todoist

Thoughts?

Timezone issue?

My raspberry pi has the timezone set for New York and displays time correctly. I have my ToDoist account in the same time zone. But the MM module is showing list items with the incorrect due date. Example an item due on 3/20 (today) is saying it was due yesterday. Is this a UTC issue?

Adjust width of task description

Hello,

Not sure if this is the right place, I'm a noob to GitHub. I've just started using this module and I was able to install and get it working with few issues. I noticed that there are 3 columns there is space reserved for. The task description, a due date, and then what list it is from. Is it possible to remove due date and/or the list its from are from so the description can fill more of the width? I didn't see such an option in your description maybe I missed it. Let me know I'd love to be able to just have tasks listed, no need for the date or what list they are from. Great module by the way.

Thank you!

Not updating

Hi -

My todoist module isnt updating - no error messages either in the console. Items dont come off the todo list.

Looking at the readme file - is the update interval in seconds or minutes? I noticed that in the readme file MaximumEntries and Interval both refers how often it updates:

maximumEntries
Possible values: time in min
Default value: 60

interval
How often the module should load new todos.
Possible values: int in seconds
Default value: 60

can you clarify? Is the interval in seconds or mins?

Thanks

Taskname and date in different lines

Do You think, its easy to change the Look?
I use the Module “Mmm-my calendar”, and it would be great to have the same Look.
(two lines, one with Taskname, one with date, and a Symbol)

Could you please...

Let me know how to alter the width as I have this in the center and need it wider, also how to remove the project name, I dont mind the dots but dont need to see the project name for every item on my shopping list. (also "Inbox" for the todo list) Many thanks for a great module.

Done tasks still appearing and different views

Hey there,

just got into the MagicMirror thing and I love it. Your Todoist module was the first I installed and instantly got it to work.
Now there is one issue and one request:

1. The issue

I have several tasks already marked as done, but they still appear on the smart mirror as if they were new. Is there a fix for this?

2. The request

I have a large amount of projects in Todoist but I don't really care for them. I normally use the "today" and the "next 7 days" views.
Is it somehow possible to get the module show these views instead of just projects, that I manually need to add to the config?

Would be great hearing from you.
Have a nice day.
Jan

Error log: Invalid date

@cbrooker

Thank you for providing us this fantastic module!

My MMM-Todoist works fine. But I found a error log in console:
[12208:0523/220203.528255:INFO:CONSOLE(201)] "ToDoIst update OK, project : 22107111111 at : Invalid date", source: http://0.0.0.0:8080/modules/MMM-Todoist//MMM-Todoist.js (201)

I'd like to know what it mean. How can I make it disappear? Could you give me some suggestions? Thanks.

Floating Timezone: Today/Tomorrow incorrect

It appears that Todoist might have defaulted to a floating time zone. Which means that the Today/Tomorrow label changes according to GMT. So I (-8 GMT) keep having tomorrow's due dates, show as today. I'm able to work around by adding a time due (which adds a local timezone).

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.