summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-08-13 18:30:28 -0400
committerJules Laplace <jules@okfoc.us>2014-08-13 18:30:28 -0400
commitb07ed6868895f883640fc003ba4f5cc108c27b3e (patch)
treee161b2c64fa26a0687fb02fad52c1558a75b673c
parentb7b881a00a9b73ba54cc3a62edc402a903ec9142 (diff)
pull in minotaur
-rw-r--r--public/assets/javascripts/rectangles/util/minotaur.js58
-rw-r--r--public/assets/javascripts/ui/_router.js1
2 files changed, 59 insertions, 0 deletions
diff --git a/public/assets/javascripts/rectangles/util/minotaur.js b/public/assets/javascripts/rectangles/util/minotaur.js
new file mode 100644
index 0000000..b4c81f0
--- /dev/null
+++ b/public/assets/javascripts/rectangles/util/minotaur.js
@@ -0,0 +1,58 @@
+$(function(){
+
+ var Monitor = function () {
+ var base = this;
+ base.$el = $("#save");
+ base.timeout = null;
+ base.delay = 500;
+ base.objects = {};
+
+ base.init = function () {
+ base.$el.addClass('saved').html('Save');
+ base.$el.click(base.save);
+ }
+
+ base.watch = function (object) {
+ base.objects[object.type] = base.objects[object.type] || {};
+ base.objects[object.type][object.id] = object;
+ base.clear();
+ base.timeout = setTimeout(base.save, base.delay);
+ };
+
+ base.clear = function () {
+ if (base.timeout) clearTimeout(base.timeout);
+ base.timeout = false;
+ };
+
+ base.save = function () {
+ var saving = false;
+ base.clear();
+
+ for (var type in base.objects) {
+ for (var id in base.objects[type]) {
+ if (base.timeout)
+ return;
+ var obj = base.objects[type][id];
+ if (obj) obj.save(function(){
+ base.$el.removeClass('unsaved saving').addClass('saved').html('Saved');
+ saving = true;
+ });
+ base.objects[type][id] = false;
+ }
+ }
+
+ if (saving) {
+ base.$el.removeClass('unsaved saved').addClass('saving').html('Saving');
+ }
+ else {
+ base.$el.removeClass('unsaved saving').addClass('saved').html('Saved');
+ }
+
+ base.objects = {};
+ };
+
+ base.init();
+ };
+
+ window.Minotaur = new Monitor ();
+});
diff --git a/public/assets/javascripts/ui/_router.js b/public/assets/javascripts/ui/_router.js
index d07810e..794079e 100644
--- a/public/assets/javascripts/ui/_router.js
+++ b/public/assets/javascripts/ui/_router.js
@@ -27,6 +27,7 @@ var SiteRouter = Router.extend({
"/profile": 'profile',
"/profile/edit": 'editProfile',
+ "/profile/:name": 'profile',
"/about/:name/edit": 'editDocument',
"/about/new": 'newDocument',