From 281ba28317f6f7f9651fdfd33bbbb12d4f221876 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 8 Oct 2010 12:59:20 +0200 Subject: [PATCH] Converter demo: Added ability to remove individual conversions. Removed distance defaults until those can be added by hand. --- experiments/converter/application.js | 21 +++++++++++++++++--- experiments/converter/index.html | 29 ++++++++++++++++++---------- experiments/converter/storage.js | 15 ++++++++++++-- 3 files changed, 50 insertions(+), 15 deletions(-) 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(); } };