Re: [Freeipa-devel] [PATCH] 275 Use editable combobox for service type.

2011-11-29 Thread Simo Sorce
This patch was also pushed.

On Thu, 2011-09-29 at 11:35 +0200, Petr Vobornik wrote:
 On 09/28/2011 12:59 AM, Endi Sukma Dewata wrote:
  On 9/16/2011 12:16 PM, Endi Sukma Dewata wrote:
  The service type field in the service adder dialog has been modified
  to use an editable combobox.
 
  Ticket #1633.
 
  Rebased (removed undo parameter).
 
 ACK

-- 
Simo Sorce * Red Hat, Inc * New York

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


Re: [Freeipa-devel] [PATCH] 275 Use editable combobox for service type.

2011-09-29 Thread Petr Vobornik

On 09/28/2011 12:59 AM, Endi Sukma Dewata wrote:

On 9/16/2011 12:16 PM, Endi Sukma Dewata wrote:

The service type field in the service adder dialog has been modified
to use an editable combobox.

Ticket #1633.


Rebased (removed undo parameter).


ACK
--
Petr Vobornik

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel


[Freeipa-devel] [PATCH] 275 Use editable combobox for service type.

2011-09-16 Thread Endi Sukma Dewata

The service type field in the service adder dialog has been modified
to use an editable combobox.

Ticket #1633.

--
Endi S. Dewata
From 0e3929b1b0db342771429eba64e789e65a79 Mon Sep 17 00:00:00 2001
From: Endi S. Dewata edew...@redhat.com
Date: Fri, 16 Sep 2011 12:02:12 -0500
Subject: [PATCH] Use editable combobox for service type.

The service type field in the service adder dialog has been modified
to use an editable combobox.

Ticket #1633.
---
 install/ui/service.js |   42 +++---
 install/ui/widget.js  |   34 +-
 2 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/install/ui/service.js b/install/ui/service.js
index 7ff1ba711b40db90d3407859a4a1049e345bd343..44c5326442607aa8401b06136b64adad6a421ee6 100644
--- a/install/ui/service.js
+++ b/install/ui/service.js
@@ -78,31 +78,6 @@ IPA.entity_factories.service = function() {
 };
 
 
-IPA.service_select_widget = function(spec) {
-
-var that = IPA.text_widget(spec);
-var known_services = [, cifs, DNS, ftp, HTTP,imap, ldap,
-  libvirt,nfs,qpidd,smtp];
-
-that.parent_create = that.create;
-
-that.create = function(container) {
-
-var select_widget = $('select/');
-for (var i = 0; i  known_services.length; i += 1){
-select_widget.append($('option/',{
-text: known_services[i],
-click: function(){
-that.input.val(this.value);
-}
-}));
-}
-container.append(select_widget);
-that.parent_create(container);
-};
-return that;
-};
-
 IPA.service_add_dialog = function(spec) {
 
 spec = spec || {};
@@ -114,10 +89,23 @@ IPA.service_add_dialog = function(spec) {
 entity: spec.entity,
 hidden: true
 })).
-field(IPA.service_select_widget({
+field(IPA.combobox_widget({
 name: 'service',
 label: IPA.messages.objects.service.service,
-size: 20,
+options: [
+'cifs',
+'DNS',
+'ftp',
+'HTTP',
+'imap',
+'ldap',
+'libvirt',
+'nfs',
+'smtp',
+'qpidd'
+],
+editable: true,
+size: 10,
 entity: spec.entity,
 param_info: { required: true },
 undo: false
diff --git a/install/ui/widget.js b/install/ui/widget.js
index 4a02cb7d8c55834da047e2677053f80d1c4eafb3..2f607194985323fda93a97b5282f8b2fa6717eb5 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -1600,8 +1600,9 @@ IPA.combobox_widget = function(spec) {
 
 that.editable = spec.editable;
 that.searchable = spec.searchable;
-that.list_size = spec.list_size || 5;
+that.size = spec.size || 5;
 that.empty_option = spec.empty_option === undefined ? true : spec.empty_option;
+that.options = spec.options || [];
 
 that.create = function(container) {
 that.widget_create(container);
@@ -1700,7 +1701,7 @@ IPA.combobox_widget = function(spec) {
 
 that.list = $('select/', {
 name: 'list',
-size: that.list_size,
+size: that.size,
 style: 'width: 100%',
 change: function() {
 var value = $('option:selected', that.list).val();
@@ -1732,7 +1733,30 @@ IPA.combobox_widget = function(spec) {
 return that.list_container.css('visibility') == 'visible';
 };
 
-that.search = function(filter) {
+that.search = function(filter, on_success, on_error) {
+
+that.remove_options();
+
+if (that.empty_option) {
+that.create_option();
+}
+
+for (var i=0; ithat.options.length; i++) {
+var option = that.options[i];
+
+var label, value;
+if (option instanceof Object) {
+label = option.label;
+value = option.value;
+} else {
+label = option;
+value = option;
+}
+
+that.create_option(label, value);
+}
+
+if (on_success) on_success.call(this);
 };
 
 that.update = function() {
@@ -1799,9 +1823,9 @@ IPA.combobox_widget = function(spec) {
 return value === '' ? [] : [value];
 };
 
-that.create_option = function(text, value) {
+that.create_option = function(label, value) {
 return $('option/', {
-text: text,
+text: label,
 value: value
 }).appendTo(that.list);
 };
-- 
1.7.5.1

___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel