diff --git a/experiments/converter/application.js b/experiments/converter/application.js index e45a8fa4..34432aee 100644 --- a/experiments/converter/application.js +++ b/experiments/converter/application.js @@ -10,7 +10,8 @@ $(function() { }; function list() { - var ul = $("#conversions").empty().removeAttr("data-mobilized", false); + var ul = $("#conversions").empty().removeAttr("data-mobilized"), + ulEdit = $("#edit-conversions").empty().removeAttr("data-mobilized"); $.each(all, function(index, conversion) { // if last update was less then a minute ago, don't update if (conversion.type == "currency" && !conversion.rate || conversion.updated && conversion.updated + 60000 < +new Date) { @@ -27,11 +28,15 @@ $(function() { $("#conversion-field").tmpl(conversion, { symbols: symbols }).appendTo(ul); + $("#conversion-edit-field").tmpl(conversion, { + symbols: symbols + }).appendTo(ulEdit); }); $.mobilize(ul); + // TODO trigger a custom event instead of keyup? + $("#term").keyup(); } var all = conversions.all(); - list(); $("#term").keyup(function() { var value = this.value; $.each(all, function(index, conversion) { @@ -40,7 +45,8 @@ $(function() { : "Rate not available, yet." ); }); - }).keyup().focus(); + }).focus(); + list(); $("form").submit(function() { $("#term").blur(); return false; @@ -65,4 +71,13 @@ $(function() { list(); return false; }); + + $("#edit-conversions").click(function(event) { + var target = $(event.target).closest(".deletebutton"); + if (target.length) { + conversions.remove(target.prev("label").attr("for")); + list(); + } + return false; + }) }); \ No newline at end of file diff --git a/experiments/converter/index.html b/experiments/converter/index.html index 8fd46a3b..f409c1b2 100644 --- a/experiments/converter/index.html +++ b/experiments/converter/index.html @@ -17,6 +17,18 @@ .field { padding: 15px; } .editbutton { float: right; } + +
Edit @@ -31,12 +43,6 @@
-
@@ -48,15 +54,18 @@

sort conversions, add new ones or delete some

- Add currency conversion + Add currency conversion Restore default Delete all conversions +
+ +
-
+
-

Add conversion

+

Add currency conversion

Cancel
@@ -74,7 +83,7 @@ - Add conversion + Add currency conversion
diff --git a/experiments/converter/storage.js b/experiments/converter/storage.js index 01849930..8604e91c 100644 --- a/experiments/converter/storage.js +++ b/experiments/converter/storage.js @@ -4,7 +4,9 @@ type: "currency", from: "USD", to: "EUR" - }, + } + // TODO add back in as defaults once its possible to add other conversions, not just currencies + /*, { type: "distance", from: "Miles", @@ -16,7 +18,7 @@ from: "inch", to: "centimeter", rate: 2.54 - } + }*/ ]; // TODO fallback to whatever else when localStorage isn't available @@ -48,6 +50,15 @@ conversions.length = 0; $.extend(conversions, defaults); this.store(); + }, + remove: function(tofrom) { + $.each(conversions, function(index, conversion) { + if ((conversion.from + conversion.to) == tofrom) { + conversions.splice(index, 1); + return false; + } + }); + this.store(); } };