From bba7814efe68de9332e629df2de2f33c985819d1 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 11 Jun 2013 07:14:34 -0400
Subject: [PATCH] Simplify list inputs (remove add button)

---
 /dev/null                                          |    0 
 plugins/managesieve/skins/larry/images/erase.png   |    0 
 plugins/managesieve/skins/larry/managesieve.css    |   12 ++----------
 plugins/managesieve/skins/classic/images/erase.png |    0 
 plugins/managesieve/skins/classic/managesieve.css  |   12 ++----------
 plugins/managesieve/managesieve.js                 |   27 ++++++++++++---------------
 6 files changed, 16 insertions(+), 35 deletions(-)

diff --git a/plugins/managesieve/managesieve.js b/plugins/managesieve/managesieve.js
index 117097e..299d4c3 100644
--- a/plugins/managesieve/managesieve.js
+++ b/plugins/managesieve/managesieve.js
@@ -718,32 +718,29 @@
 {
   // build row element content
   var input, content = '<span class="listelement">'
-      + '<span class="actions"><span class="add"></span><span class="reset"></span></span>'
-      + '<input type="text"></span>',
+      + '<span class="reset"></span><input type="text"></span>',
     elem = $(content),
     attrs = {value: value, name: name + '[]'};
 
   if (size)
     attrs.size = size;
 
-  input = $('input', elem).attr(attrs)
-    .keydown(function(e) { if (e.which == 13) $('span[class="add"]', elem).click(); });
+  input = $('input', elem).attr(attrs).keydown(function(e) {
+    var input = $(this);
+    // element creation event (on Enter)
+    if (e.which == 13) {
+      var name = input.attr('name').replace(/\[\]$/, ''),
+        dt = (new Date()).getTime(),
+        elem = smart_field_row('', name, dt, size);
 
-  // element creation event
-  $('span[class="add"]', elem).click(function() {
-    var span = $(this.parentNode.parentNode),
-      input = $('input', span),
-      name = input.attr('name').replace(/\[\]$/, ''),
-      dt = (new Date()).getTime(),
-      elem = smart_field_row('', name, dt, size);
-
-    span.after(elem);
-    $('input', elem).focus();
+      input.parent().after(elem);
+      $('input', elem).focus();
+    }
   });
 
   // element deletion event
   $('span[class="reset"]', elem).click(function() {
-    var span = $(this.parentNode.parentNode);
+    var span = $(this.parentNode);
 
     if (span.parent().children().length > 1)
       span.remove();
diff --git a/plugins/managesieve/skins/classic/images/erase.png b/plugins/managesieve/skins/classic/images/erase.png
new file mode 100644
index 0000000..ddd3a97
--- /dev/null
+++ b/plugins/managesieve/skins/classic/images/erase.png
Binary files differ
diff --git a/plugins/managesieve/skins/classic/images/plus_minus.png b/plugins/managesieve/skins/classic/images/plus_minus.png
deleted file mode 100644
index d92af25..0000000
--- a/plugins/managesieve/skins/classic/images/plus_minus.png
+++ /dev/null
Binary files differ
diff --git a/plugins/managesieve/skins/classic/managesieve.css b/plugins/managesieve/skins/classic/managesieve.css
index 5305b52..4907c0e 100644
--- a/plugins/managesieve/skins/classic/managesieve.css
+++ b/plugins/managesieve/skins/classic/managesieve.css
@@ -362,20 +362,12 @@
   box-shadow: none;
 }
 
-.listelement .actions
-{
-  display: inline-block;
-  width: 32px;
-  height: 16px;
-  background: url(images/plus_minus.png) -1px 0 no-repeat #eee;
-}
-
-.actions .add,
-.actions .reset
+.listelement .reset
 {
   display: inline-block;
   width: 16px;
   height: 16px;
+  background: url(images/erase.png) -1px -1px no-repeat #eee;
   cursor: pointer;
 }
 
diff --git a/plugins/managesieve/skins/larry/images/erase.png b/plugins/managesieve/skins/larry/images/erase.png
new file mode 100644
index 0000000..ddd3a97
--- /dev/null
+++ b/plugins/managesieve/skins/larry/images/erase.png
Binary files differ
diff --git a/plugins/managesieve/skins/larry/images/plus_minus.png b/plugins/managesieve/skins/larry/images/plus_minus.png
deleted file mode 100644
index d92af25..0000000
--- a/plugins/managesieve/skins/larry/images/plus_minus.png
+++ /dev/null
Binary files differ
diff --git a/plugins/managesieve/skins/larry/managesieve.css b/plugins/managesieve/skins/larry/managesieve.css
index 058b662..7d28f79 100644
--- a/plugins/managesieve/skins/larry/managesieve.css
+++ b/plugins/managesieve/skins/larry/managesieve.css
@@ -377,20 +377,12 @@
   box-shadow: none;
 }
 
-.listelement .actions
-{
-  display: inline-block;
-  width: 32px;
-  height: 16px;
-  background: url(images/plus_minus.png) -1px -1px no-repeat #eee;
-}
-
-.actions .add,
-.actions .reset
+.listelement .reset
 {
   display: inline-block;
   width: 16px;
   height: 16px;
+  background: url(images/erase.png) -1px -1px no-repeat #eee;
   cursor: pointer;
 }
 

--
Gitblit v1.9.1