[PATCH 00/11] help i18n support
by Paulo Vital
This patch set adds new languages to improve Kimchi's Help pages i18n
support. The new languages are: German (de_DE), Spanish (es_ES),
French (fr_FR), Italian (it_IT), Japanese (ja_JP), Korean (ko_KR),
Russian (ru_RU) and the Traditional Chinese (zh_TW).
Paulo Vital (11):
help i18n: Update Makefile to refeclt new languages.
help i18n: Add German translation
help i18n: Add Spanish translation
help i18n: Add French translation
help i18n: Add Italian translation
help i18n: Add Japanese translation
help i18n: Add Korean translation
help i18n: Add Russian translation
help i18n: Add Traditional Chinese translation
help i18n: Update Portuguese (Brazil) translation
help i18n: Update Simplified Chinese translation
configure.ac | 8 ++
ui/pages/help/Makefile.am | 2 +-
ui/pages/help/de_DE/Makefile.am | 23 +++++
ui/pages/help/de_DE/guests.dita | 127 +++++++++++++++++++++++++++
ui/pages/help/de_DE/host.dita | 49 +++++++++++
ui/pages/help/de_DE/network.dita | 62 +++++++++++++
ui/pages/help/de_DE/storage.dita | 86 +++++++++++++++++++
ui/pages/help/de_DE/templates.dita | 112 ++++++++++++++++++++++++
ui/pages/help/es_ES/Makefile.am | 23 +++++
ui/pages/help/es_ES/guests.dita | 120 ++++++++++++++++++++++++++
ui/pages/help/es_ES/host.dita | 49 +++++++++++
ui/pages/help/es_ES/network.dita | 61 +++++++++++++
ui/pages/help/es_ES/storage.dita | 86 +++++++++++++++++++
ui/pages/help/es_ES/templates.dita | 111 ++++++++++++++++++++++++
ui/pages/help/fr_FR/Makefile.am | 23 +++++
ui/pages/help/fr_FR/guests.dita | 130 ++++++++++++++++++++++++++++
ui/pages/help/fr_FR/host.dita | 68 +++++++++++++++
ui/pages/help/fr_FR/network.dita | 67 +++++++++++++++
ui/pages/help/fr_FR/storage.dita | 93 ++++++++++++++++++++
ui/pages/help/fr_FR/templates.dita | 120 ++++++++++++++++++++++++++
ui/pages/help/it_IT/Makefile.am | 23 +++++
ui/pages/help/it_IT/guests.dita | 123 ++++++++++++++++++++++++++
ui/pages/help/it_IT/host.dita | 51 +++++++++++
ui/pages/help/it_IT/network.dita | 63 ++++++++++++++
ui/pages/help/it_IT/storage.dita | 91 ++++++++++++++++++++
ui/pages/help/it_IT/templates.dita | 115 +++++++++++++++++++++++++
ui/pages/help/ja_JP/Makefile.am | 23 +++++
ui/pages/help/ja_JP/guests.dita | 172 +++++++++++++++++++++++++++++++++++++
ui/pages/help/ja_JP/host.dita | 70 +++++++++++++++
ui/pages/help/ja_JP/network.dita | 83 ++++++++++++++++++
ui/pages/help/ja_JP/storage.dita | 120 ++++++++++++++++++++++++++
ui/pages/help/ja_JP/templates.dita | 150 ++++++++++++++++++++++++++++++++
ui/pages/help/ko_KR/Makefile.am | 23 +++++
ui/pages/help/ko_KR/guests.dita | 119 +++++++++++++++++++++++++
ui/pages/help/ko_KR/host.dita | 47 ++++++++++
ui/pages/help/ko_KR/network.dita | 61 +++++++++++++
ui/pages/help/ko_KR/storage.dita | 86 +++++++++++++++++++
ui/pages/help/ko_KR/templates.dita | 111 ++++++++++++++++++++++++
ui/pages/help/pt_BR/guests.dita | 13 ++-
ui/pages/help/pt_BR/storage.dita | 8 +-
ui/pages/help/pt_BR/templates.dita | 7 +-
ui/pages/help/ru_RU/Makefile.am | 23 +++++
ui/pages/help/ru_RU/guests.dita | 122 ++++++++++++++++++++++++++
ui/pages/help/ru_RU/host.dita | 48 +++++++++++
ui/pages/help/ru_RU/network.dita | 61 +++++++++++++
ui/pages/help/ru_RU/storage.dita | 88 +++++++++++++++++++
ui/pages/help/ru_RU/templates.dita | 111 ++++++++++++++++++++++++
ui/pages/help/zh_CN/guests.dita | 16 ++--
ui/pages/help/zh_CN/storage.dita | 6 +-
ui/pages/help/zh_CN/templates.dita | 6 +-
ui/pages/help/zh_TW/Makefile.am | 23 +++++
ui/pages/help/zh_TW/guests.dita | 120 ++++++++++++++++++++++++++
ui/pages/help/zh_TW/host.dita | 50 +++++++++++
ui/pages/help/zh_TW/network.dita | 61 +++++++++++++
ui/pages/help/zh_TW/storage.dita | 88 +++++++++++++++++++
ui/pages/help/zh_TW/templates.dita | 112 ++++++++++++++++++++++++
56 files changed, 3885 insertions(+), 29 deletions(-)
create mode 100644 ui/pages/help/de_DE/Makefile.am
create mode 100644 ui/pages/help/de_DE/guests.dita
create mode 100644 ui/pages/help/de_DE/host.dita
create mode 100644 ui/pages/help/de_DE/network.dita
create mode 100644 ui/pages/help/de_DE/storage.dita
create mode 100644 ui/pages/help/de_DE/templates.dita
create mode 100644 ui/pages/help/es_ES/Makefile.am
create mode 100644 ui/pages/help/es_ES/guests.dita
create mode 100644 ui/pages/help/es_ES/host.dita
create mode 100644 ui/pages/help/es_ES/network.dita
create mode 100644 ui/pages/help/es_ES/storage.dita
create mode 100644 ui/pages/help/es_ES/templates.dita
create mode 100644 ui/pages/help/fr_FR/Makefile.am
create mode 100644 ui/pages/help/fr_FR/guests.dita
create mode 100644 ui/pages/help/fr_FR/host.dita
create mode 100644 ui/pages/help/fr_FR/network.dita
create mode 100644 ui/pages/help/fr_FR/storage.dita
create mode 100644 ui/pages/help/fr_FR/templates.dita
create mode 100644 ui/pages/help/it_IT/Makefile.am
create mode 100644 ui/pages/help/it_IT/guests.dita
create mode 100644 ui/pages/help/it_IT/host.dita
create mode 100644 ui/pages/help/it_IT/network.dita
create mode 100644 ui/pages/help/it_IT/storage.dita
create mode 100644 ui/pages/help/it_IT/templates.dita
create mode 100644 ui/pages/help/ja_JP/Makefile.am
create mode 100644 ui/pages/help/ja_JP/guests.dita
create mode 100644 ui/pages/help/ja_JP/host.dita
create mode 100644 ui/pages/help/ja_JP/network.dita
create mode 100644 ui/pages/help/ja_JP/storage.dita
create mode 100644 ui/pages/help/ja_JP/templates.dita
create mode 100644 ui/pages/help/ko_KR/Makefile.am
create mode 100644 ui/pages/help/ko_KR/guests.dita
create mode 100644 ui/pages/help/ko_KR/host.dita
create mode 100644 ui/pages/help/ko_KR/network.dita
create mode 100644 ui/pages/help/ko_KR/storage.dita
create mode 100644 ui/pages/help/ko_KR/templates.dita
create mode 100644 ui/pages/help/ru_RU/Makefile.am
create mode 100644 ui/pages/help/ru_RU/guests.dita
create mode 100644 ui/pages/help/ru_RU/host.dita
create mode 100644 ui/pages/help/ru_RU/network.dita
create mode 100644 ui/pages/help/ru_RU/storage.dita
create mode 100644 ui/pages/help/ru_RU/templates.dita
create mode 100644 ui/pages/help/zh_TW/Makefile.am
create mode 100644 ui/pages/help/zh_TW/guests.dita
create mode 100644 ui/pages/help/zh_TW/host.dita
create mode 100644 ui/pages/help/zh_TW/network.dita
create mode 100644 ui/pages/help/zh_TW/storage.dita
create mode 100644 ui/pages/help/zh_TW/templates.dita
--
1.9.3
10 years, 3 months
[PATCH] guest_storage_add.main.js: fixing Storage Volume select
by Daniel Henrique Barboza
The select menu of Storage Volume didn't behave properly in the
case where a storage pool with no eligible volumes is selected
after a storage pool with valid volumes. The previous values
remained in the select menu.
Signed-off-by: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.guest_storage_add.main.js | 7 ++++++-
ui/js/widgets/select-menu.js | 1 +
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/ui/js/src/kimchi.guest_storage_add.main.js b/ui/js/src/kimchi.guest_storage_add.main.js
index a8c5acb..59b82e8 100644
--- a/ui/js/src/kimchi.guest_storage_add.main.js
+++ b/ui/js/src/kimchi.guest_storage_add.main.js
@@ -75,7 +75,12 @@ kimchi.guest_storage_add_main = function() {
poolTextbox.change(function() {
var options = [];
kimchi.listStorageVolumes($(this).val(), function(result) {
+ if(typeof $('#guest-disk').selectMenu() !== "undefined") {
+ $('#guest-disk').selectMenu("destroy");
+ $(volTextbox).val("").change();
+ }
$('#guest-disk').selectMenu();
+
if (result.length) {
$.each(result, function(index, value) {
// Only unused volume can be attached
@@ -89,9 +94,9 @@ kimchi.guest_storage_add_main = function() {
if (options.length) {
$(volTextbox).val(options[0].value);
$(volTextbox).change();
+ $('#guest-disk').selectMenu("setData", options);
}
}
- $('#guest-disk').selectMenu("setData", options);
});
});
diff --git a/ui/js/widgets/select-menu.js b/ui/js/widgets/select-menu.js
index ad53200..2b681b9 100644
--- a/ui/js/widgets/select-menu.js
+++ b/ui/js/widgets/select-menu.js
@@ -75,6 +75,7 @@
this.selectDiv.removeClass('btn dropdown popable');
this.target.removeClass('input');
this.label.removeClass('input');
+ this.label.text('');
this.listControl.removeClass('select-list');
this.listControl.parent().removeClass('popover');
$.Widget.prototype.destroy.call(this);
--
1.8.3.1
10 years, 3 months
[PATCH] Update openSUSE section in docs/README.md
by Aline Manera
Add nginx package in the dependency list for openSUSE systems.
(It is already listed in the kimchi.spec.suse.in file)
And also update the repositories section to guide user to get python-parted
package.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
docs/README.md | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/docs/README.md b/docs/README.md
index 3bdc914..19e8a68 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -93,16 +93,18 @@ for more information on how to configure your system to access this repository.
python-pam python-M2Crypto python-jsonschema \
rpm-build kvm python-psutil python-ethtool \
python-ipaddr python-lxml nfs-client open-iscsi \
- libxslt-tools python-xml python-parted \
+ libxslt-tools python-xml python-parted nginx \
python-libguestfs guestfs-tools python-requests
Packages version requirement:
python-psutil >= 0.6.0
-*Note for openSUSE users*: Some of the above packages are located in the
-openSUSE Systems Management repository. See
+*Note for openSUSE users*: Some of the above packages are located in different
+openSUSE repositories. See
+[this FAQ](http://download.opensuse.org/repositories/home:GRNET:synnefo/) for
+python-parted; and
[this FAQ](http://download.opensuse.org/repositories/systemsmanagement:/spacewa...
-to get the correct repository based on your openSUSE version. And
+for python-ethtool to get the correct repository based on your openSUSE version. And
[this FAQ](http://en.opensuse.org/SDB:Add_package_repositories) for more
information on how configure your system to access this repository.
--
1.9.3
10 years, 3 months
[PATCH] Bug 440 Fix
by huoyuxin@linux.vnet.ibm.com
From: Yu Xin Huo <huoyuxin(a)linux.vnet.ibm.com>
Signed-off-by: Yu Xin Huo <huoyuxin(a)linux.vnet.ibm.com>
---
ui/js/widgets/select-menu.js | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/ui/js/widgets/select-menu.js b/ui/js/widgets/select-menu.js
index ad53200..c4b0209 100644
--- a/ui/js/widgets/select-menu.js
+++ b/ui/js/widgets/select-menu.js
@@ -36,8 +36,10 @@
var selectedClass = 'active';
var itemTag = 'li';
var item;
+ that.listControl.find('li').remove();
+ that.label.text("");
+ that.target.val("");
if (options.length > 0) {
- that.listControl.find('li').remove();
$.each(options, function(index, option) {
item = $('<' + itemTag + '>' + option.label +'</' + itemTag + '>');
item.data('value', option.value);
@@ -58,8 +60,6 @@
that.target.change();
}
});
- } else {
- kimchi.message.error.code('KCHAPI6006E');
}
},
--
1.7.1
10 years, 3 months
[PATCH v3] guest-storage-add: removing "Storage Name" field
by Daniel Henrique Barboza
This specific field adds very little to the user experience in
comparison with the effort required to mantain it. This patch
removes it from the UI, making the "Add a Storage Device to VM"
window simpler.
Backend support of specifying dev name is left as is because
it can be helpful in testing/debugging.
Signed-off-by: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
---
po/de_DE.po | 10 ----------
po/en_US.po | 8 --------
po/es_ES.po | 10 ----------
po/fr_FR.po | 10 ----------
po/it_IT.po | 10 ----------
po/ja_JP.po | 10 ----------
po/kimchi.pot | 8 --------
po/ko_KR.po | 9 ---------
po/pt_BR.po | 10 ----------
po/ru_RU.po | 10 ----------
po/zh_CN.po | 8 --------
po/zh_TW.po | 8 --------
ui/js/src/kimchi.guest_storage_add.main.js | 7 +++----
ui/pages/guest-storage-add.html.tmpl | 17 ++++-------------
14 files changed, 7 insertions(+), 128 deletions(-)
diff --git a/po/de_DE.po b/po/de_DE.po
index 06d8c38..3c8a3a9 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -1183,16 +1183,6 @@ msgstr "Löschen"
msgid "Add a Storage Device to VM"
msgstr "Speichereinheit zur virtuellen Maschine hinzufügen"
-msgid "Device Name"
-msgstr "Einheitenname"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"Der Name, mit dem die Einheit gekennzeichnet wird. Falls er ausgelassen "
-"wird, wird automatisch ein Name gewählt."
-
msgid "Device Type"
msgstr "Einheitentyp"
diff --git a/po/en_US.po b/po/en_US.po
index 11fcec9..bc851b2 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -1057,14 +1057,6 @@ msgstr ""
msgid "Add a Storage Device to VM"
msgstr ""
-msgid "Device Name"
-msgstr ""
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-
msgid "Device Type"
msgstr ""
diff --git a/po/es_ES.po b/po/es_ES.po
index 4aec448..d966fd6 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -1201,16 +1201,6 @@ msgstr "Suprimir"
msgid "Add a Storage Device to VM"
msgstr "Añadir un dispositivo de almacenamiento a VM"
-msgid "Device Name"
-msgstr "Nombre de dispositivo"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"El nombre que se utiliza para identificar el dispositivo. Si se omite, se "
-"elegirá un nombre automáticamente"
-
msgid "Device Type"
msgstr "Tipo de dispositivo"
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 6b2bd2d..c4746d0 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -1189,16 +1189,6 @@ msgstr "Supprimer"
msgid "Add a Storage Device to VM"
msgstr "Ajouter un Périphérique de Stockage à la VM"
-msgid "Device Name"
-msgstr "Nom de Périphérique"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"Le nom utilisé pour identifier le périphérique. Si omis, un nom sera choisi "
-"automatiquement."
-
msgid "Device Type"
msgstr "Type de Périphérique"
diff --git a/po/it_IT.po b/po/it_IT.po
index 3293fa2..cb6ea0f 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -1170,16 +1170,6 @@ msgstr "Elimina"
msgid "Add a Storage Device to VM"
msgstr "Aggiungi un dispositivo di memoria alla VM"
-msgid "Device Name"
-msgstr "Nome dispositivo"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"Il nome utilizzato per identificare il dispositivo. Se omesso, ne verrà "
-"scelto uno automaticamente."
-
msgid "Device Type"
msgstr "Tipo dispositivo"
diff --git a/po/ja_JP.po b/po/ja_JP.po
index a2740bf..fd419ce 100644
--- a/po/ja_JP.po
+++ b/po/ja_JP.po
@@ -1182,16 +1182,6 @@ msgstr "削除"
msgid "Add a Storage Device to VM"
msgstr "VM にストレージ・デバイスを追加"
-msgid "Device Name"
-msgstr "デバイス名"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"名前はデバイスを識別するために使用されます。省略すると、名前は自動的に選択さ"
-"れます。"
-
msgid "Device Type"
msgstr "デバイス・タイプ"
diff --git a/po/kimchi.pot b/po/kimchi.pot
index cd0a1ac..53d32ef 100755
--- a/po/kimchi.pot
+++ b/po/kimchi.pot
@@ -1057,14 +1057,6 @@ msgstr ""
msgid "Add a Storage Device to VM"
msgstr ""
-msgid "Device Name"
-msgstr ""
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-
msgid "Device Type"
msgstr ""
diff --git a/po/ko_KR.po b/po/ko_KR.po
index 20e8a0f..0a7e8ac 100644
--- a/po/ko_KR.po
+++ b/po/ko_KR.po
@@ -1113,15 +1113,6 @@ msgstr "삭제"
msgid "Add a Storage Device to VM"
msgstr "스토리지 장치를 VM에 추가"
-msgid "Device Name"
-msgstr "장치 이름"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"장치를 식별하는 데 사용되는 이름입니다. 생략 시 이름이 자동으로 선택됩니다."
-
msgid "Device Type"
msgstr "장치 유형"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 7d18a2d..d94cd11 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1189,16 +1189,6 @@ msgstr "Remover"
msgid "Add a Storage Device to VM"
msgstr "Adicionar um dispositivo de storage à VM"
-msgid "Device Name"
-msgstr "Nome do dispositivo"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"O nome usado para identificar o dispositivo. Se omitido, um nome será "
-"escolhido automaticamente."
-
msgid "Device Type"
msgstr "Tipo do Dispositivo"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 069e083..6e542b4 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -1113,16 +1113,6 @@ msgstr "Удалить"
msgid "Add a Storage Device to VM"
msgstr "Добавить устройство хранения в VM"
-msgid "Device Name"
-msgstr "Имя устройства"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr ""
-"Имя для идентификации устройства. Если не указано, то имя будет выбрано "
-"автоматически."
-
msgid "Device Type"
msgstr "Тип устройства"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index e6f9ac7..29a615b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1076,14 +1076,6 @@ msgstr "删除"
msgid "Add a Storage Device to VM"
msgstr "为虚拟机添加一个存储设备"
-msgid "Device Name"
-msgstr "设备名称"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr "设备名称,如果留空系统会自动生成一个"
-
msgid "Device Type"
msgstr "设备类型"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 69e1c9a..e084aa7 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1060,14 +1060,6 @@ msgstr "刪除"
msgid "Add a Storage Device to VM"
msgstr "將儲存裝置新增至 VM"
-msgid "Device Name"
-msgstr "裝置名稱"
-
-msgid ""
-"The name used to identify the device. If omitted, a name will be chosen "
-"automatically."
-msgstr "用來識別裝置的名稱。如果省略,則將自動選擇一個名稱。"
-
msgid "Device Type"
msgstr "裝置類型"
diff --git a/ui/js/src/kimchi.guest_storage_add.main.js b/ui/js/src/kimchi.guest_storage_add.main.js
index a8c5acb..54ae748 100644
--- a/ui/js/src/kimchi.guest_storage_add.main.js
+++ b/ui/js/src/kimchi.guest_storage_add.main.js
@@ -28,7 +28,6 @@ kimchi.guest_storage_add_main = function() {
var storageAddForm = $('#form-guest-storage-add');
var submitButton = $('#guest-storage-button-add');
- var nameTextbox = $('input[name="dev"]', storageAddForm);
var typeTextbox = $('input[name="type"]', storageAddForm);
var pathTextbox = $('input[name="path"]', storageAddForm);
var poolTextbox = $('input[name="pool"]', storageAddForm);
@@ -139,7 +138,7 @@ kimchi.guest_storage_add_main = function() {
};
$(submitButton).prop('disabled', true);
- $.each([nameTextbox, pathTextbox, poolTextbox, volTextbox], function(i, c) {
+ $.each([pathTextbox, poolTextbox, volTextbox], function(i, c) {
$(c).prop('disabled', true);
val = $(c).val()
if (val && val != '') {
@@ -150,7 +149,7 @@ kimchi.guest_storage_add_main = function() {
validateSpecifiedForm = validator[settings['type']];
if (!validateSpecifiedForm(settings)) {
$(submitButton).prop('disabled', false);
- $.each([submitButton, nameTextbox, pathTextbox, poolTextbox, volTextbox], function(i, c) {
+ $.each([submitButton, pathTextbox, poolTextbox, volTextbox], function(i, c) {
$(c).prop('disabled', false);
});
return false;
@@ -167,7 +166,7 @@ kimchi.guest_storage_add_main = function() {
result['responseJSON']['reason'];
kimchi.message.error(errText);
- $.each([submitButton, nameTextbox, pathTextbox, poolTextbox, volTextbox], function(i, c) {
+ $.each([submitButton, pathTextbox, poolTextbox, volTextbox], function(i, c) {
$(c).prop('disabled', false);
});
$(submitButton).removeClass('loading').text(i18n['KCHVMCD6002M']);
diff --git a/ui/pages/guest-storage-add.html.tmpl b/ui/pages/guest-storage-add.html.tmpl
index ca064fc..c991f42 100644
--- a/ui/pages/guest-storage-add.html.tmpl
+++ b/ui/pages/guest-storage-add.html.tmpl
@@ -29,16 +29,7 @@
<div class="content">
<form id="form-guest-storage-add">
<section class="form-section">
- <h2>1. $_("Device Name")</h2>
- <div class="field">
- <p class="text-help">
- $_("The name used to identify the device. If omitted, a name will be chosen automatically.")
- </p>
- <input type="text" class="text" name="dev" />
- </div>
- </section>
- <section class="form-section">
- <h2>2. $_("Device Type")</h2>
+ <h2>1. $_("Device Type")</h2>
<div class="field">
<p class="text-help">
$_("The device type. Currently, \"cdrom\" and \"disk\" are supported.")
@@ -55,7 +46,7 @@
</section>
<div class="volume-section hidden">
<section class="form-section">
- <h2>4. $_("Storage Pool")</h2>
+ <h2>2. $_("Storage Pool")</h2>
<div class="field storage-field">
<p class="text-help">
$_("Storage pool which volume located in")
@@ -70,7 +61,7 @@
</div>
</section>
<section class="form-section">
- <h2>5. $_("Storage Volume")</h2>
+ <h2>3. $_("Storage Volume")</h2>
<div class="field storage-field">
<p class="text-help">
$_("Storage volume to be attached")
@@ -87,7 +78,7 @@
</div>
<div class="path-section">
<section class="form-section">
- <h2>4. $_("File Path")</h2>
+ <h2>2. $_("File Path")</h2>
<div class="field">
<p class="text-help">
$_("The ISO file path in the server for CDROM.")
--
1.8.3.1
10 years, 3 months
[PATCHv2] issue#433: Fix fake url for repository test
by lvroyce@linux.vnet.ibm.com
From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
When using apt, the base url needs to be validated,
a fake url will be rejected by kimchi, causing:
Traceback (most recent call last):
File "../kimchi/tests/test_model.py", line 1443, in test_repository_disable_enable
repo_id = inst.repositories_create(repo)
File "../kimchi/src/kimchi/model/host.py", line 406, in create
return self.host_repositories.addRepository(params)
File "../kimchi/src/kimchi/repositories.py", line 54, in addRepository
return self._pkg_mnger.addRepo(params)
File "../kimchi/src/kimchi/repositories.py", line 426, in addRepo
validate_repo_url(uri)
File "../kimchi/src/kimchi/utils.py", line 307, in validate_repo_url
raise InvalidParameter("KCHUTILS0001E", {'uri': url})
InvalidParameter: KCHUTILS0001E: Invalid URI http://br.archive.ubuntu.com/kimchi/fake
So give a valid url in testcase instead of a fake one.
Signed-off-by: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
---
tests/test_model.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/test_model.py b/tests/test_model.py
index 0a709a7..123f031 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -1290,9 +1290,9 @@ class ModelTests(unittest.TestCase):
{'mirrorlist': 'http://www.fedoraproject.org',
'gpgkey': 'file:///tmp/KEY-fedora-updates-fake-19'}}]
- deb_repos = [{'baseurl': 'http://br.archive.ubuntu.com/kimchi/fake',
+ deb_repos = [{'baseurl': 'http://br.archive.ubuntu.com/ubuntu/',
'config': {'dist': 'quantal'}},
- {'baseurl': 'http://br.archive.kimchi.com/ubuntu/fake',
+ {'baseurl': 'http://br.archive.ubuntu.com/ubuntu/',
'config': {'dist': 'quantal', 'comps': ['main']}}]
repo_type = inst.capabilities_lookup()['repo_mngt_tool']
@@ -1361,9 +1361,9 @@ class ModelTests(unittest.TestCase):
'baseurl': 'http://www.fedora.org'}
yum_new_repo = {'baseurl': 'http://www.fedoraproject.org'}
- deb_repo = {'baseurl': 'http://br.archive.ubuntu.com/kimchi/fake',
+ deb_repo = {'baseurl': 'http://br.archive.ubuntu.com/ubuntu/',
'config': {'dist': 'quantal'}}
- deb_new_repo = {'baseurl': 'http://archive.canonical.com/kimchi'}
+ deb_new_repo = {'baseurl': 'http://archive.canonical.com/dist/'}
repo_type = inst.capabilities_lookup()['repo_mngt_tool']
if repo_type == 'yum':
@@ -1395,7 +1395,7 @@ class ModelTests(unittest.TestCase):
repo_id, wrong_repo)
# update repositories with invalid mirrorlist
- for url in invalid_urls:
+ for url in invalid_urls and repo_type == 'yum':
wrong_repo = {'config': {'mirrorlist': url}}
self.assertRaises(InvalidParameter, inst.repository_update,
repo_id, wrong_repo)
@@ -1416,7 +1416,7 @@ class ModelTests(unittest.TestCase):
yum_repo = {'repo_id': 'fedora-fake',
'baseurl': 'http://www.fedora.org'}
- deb_repo = {'baseurl': 'http://br.archive.ubuntu.com/kimchi/fake',
+ deb_repo = {'baseurl': 'http://br.archive.ubuntu.com/ubuntu/',
'config': {'dist': 'quantal'}}
repo_type = inst.capabilities_lookup()['repo_mngt_tool']
--
1.8.3.2
10 years, 3 months
[PATCH V2] Bugfix#426: When no interface available, creating network popup error
by Wen Wang
From: Wen Wang <wenwang(a)linux.vnet.ibm.com>
V1 -> V2:
Add an indicator "(No interfaces found)" in "bridged" option under
Network tab when there exists no bridged interface.
This patch fix the the issue when creating a network that lack of
interface options pops up errors
Signed-off-by: Wen Wang <wenwang(a)linux.vnet.ibm.com>
---
ui/css/theme-default/network.css | 6 ++++++
ui/js/src/kimchi.network.js | 11 ++++++-----
ui/pages/tabs/network.html.tmpl | 9 +++++++--
3 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/ui/css/theme-default/network.css b/ui/css/theme-default/network.css
index 6f690ed..5d07468 100644
--- a/ui/css/theme-default/network.css
+++ b/ui/css/theme-default/network.css
@@ -170,6 +170,12 @@
height: 200px;
}
+.network-config .section-container .bridged-inline {
+ display: inline-block;
+ vertical-align: top;
+ max-width: 520px;
+}
+
.network-config .section-header {
font-weight: bold;
font-size: 14px;
diff --git a/ui/js/src/kimchi.network.js b/ui/js/src/kimchi.network.js
index 4ee7249..9e2e3aa 100644
--- a/ui/js/src/kimchi.network.js
+++ b/ui/js/src/kimchi.network.js
@@ -247,17 +247,16 @@ kimchi.openNetworkDialog = function(okCallback) {
kimchi.getInterfaces(function(result) {
var options = [];
$('#networkDestinationID').selectMenu();
- $("#networkDestinationID").on('click',function(){
- });
var nics = {};
for (var i = 0; i < result.length; i++) {
options.push({label:result[i].name,value:result[i].name});
nics[result[i].name] = result[i];
}
- $("#networkDestinationID").selectMenu("setData", options);
+ result.length>0 && $("#networkDestinationID").selectMenu("setData", options);
onChange = function() {
$("#networkDestinationLabel").text($("#networkDestinationID li:first-child").text());
- if (nics[$("#networkDestinationLabel").text()].type === "bridge") {
+ $("#networkDestinationID li:first-child").addClass("active");
+ if (result.length>0 && nics[$("#networkDestinationLabel").text()].type === "bridge") {
$("#enableVlan").prop("checked", false);
$("#enableVlan").prop("disabled", true);
$("#networkVlanID").val("");
@@ -268,8 +267,8 @@ kimchi.openNetworkDialog = function(okCallback) {
}
};
$("#networkDestinationLabel").on("change", onChange);
- onChange();
kimchi.setDefaultNetworkType(result.length!==0);
+ onChange();
});
$("#networkConfig").dialog({
title : i18n.KCHNET6003M
@@ -318,10 +317,12 @@ kimchi.setDefaultNetworkType = function(isInterfaceAvail) {
$("#networkTypeNat").prop("checked", !isInterfaceAvail);
if (!isInterfaceAvail) {
kimchi.enableBridgeOptions(false);
+ $("#networkBriDisabledLabel").prop("style","display");
} else {
$("#bridgeOptions").slideDown(100);
$("#networkVlanID").toggle(false);
$("#labelNetworkVlanID").toggle(false);
+ $("#networkBriDisabledLabel").attr("style","display:none");
}
};
diff --git a/ui/pages/tabs/network.html.tmpl b/ui/pages/tabs/network.html.tmpl
index 214fb01..b82d15f 100644
--- a/ui/pages/tabs/network.html.tmpl
+++ b/ui/pages/tabs/network.html.tmpl
@@ -65,8 +65,13 @@
<label for="networkTypeNat">$_("NAT: outbound physical network connection only")</label>
</div>
<div class="input-container">
- <input type="radio" id="networkTypeBri" name="networkType" value="bridged" />
- <label for="networkTypeBri">$_("Bridged: Virtual machines are connected to physical network directly")</label>
+ <div class="bridged-inline">
+ <input type="radio" id="networkTypeBri" name="networkType" value="bridged" />
+ </div>
+ <div class="bridged-inline">
+ <label for="networkTypeBri">$_("Bridged: Virtual machines are connected to physical network directly")</label>
+ <label id="networkBriDisabledLabel" style="display:none">$_("(No interfaces found)")</label>
+ </div>
</div>
<div id="bridgeOptions">
<div>
--
1.7.1
10 years, 3 months
[PATCH] issue#433: Fix fake url for repository test
by lvroyce@linux.vnet.ibm.com
From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
When using apt, the base url needs to be validated,
a fake url will be rejected by kimchi, causing:
Traceback (most recent call last):
File "../kimchi/tests/test_model.py", line 1443, in test_repository_disable_enable
repo_id = inst.repositories_create(repo)
File "../kimchi/src/kimchi/model/host.py", line 406, in create
return self.host_repositories.addRepository(params)
File "../kimchi/src/kimchi/repositories.py", line 54, in addRepository
return self._pkg_mnger.addRepo(params)
File "../kimchi/src/kimchi/repositories.py", line 426, in addRepo
validate_repo_url(uri)
File "../kimchi/src/kimchi/utils.py", line 307, in validate_repo_url
raise InvalidParameter("KCHUTILS0001E", {'uri': url})
InvalidParameter: KCHUTILS0001E: Invalid URI http://br.archive.ubuntu.com/kimchi/fake
So give a valid url in testcase instead of a fake one.
Signed-off-by: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
---
tests/test_model.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/test_model.py b/tests/test_model.py
index 0a709a7..81fa062 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -1290,9 +1290,9 @@ class ModelTests(unittest.TestCase):
{'mirrorlist': 'http://www.fedoraproject.org',
'gpgkey': 'file:///tmp/KEY-fedora-updates-fake-19'}}]
- deb_repos = [{'baseurl': 'http://br.archive.ubuntu.com/kimchi/fake',
+ deb_repos = [{'baseurl': 'http://br.archive.ubuntu.com/ubuntu/',
'config': {'dist': 'quantal'}},
- {'baseurl': 'http://br.archive.kimchi.com/ubuntu/fake',
+ {'baseurl': 'http://br.archive.ubuntu.com/ubuntu/',
'config': {'dist': 'quantal', 'comps': ['main']}}]
repo_type = inst.capabilities_lookup()['repo_mngt_tool']
--
1.8.3.2
10 years, 3 months