Dashing Dashboard | Google Kalender Widget einrichten

Es gibt ein tolles Google Kalender Widget von jmb auf Github.
Leider ist die Installationsanleitung recht kurz gehalten, weshalb ich das ganze noch einmal zusammen gefasst habe.

Vorab kann man sich schon alle Dateien für das Widget auf Github herunterladen.
https://gist.github.com/jmb/33ae3a33d6e8dbffd102

Außerdem braucht man noch eine js library für die Datumsanzeige. Diese kann hier heruntergeladen werden:
http://momentjs.com/

Anleitung

1. Widget Dateien einrichten

1.1 moment js

Die js library muss in das Verzeichnis des Dashing Ordners unter /assets/javascripts kopiert werden.
Ich habe die Datei moment-with-locales.min.js heruntergeladen.

Anschließend die application.coffee Datei im Ordner /assets/ öffnen und folgende Zeile einfügen

#= require moment-with-locales.min.js

Ich habe die moment js library inkl. verschiedener Sprachen heruntergeladen (locales). Möchte man die Anzeige z.B auf Deutsch, kann man noch folgende Zeile in die application.coffee einfügen

moment.locale('de');

1.2 widget

Im Verzeichnis Widget einen Ordner namens google_calendar anlegen und die Dateien google_calendar.html, google_calendar.scss und google_calendar.coffee hinein kopieren.

Die google_calendar.rb wird in das Verzeichnis jobs des Dashing Ordners kopiert.

2. Api, Schlüssel und ID einrichten und kopieren

2.1 Schlüssel und Mailadresse

In der Google Developer Console anmelden und ein neues Projekt erstellen.
Danach auf Calendar API gehen und den Zugriff aktivieren.

Anschließend unter Zugangsdaten, die Anmeldedaten erstellen und Dienstkontoschlüssel auswählen.
Ein neues Dienstkonto anlegen, die Option P12 auswählen und speichern.

Das Passwort des privaten Schlüssels ist Standard und bereits in der google_calendar.rb hinterlegt.

Auf der gleichen Seite gibt es den Textlink Dienstkonten verwalten. Darin befinden sich die E-Mail Adressen der jeweiligen Dienstkonten. Die zugehörige Adresse wird ebenfalls zur Einrichtung benötigt.

2.2 Kalender ID

Die Kalender ID findet man auf der Kalenderwebsite in den Kalendereinstellungen des jeweiligen Kalenders (sie steht direkt hinter Kalenderadresse). Diese wird ebenfalls zur Einrichtung benötigt.

3. google_calendar.rb anpassen

Die google_calendar.rb die sich im Verzeichnis jobs befindet mit einem Editor öffnen und folgende Daten eintragen.

3.1 Hier die Service Account E-Mail einfügen, die zum Dienstkonto der Google Developer Console gehört.

service_account_email = dashboard@SAMPLE.iam.gserviceaccount.com

3.2 Das P12 File habe ich direkt im Dashing Ordner eingefügt (Pfad ./EuerFilename.p12).

key_file = './EuerFilename.p12

3.3 Die Kalender ID (aus 2.2)

calendarID = CALENDERid@calendar.google.com

3.4 Anzahl der Einträge anzeigen

Etwas weiter unten kann man die Anzahl der anzuzeigenden Termine eintragen (Bsp. 6 Termine).

'maxResults' => **6**})  # How many calendar items to get

4. Folgende Zeile zum Gemfile von Dashing hinzufügen.

gem 'google-api-client', '>= 0.8'

5. Diesen Befehl im Terminal ausführen

bundle install

6. Code in das Dashboard einfügen (nicht vergessen die Reihen und Spalten anzupassen).

<li data-row="**1**" data-col="**1**" data-sizex="3" data-sizey="1">
  <div data-id="google_calendar" data-view="GoogleCalendar"></div>
</li>

Nachdem Neustart von Dashing sollte der Kalender angezeigt werden.
Falls es beim Start von Dashing einen Fehler in google_calendar.rb Zeile 25 gibt, überprüft ob der Pfad und der Name der P12 Datei korrekt sind.