Fix the 'add' button

The Add button was located using the Dom, and the scheme used to find it was fragile enough to be broken by the I18N approach. This is a little more robust, using a JQuery selector based on the class of the controls, and the entity name.

    Also remove  Makefile, which should be autogenerated.

>From 0f6a8bf2be022c92c75eba52d30853b627c93b94 Mon Sep 17 00:00:00 2001
From: Adam Young <ayo...@redhat.com>
Date: Tue, 28 Sep 2010 08:20:16 -0400
Subject: [PATCH] Fix the 'add' button

THe Add button was located using the DOm, and the scheme used to find it was fragile enough to be broken by the I18N approach.  This is a little more robust, using a JQuery selector based on the class of the controls, and the entity name.

Also remove  Makefile, which should be autogenerated
---
 install/po/Makefile      |  286 ----------------------------------------------
 install/static/entity.js |   10 +-
 2 files changed, 7 insertions(+), 289 deletions(-)
 delete mode 100644 install/po/Makefile

diff --git a/install/po/Makefile b/install/po/Makefile
deleted file mode 100644
index 13c4558..0000000
--- a/install/po/Makefile
+++ /dev/null
@@ -1,286 +0,0 @@
-prefix = /usr
-exec_prefix = ${prefix}
-datarootdir = ${prefix}/share
-datadir = ${datarootdir}
-localedir = ${datarootdir}/locale
-
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = /usr/bin/install -c -m 644
-AWK = gawk
-SED = /bin/sed
-MKDIR_P = /bin/mkdir -p
-XGETTEXT = /usr/bin/xgettext
-MSGFMT = /usr/bin/msgfmt
-MSGINIT = /usr/bin/msginit
-MSGMERGE = /usr/bin/msgmerge
-MSGCMP = /usr/bin/msgcmp
-
-DOMAIN = ipa
-MSGMERGE_UPDATE = $(MSGMERGE) --update
-
-COPYRIGHT_HOLDER = Red Hat
-PACKAGE_NAME = $(DOMAIN)
-PACKAGE_BUGREPORT = https://hosted.fedoraproject.org/projects/freeipa/newticket
-XGETTEXT_OPTIONS = \
---add-comments="TRANSLATORS:" \
---copyright-holder="$(COPYRIGHT_HOLDER)" \
---package-name="$(PACKAGE_NAME)" \
---msgid-bugs-address="$(PACKAGE_BUGREPORT)"
-
-languages = $(shell $(SED) 's/\#.*//' LINGUAS) # The sed command removes comments
-po_files = $(patsubst %, %.po, $(languages))
-mo_files = $(patsubst %.po, %.mo, $(po_files))
-po_count=$(words $(po_files))
-
-PYTHON_POTFILES = \
-     ../../ipa \
-     ../../lite-server.py \
-     ../../ipapython/config.py \
-     ../../ipapython/sysrestore.py \
-     ../../ipapython/__init__.py \
-     ../../ipapython/ipautil.py \
-     ../../ipapython/certdb.py \
-     ../../ipapython/ipavalidate.py \
-     ../../ipapython/dnsclient.py \
-     ../../ipapython/dogtag.py \
-     ../../ipapython/nsslib.py \
-     ../../ipapython/entity.py \
-     ../../install/tools/ipa-replica-manage \
-     ../../install/tools/ipa-server-certinstall \
-     ../../install/tools/ipa-replica-install \
-     ../../install/tools/ipa-nis-manage \
-     ../../install/tools/ipa-upgradeconfig \
-     ../../install/tools/ipa-replica-prepare \
-     ../../install/tools/ipa-compat-manage \
-     ../../install/tools/ipa-server-install \
-     ../../install/tools/ipa-ldap-updater \
-     ../../install/migration/migration.py \
-     ../../ipalib/config.py \
-     ../../ipalib/parameters.py \
-     ../../ipalib/request.py \
-     ../../ipalib/output.py \
-     ../../ipalib/__init__.py \
-     ../../ipalib/backend.py \
-     ../../ipalib/pkcs10.py \
-     ../../ipalib/x509.py \
-     ../../ipalib/plugable.py \
-     ../../ipalib/constants.py \
-     ../../ipalib/aci.py \
-     ../../ipalib/base.py \
-     ../../ipalib/ipauuid.py \
-     ../../ipalib/crud.py \
-     ../../ipalib/cli.py \
-     ../../ipalib/text.py \
-     ../../ipalib/compat.py \
-     ../../ipalib/frontend.py \
-     ../../ipalib/rpc.py \
-     ../../ipalib/errors.py \
-     ../../ipalib/encoder.py \
-     ../../ipalib/util.py \
-     ../../ipalib/plugins/config.py \
-     ../../ipalib/plugins/rolegroup.py \
-     ../../ipalib/plugins/host.py \
-     ../../ipalib/plugins/group.py \
-     ../../ipalib/plugins/migration.py \
-     ../../ipalib/plugins/xmlclient.py \
-     ../../ipalib/plugins/service.py \
-     ../../ipalib/plugins/passwd.py \
-     ../../ipalib/plugins/__init__.py \
-     ../../ipalib/plugins/virtual.py \
-     ../../ipalib/plugins/hbac.py \
-     ../../ipalib/plugins/cert.py \
-     ../../ipalib/plugins/baseldap.py \
-     ../../ipalib/plugins/aci.py \
-     ../../ipalib/plugins/kerberos.py \
-     ../../ipalib/plugins/krbtpolicy.py \
-     ../../ipalib/plugins/dns.py \
-     ../../ipalib/plugins/automount.py \
-     ../../ipalib/plugins/netgroup.py \
-     ../../ipalib/plugins/misc.py \
-     ../../ipalib/plugins/user.py \
-     ../../ipalib/plugins/taskgroup.py \
-     ../../ipalib/plugins/hostgroup.py \
-     ../../ipalib/plugins/pwpolicy.py \
-     ../../ipalib/plugins/internal.py \
-     ../../ipaserver/__init__.py \
-     ../../ipaserver/servercore.py \
-     ../../ipaserver/ipautil.py \
-     ../../ipaserver/rpcserver.py \
-     ../../ipaserver/conn.py \
-     ../../ipaserver/ipaldap.py \
-     ../../ipaserver/install/installutils.py \
-     ../../ipaserver/install/service.py \
-     ../../ipaserver/install/ldapupdate.py \
-     ../../ipaserver/install/__init__.py \
-     ../../ipaserver/install/cainstance.py \
-     ../../ipaserver/install/ntpinstance.py \
-     ../../ipaserver/install/bindinstance.py \
-     ../../ipaserver/install/krbinstance.py \
-     ../../ipaserver/install/certs.py \
-     ../../ipaserver/install/dsinstance.py \
-     ../../ipaserver/install/replication.py \
-     ../../ipaserver/install/httpinstance.py \
-     ../../ipaserver/plugins/ldap2.py \
-     ../../ipaserver/plugins/rabase.py \
-     ../../ipaserver/plugins/selfsign.py \
-     ../../ipaserver/plugins/__init__.py \
-     ../../ipaserver/plugins/join.py \
-     ../../ipaserver/plugins/ldapapi.py \
-     ../../ipaserver/plugins/xmlserver.py \
-     ../../ipaserver/plugins/dogtag.py \
-     ../../contrib/RHEL4/ipachangeconf.py \
-     ../../ipa-client/ipaclient/ntpconf.py \
-     ../../ipa-client/ipaclient/__init__.py \
-     ../../ipa-client/ipaclient/ipachangeconf.py \
-     ../../ipa-client/ipaclient/ipadiscovery.py \
-     ../../ipa-client/ipa-install/ipa-client-install 
-
-C_POTFILES = \
-     ../../daemons/ipa-kpasswd/ipa_kpasswd.c \
-     ../../daemons/ipa-slapi-plugins/ipa-enrollment/ipa_enrollment.c \
-     ../../daemons/ipa-slapi-plugins/ipa-memberof/ipa-memberof.c \
-     ../../daemons/ipa-slapi-plugins/ipa-memberof/ipa-memberof.h \
-     ../../daemons/ipa-slapi-plugins/ipa-memberof/ipa-memberof_config.c \
-     ../../daemons/ipa-slapi-plugins/ipa-pwd-extop/ipa_pwd_extop.c \
-     ../../daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync-config.c \
-     ../../daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.c \
-     ../../daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.h \
-     ../../ipa-client/config.c \
-     ../../ipa-client/ipa-getkeytab.c \
-     ../../ipa-client/ipa-join.c \
-     ../../ipa-client/ipa-rmkeytab.c
-
-POTFILES = $(PYTHON_POTFILES) $(C_POTFILES)
-
-.SUFFIXES:
-.SUFFIXES: .po .mo
-.PHONY: all create-po update-po update-pot install mostlyclean clean distclean test_lang test mo-files
-
-all:
-
-SUFFIXES = .po .mo
-
-.po.mo:
-	@echo Creating $@; \
-	$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
-
-$(po_files): $(DOMAIN).pot
-	@if [ ! -f $@ ]; then \
-	    lang=`echo $@ | $(SED) -r -e 's/\.po$$//'` # Strip .po suffix ; \
-	    echo Creating nonexistent $@, you should add this file to your SCM repository; \
-	    $(MSGINIT) --locale $$lang --no-translator -i $(DOMAIN).pot -o $@; \
-	fi; \
-	$(MSGMERGE) $@ -o $@ $(DOMAIN).pot
-
-create-po: $(DOMAIN).pot
-	@for po_file in $(po_files); do \
-	    if [ ! -e $$po_file ]; then \
-	        lang=`echo $$po_file | $(SED) -r -e 's/\.po$$//'` # Strip .po suffix ; \
-	        echo Creating nonexistent $$po_file, you should add this file to your SCM repository; \
-	        $(MSGINIT) --locale $$lang --no-translator -i $(DOMAIN).pot -o $$po_file; \
-	    fi; \
-	done
-
-update-po: update-pot
-	$(MAKE) all
-
-update-pot:
-	@rm -f $(DOMAIN).pot.update
-	@$(XGETTEXT) $(XGETTEXT_OPTIONS) \
-	--output $(DOMAIN).pot.update \
-	--language="python" \
-	$(PYTHON_POTFILES) \
-	&& \
-	$(XGETTEXT) $(XGETTEXT_OPTIONS) \
-	--output $(DOMAIN).pot.update \
-	--join-existing \
-	--language="c" \
-	$(C_POTFILES) ; \
-	$(SED) '/^"POT-Creation-Date: .*"$$/d' $(DOMAIN).pot.update > $(DOMAIN).pot.update.tmp ; \
-	$(SED) -i -r -e 's%("Content-Type: text/plain; charset=)(.*)(\\n")%\1UTF-8\3%' $(DOMAIN).pot.update.tmp ; \
-	$(SED) '/^"POT-Creation-Date: .*"$$/d' $(DOMAIN).pot >  $(DOMAIN).pot.tmp ; \
-	if ! cmp -s $(DOMAIN).pot.update.tmp $(DOMAIN).pot.tmp ; then \
-	    echo "$(DOMAIN).pot updated" ; \
-	    mv $(DOMAIN).pot.update $(DOMAIN).pot ; \
-	    # Replace the charset with UTF-8 ; \
-	    $(SED) -i -r -e 's%("Content-Type: text/plain; charset=)(.*)(\\n")%\1UTF-8\3%' $(DOMAIN).pot ; \
-	else \
-	    echo "$(DOMAIN).pot unmodified" ; \
-	fi || :
-	@rm -f $(DOMAIN).pot.update $(DOMAIN).pot.update.tmp $(DOMAIN).pot.tmp
-
-msg-stats:
-	@pot_count=`$(MSGFMT) --statistics $(DOMAIN).pot 2>&1 | \
-	$(AWK) '{match($$0, /([0-9]+) translated messages, ([0-9]+) untranslated messages/, groups); \
-	      printf "%s\n", groups[2];}'` ; \
-	echo "$(DOMAIN).pot has $$pot_count messages. There are $(po_count) po translation files." ; \
-	for po_file in $(po_files); do \
-	    $(MSGCMP) $$po_file $(DOMAIN).pot 2>&1 | \
-	    $(AWK) -v po_file=$$po_file -v pot_count=$$pot_count -v pot_file=$(DOMAIN).pot \
-                'BEGIN {po_untranslated=0; undefined=0; \
-	                po_name = gensub(/.po$$/, "", 1, po_file)} \
-                /this message is untranslated/ {po_untranslated++} \
-                /this message is used but not defined/ {undefined++} \
-                END {untranslated = po_untranslated+undefined; \
-	             translated = pot_count - untranslated; \
-	             ratio = sprintf("%d/%d", translated, pot_count); \
-                     printf "%-7s %8s %5.1f%% %4d po untranslated, %4d missing, %4d untranslated\n", \
-                     po_name ":", ratio, translated/pot_count*100.0, po_untranslated, undefined, untranslated;}'; \
-	done
-
-mo-files: $(mo_files)
-
-install: $(mo_files)
-	@for lang in $(languages); do \
-	    dstdir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \
-	    $(MKDIR_P) $$dstdir; \
-	    $(INSTALL) $$lang.mo $$dstdir/$(DOMAIN).mo; \
-	done
-
-mostlyclean:
-	rm -rf *.mo test.po test_locale
-	rm -f $(DOMAIN).pot.update $(DOMAIN).pot.update.tmp $(DOMAIN).pot.tmp
-
-clean: mostlyclean
-
-distclean: clean
-	rm -f Makefile
-
-maintainer-clean: distclean
-
-# We test our translations by taking the original untranslated string
-# (e.g. msgid) and prepend a prefix character and then append a suffix
-# character. The test consists of asserting that the first character in the
-# translated string is the prefix, the last character in the translated string
-# is the suffix and the everything between the first and last character exactly
-# matches the original msgid.
-#
-# We use unicode characters not in the ascii character set for the prefix and
-# suffix to enhance the test. To make reading the translated string easier the
-# prefix is the unicode right pointing arrow and the suffix left pointing arrow,
-# thus the translated string looks like the original string enclosed in
-# arrows. In ASCII art the string "foo" would render as:
-# -->foo<--
-#
-# Unicode right pointing arrow: u'\u2192', utf-8 = '\xe2\x86\x92'
-# Unicode left pointing arrow:  u'\u2190', utf-8 = '\xe2\x86\x90'
-#
-# The sed command below performs the prefix and suffix substitution.
-#
-# When msginit is invoked with an English target locale it copies the msgid
-# into the msgstr. This is an undocumented feature of msginit. Otherwise the
-# msgstr will be set to the empty string (i.e. untranslated). We depend on
-# the msgid being copied to the msgstr.
-
-test_lang:
-	rm -rf test.po test_locale
-	$(MSGINIT) --no-translator -i $(DOMAIN).pot -l en_US -o test.po
-	$(SED) -i -r -e 's/^msgstr[ \t]+"(.*)"[ \t]*$$/msgstr "\xe2\x86\x92\1\xe2\x86\x90"/' test.po
-	$(MKDIR_P) test_locale/en_US/LC_MESSAGES
-	$(MSGFMT) -o test_locale/en_US/LC_MESSAGES/ipa.mo test.po
-
-test: test_lang
-	./test_i18n.py
-
-maintainer-clean:
-	
diff --git a/install/static/entity.js b/install/static/entity.js
index 85bbc07..c4f605c 100644
--- a/install/static/entity.js
+++ b/install/static/entity.js
@@ -62,9 +62,13 @@ function ipa_entity_setup(jobj)
     function setup_search_facet() {
         var filter = $.bbq.getState(obj_name + '-filter', true);
         search_create(obj_name, ipa_entity_search_list[obj_name], jobj);
-        var input = jobj.find('input[value=find]');
-        input.after('<input type="submit" value="new" />');
-        input.next().click(new_on_click);
+
+        $('<input />',{
+            type:"submit",
+            value: ipa_messages.button.add, 
+            click:new_on_click
+        }).appendTo($( "div#" + obj_name + " > div.search-controls"));
+
         if (typeof filter != 'undefined')
             search_load(obj_name, filter, null, null);
     };
-- 
1.7.1

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

Reply via email to