Text Post

Integrating Things with Panic’s Status Board

Update : a new DIY widget for your tasks

I wanted to show my urgent tasks from Things on the iPad app Status Board from Panic.

warning : you will have to change the files to make this work on your system !

status board

My status board shows the list of tasks that are due today or within 3 days. The first column is the name of the project or area and the second column shows the title of the task.

Step 1 : Download the applescript

I wrote a simple applescript that will render the tasks that are due today or that will be due within 3 days in CSV format. You can download the script here and change it if you wish to show different tasks. Save this script on your mac. (i.e. in a file called ~/Scripts/things_statusboard.scpt)

Step 2 : Write the bash script

Create a very simple bash script that will call the applescript and write the output in a CSV file in your public Dropbox folder. Save the bash script on your mac (i.e. in a file called ~/Scripts/things_statusboard.sh)

osascript /Users/YOURNAME/Scripts/things_statusboard.scpt  > /Users/YOURNAME/Dropbox/Public/things_statusboard.csv

DO NOT FORGET to change the content of the bash script in accordance with your username and the path to your files

Make the bash script executable : chmod a+x ~/Scripts/things_statusboard.sh

Step 3 : Schedule it to run

We’re going to run this script every 10 minutes.

You can use the mac application Lingon to run the script at regular intervals or you can do this manually by scheduling a job with launchd. You can fin more instruction in this article from Nathan Grigg.

I created the folowing plist file : ~/Library/LaunchAgents/net.g-design.things_statusboard.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>net.g-design.things_statusboard</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/gunther/Documents/Reference/Scripts/things_statusboard.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/gunther/Dropbox/Public/things_statusboard.csv</string>
    <key>StartInterval</key>
    <integer>600</integer>
</dict>
</plist>

If you went the manual route, don’t forget to launch the job :

launchctl load ~/Library/LaunchAgents/net.g-design.things_statusboard.plist

Step 4: Add it your Status Board

Copy the link to the CSV file in your dropbox. Add a new table to your Status Board and paste in the link (it offers to do this by default).

UPDATE : a DIY widget for your tasks

I created a more visual DIY widget for Status Board.

DIY

Download the HTML file of the widget and put it in your dropbox folder.

Change the link in the javascript section of the page so that it points to your CSV file.

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "https://dl.dropboxusercontent.com/u/YOURUSERID/things_statusboard.csv",
        dataType: "text",
        success: function(data) {processData(data);}
    });
});

Add a Do-It-Yourself widget to your Dash Board with a link to this html page.

There is a known bug : Since Dropbox serves files with the wrong encoding header (ascii and not utf8), foreign characters with accents etc. will not display well.

Enjoy.

Notes

  1. alexandrecosta reblogged this from groenewege
  2. groenewege posted this