diff --git a/Makefile b/Makefile
index 058cf9b..b3c3ba1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,19 @@
-VERSION =1.4
+VERSION =1.5
BUILD_NUMBER_FILE = build-number.txt
BUILD_NUMBER = $$(cat $(BUILD_NUMBER_FILE))
build : increment-build-number
mkdir -p build/css
+ mkdir -p build/js
cp src/www/*.* build
- cp -r src/www/js build
cp -r resources/* build/.
+ cp src/www/js/personal-display.js build/js/personal-display-$(VERSION).$(BUILD_NUMBER)js
+ sed -i "s/%VERSION%/$(VERSION).$(BUILD_NUMBER)/g" build/index.html
sass src/www/css/personal-display.scss build/css/personal-display.css
tar czf personal-display-$(VERSION).$(BUILD_NUMBER).tar.gz build
clean :
- rm -r build
+ -rm -r build
local-deploy: build
cp -r build ~/temp/server
diff --git a/src/www/index.html b/src/www/index.html
index 42c4837..b2f5efa 100644
--- a/src/www/index.html
+++ b/src/www/index.html
@@ -18,10 +18,10 @@
-->
-
+
-
+
diff --git a/src/www/js/personal-display.js b/src/www/js/personal-display.js
index a10c3be..01134f4 100644
--- a/src/www/js/personal-display.js
+++ b/src/www/js/personal-display.js
@@ -2,7 +2,7 @@
var root = this;
var PD = root.PersonalDisplay = {};
- PD.version = "1.4"
+ PD.version = "1.5"
PD.hasHTML5LocalStorage = function() {
try {
@@ -171,7 +171,6 @@
xhrFields: { withCredentials: true },
processData: false,
type: 'POST',
- async: false,
data: JSON.stringify(
{"username": username, "password": password}),
@@ -183,7 +182,10 @@
else { $(".validate-tips").text("There was an error " +
"trying to log into the TimeStamper service: " +
error); }
- PD.tsAuth = false; },
+ PD.tsAuth = false;
+
+ // Hide the wait overlay.
+ this.$el.find(".wait-overlay").fadeOut(); },
success: function(data, textStatus, jqXHR) {
PD.tsAuth = true;
@@ -192,11 +194,10 @@
// Load the user's timelines.
PD.configDialog.loadTsData(host, username);
- }
- });
- // Success or failure we hide the wait overlay.
- this.$el.find(".wait-overlay").fadeOut();
+ // Hide the wait overlay.
+ this.$el.find(".wait-overlay").fadeOut(); }
+ });
},
@@ -217,7 +218,6 @@
xhrFields: { withCredentials: true },
processData: false,
type: 'POST',
- async: false,
data: JSON.stringify(
{"username": username, "password": password}),
@@ -229,61 +229,72 @@
else { $(".validate-tips").text("There was an error " +
"trying to log into the Getting Things Done service: " +
error); }
- PD.gtdAuth = false; },
+ PD.gtdAuth = false;
+ this.$el.find(".wait-overlay").fadeOut(); },
success: function(data, textStatus, jqXHR) {
PD.gtdAuth = true;
$(".validate-tips").text("");
- PD.configDialog.loadGtdData(host); }
+ PD.configDialog.loadGtdData(host);
+ this.$el.find(".wait-overlay").fadeOut(); }
});
- this.$el.find(".wait-overlay").fadeOut();
},
loadTsData: function(host, username) {
+ var thisView = this;
// (Re)load the user's timelines.
- PD.tsCfg.timelines = JSON.parse($.ajax({
+ $.ajax({
url: 'https://' + host + '/ts_api/timelines/' + username,
xhrFields: { withCredentials: true },
- async: false}).responseText);
+ success: function(data, textStatus, jqXHR) {
+ debugger;
+ PD.tsCfg.timelines = data;
- // Populate the available timelines list.
- var $timelineSelectEl = this.$el.find(".timestamper-config .timeline");
- $timelineSelectEl.empty();
- _.forEach(PD.tsCfg.timelines, function(timeline) {
- var $optionEl = $(document.createElement("option"));
- $optionEl.attr("value", timeline.id);
- $optionEl.text(timeline.description);
- $timelineSelectEl.append($optionEl); }); },
+ // Populate the available timelines list.
+ var $timelineSelectEl = $(".timestamper-config .timeline");
+
+ $timelineSelectEl.empty();
+ _.forEach(PD.tsCfg.timelines, function(timeline) {
+ var $optionEl = $(document.createElement("option"));
+ $optionEl.attr("value", timeline.id);
+ $optionEl.text(timeline.description);
+ $timelineSelectEl.append($optionEl); });
+ }}); },
loadGtdData: function(host) {
+
+
// Load the user's contexts
- PD.gtdCfg.contexts = JSON.parse($.ajax({
+ var contextedLoaded = $.ajax({
url: 'http://' + host + '/gtd/contexts',
xhrFields: { withCredentials: true },
- async: false }).responseText);
+ success: function(data, textStatus, jqXHR) {
+ PD.gtdCfg.contexts = data;} });
// Load the user's projects
- PD.gtdCfg.projects = JSON.parse($.ajax({
+ var projectsLoaded = $.ajax({
url: 'http://' + host + '/gtd/projects',
xhrFields: { withCredentials: true },
- async: false }).responseText);
+ success: function(data, statuxText, jqXHR) {
+ PD.gtdCfg.projects = data;} });
- // Populate the available contexts and projects drop-down.
- var $categorySelectEl = $(".gtd-config .category")
- $categorySelectEl.empty();
- $categorySelectEl.append(
- "");
- _.forEach(PD.gtdCfg.contexts.concat(PD.gtdCfg.projects),
- function(category) {
- var $optionEl = $(document.createElement("option"));
- $optionEl.attr("value", category.id);
- $optionEl.text(category.id);
- $categorySelectEl.append($optionEl); });
- $categorySelectEl[0].selectedIndex = 0; },
+ $.when(contextLoaded, projectsLoaded).then(function() {
+ // Populate the available contexts and projects drop-down.
+ var $categorySelectEl = $(".gtd-config .category")
+ $categorySelectEl.empty();
+ $categorySelectEl.append(
+ "");
+ _.forEach(PD.gtdCfg.contexts.concat(PD.gtdCfg.projects),
+ function(category) {
+ var $optionEl = $(document.createElement("option"));
+ $optionEl.attr("value", category.id);
+ $optionEl.text(category.id);
+ $categorySelectEl.append($optionEl); });
+ $categorySelectEl[0].selectedIndex = 0; }},
makeCategoryItem: function(catName) {
var $liEl = $(
@@ -394,7 +405,6 @@
xhrFields: { withCredentials: true },
processData: false,
type: "POST",
- async: false,
data: JSON.stringify(
{ "username": PD.tsCfg.username,
@@ -416,7 +426,6 @@
xhrFields: { withCredentials: true },
processData: false,
type: "POST",
- async: false,
data: JSON.stringify(
{ "username": PD.gtdCfg.username,
@@ -451,12 +460,10 @@
if (jqXHR.status == 401) { PD.tsAuth = false; }
else {
alert("Unable to retrieve current timestamp: " + errorText);
- PD.configDialog.show(); }
- },
+ PD.configDialog.show(); } },
success: function(data, textStatus, jqXHR) {
- PD.currentActivityModel.set(data[0]); }
- });
+ PD.currentActivityModel.set(data[0]); } });
// Get the list of GTD entries for each of our categories.
var categories = _.reduce(
@@ -476,8 +483,7 @@
else if (jqXHR.status == 500) { return; }
else {
alert("Unable to retrieve next actions: " + errorText);
- PD.configDialog.show(); }
- },
+ PD.configDialog.show(); } },
success: function(data, textStatus, jqXHR) {
var collection = PD.gtdNextActionCollection;
@@ -497,9 +503,7 @@
// longer in our retrieved data and remove them.
collection.forEach(function(model) {
if (!_.any(data, model.equals)) {
- collection.remove(model); }});
- }
- });
+ collection.remove(model); }}); } });
if (evt) evt.preventDefault();
},