[PATCH V6 0/2] Issue#296 UI redesign when generating debug reports
by Wen Wang
From: Wen Wang <wenwang(a)linux.vnet.ibm.com>
Issue#296 debug report: kimchi UI should not waiting while generating reports
V1 -> V2:
Added 10px margin to the left of the grid data (Aline)
remove generate progross indicator when error appears during generating report
(Aline)
Wang Wen (2):
Remove the first column of debug report grid
Added the generating progress indicator
ui/css/theme-default/host.css | 14 +++++--
ui/css/theme-default/report-add.css | 9 +----
ui/images/theme-default/kimchi-loading.gif | Bin 6181 -> 6181 bytes
ui/images/theme-default/kimchi-loading15x15.gif | Bin 0 -> 1653 bytes
ui/js/src/kimchi.host.js | 6 +--
ui/js/src/kimchi.report_add_main.js | 49 ++++++++++++++++++----
ui/pages/i18n.html.tmpl | 1 +
7 files changed, 53 insertions(+), 26 deletions(-)
create mode 100644 ui/images/theme-default/kimchi-loading15x15.gif
10 years, 6 months
[PATCH V4 0/5] Switch to a traditional login flow
by shaohef@linux.vnet.ibm.com
From: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
V3 -> V4:
improve the login page.
V2 -> V3:
improve when to show timeout message
V1 -> V2:
when username or password is wrong, back to login page with an error message.
when session time out, back to login page with an error message.
ShaoHe Feng (5):
create a new login page
redirect the URL to login page when session timeout or first login
when login successfully, redirect to the last page.
login page prompts error when username or password is wrong
login page prompts error when session timeout
src/kimchi/auth.py | 53 +++++++++++++++++----
src/kimchi/config.py.in | 7 +++
src/kimchi/root.py | 38 +++++++++++----
src/kimchi/server.py | 2 +
tests/test_rest.py | 1 -
ui/images/progressing.gif | Bin 0 -> 1152 bytes
ui/js/src/kimchi.main.js | 14 ++++--
ui/pages/login.html.tmpl | 118 ++++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 209 insertions(+), 24 deletions(-)
create mode 100644 ui/images/progressing.gif
create mode 100644 ui/pages/login.html.tmpl
--
1.9.3
10 years, 6 months
[PATCH] Bugfix: List inactive network interface while editing template
by Wen Wang
From: Wen Wang <wenwang(a)linux.vnet.ibm.com>
Disable the display of inactive network interface while editing template
---
ui/js/src/kimchi.template_edit_main.js | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/ui/js/src/kimchi.template_edit_main.js b/ui/js/src/kimchi.template_edit_main.js
index cffc685..c2258ff 100644
--- a/ui/js/src/kimchi.template_edit_main.js
+++ b/ui/js/src/kimchi.template_edit_main.js
@@ -87,7 +87,8 @@ kimchi.template_edit_main = function() {
var html = '';
var tmpl = $('#tmpl-network').html();
$.each(result, function(index, network) {
- html += kimchi.substitute(tmpl, network);
+ if (result[index].state === 'active')
+ html += kimchi.substitute(tmpl, network);
});
$('#template-edit-network-list').html(html).show();
if(template.networks && template.networks.length > 0) {
--
1.7.1
10 years, 6 months
[PATCH V7 0/2]Issue#296 UI redesign when generating debug reports
by Wen Wang
From: Wen Wang <wenwang(a)linux.vnet.ibm.com>
Issue#296 debug report: kimchi UI should not waiting while generating reports
V6 -> V7
Bug fixed: Multiple generate indicator apperars when generating a debug report
V5 -> V6
Added 10px margin to the left of the grid data (Aline)
remove generate progross indicator when error appears during generating report
(Aline)
V4 -> V5
Deleted one useless line that change the loading icon's size
V3 -> V4
Changed generating logo(Hong Liang Wang)
V2 -> V3
Change the layout of the grid: Removed the frist column that has line number
Changed the progress bar layout that make the whole table more consistant.
V1 -> V2
Accroding to Yu Xin, this patch move the progress bar to the top of the
grid and use ellipsis for hiding the name that is too long for the
generating progress bar.
1) Removed the dialogue window when generating a debug report.
2) Designed an animation bar indicate user there is a report generating
during the generating progress.
3) Disable the buttons' functions in debug report area when generating a new
report in case there might be any conflict. Meanwhile user can operate
on other parts of Kimchi.
4) Enable all buttonss' functions in debug report area after generating
progress.
Wang Wen (2):
Remove the first column of debug report grid
Added the generating progress indicator
ui/css/theme-default/host.css | 14 +++++--
ui/css/theme-default/report-add.css | 9 +----
ui/images/theme-default/kimchi-loading.gif | Bin 6181 -> 6181 bytes
ui/images/theme-default/kimchi-loading15x15.gif | Bin 0 -> 1653 bytes
ui/js/src/kimchi.host.js | 6 +--
ui/js/src/kimchi.report_add_main.js | 48 ++++++++++++++++++----
ui/pages/i18n.html.tmpl | 1 +
7 files changed, 52 insertions(+), 26 deletions(-)
create mode 100644 ui/images/theme-default/kimchi-loading15x15.gif
10 years, 6 months
[PATCH 0/2] UI: eject cdrom
by lvroyce@linux.vnet.ibm.com
From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
Royce Lv (2):
Eject cdrom: Change js support for eject cdrom
Eject cdrom: Update html and css for eject cdrom
ui/css/theme-default/guest-edit.css | 40 +++++++++++++++++++++++++++++++
ui/css/theme-default/guest-media.css | 2 +-
ui/js/src/kimchi.api.js | 13 ++++++++++
ui/js/src/kimchi.guest_cdrom_edit_main.js | 1 +
ui/js/src/kimchi.guest_media_main.js | 38 ++++++++++++++++++++++++++---
ui/pages/guest-cdrom-edit.html.tmpl | 4 ++--
ui/pages/guest-media.html.tmpl | 8 +++++++
7 files changed, 100 insertions(+), 6 deletions(-)
--
1.8.3.2
10 years, 6 months
[PATCH V5] Issue#305: Redesign bridged network UI section tempstorage
by wenwang@linux.vnet.ibm.com
From: Wen Wang <wenwang(a)linux.vnet.ibm.com>
Finished align vlan fields. Redesigned the pattern of the label positions
V4 -> V5:
Redesigned the alignment of bridge option under "network" tab. Change
all themes to kimchi style (Aline)
V3 -> V4:
Address to Hongliang Wang: Assigned "for" attribute for label to associate it with text box accordingly
V2 -> V3:
Address to Hongliang Wang: Have the additional margin place removed.
v1 -> v2:
Address to Hongliang Wang: Have the unrelated lines removed & Have the display format changed from table to div.
Address to Yuxin Huo: Have the unused IDs removed.
Signed-off-by: Wen Wang <wenwang(a)linux.vnet.ibm.com>
---
ui/css/theme-default/network.css | 83 +++++++++++++++++++++++++++++++++---
ui/js/src/kimchi.network.js | 60 +++++++++++++++----------
ui/pages/storagepool-add.html.tmpl | 2 +-
ui/pages/tabs/network.html.tmpl | 39 +++++++++++------
4 files changed, 139 insertions(+), 45 deletions(-)
diff --git a/ui/css/theme-default/network.css b/ui/css/theme-default/network.css
index 67f2aa2..ba21e04 100644
--- a/ui/css/theme-default/network.css
+++ b/ui/css/theme-default/network.css
@@ -162,6 +162,10 @@
margin-top: 10px;
}
+.network-config .section-container:last-child {
+ height: 260px;
+}
+
.network-config .section-header {
font-weight: bold;
font-size: 14px;
@@ -209,17 +213,70 @@
vertical-align: top;
}
-.network-config .destination {
- margin-left: 28px;
+.network-type-wrapper-controls input[type="text"] {
+ height: 38px;
+ line-height: 38px;
+ background: #fff;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ box-shadow: 2px 2px 2px #eee inset;
+ border-top: 1px solid #bbb;
+ border-left: 1px solid #bbb;
+ padding: 0 10px;
+ margin-top: 5px;
+ width: 50px;
}
-.network-config .VLAN {
- margin-left: 28px;
+.network-type-wrapper-controls > .dropdown {
+ margin: 5px 0 0 1px;
+ width: 180px;
}
-.network-config .VLAN input[type="text"] {
- height: 25px;
- width: 60px;
+.network-type-wrapper-controls input[type="text"][disabled] {
+ color: #bbb;
+ background-color: #fafafa;
+ cursor: not-allowed;
+}
+
+.network-type-wrapper-controls span[type="text"] {
+ padding: 0 10px;
+}
+
+.bridge-option-column {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.bridge-option-column label {
+ margin-left: 42px;
+}
+
+.network-type-wrapper-controls {
+ width: 80px;
+ display: inline-block;
+ vertical-align: top;
+ padding: 5px 5px 5px 22px;
+}
+
+#enableVlan {
+ margin-left: 42px;
+ vertical-align: middle;
+}
+
+#labelEnableVlan {
+ vertical-align: middle;
+}
+
+#labelNetworkVlanID {
+ margin-left: 42px;
+ vertical-align: middle;
+ display: none;
+}
+
+#networkVlanID {
+ width: 80px;
+ vertical-align: middle;
+ display: none;
}
.network-config .input-hint-icon {
@@ -234,3 +291,15 @@
.network-config .input-hint-text {
vertical-align: top;
}
+
+.network-label {
+ background: none repeat scroll 0 0 #FFFFFF;
+ border-left: 1px solid #BBBBBB;
+ border-radius: 5px 5px 5px 5px;
+ border-top: 1px solid #BBBBBB;
+ box-shadow: 2px 2px 2px #EEEEEE inset;
+ color: #333333;
+ font-size: 13px;
+ padding: 10px;
+ width: 100%;
+}
\ No newline at end of file
diff --git a/ui/js/src/kimchi.network.js b/ui/js/src/kimchi.network.js
index 23930cd..54a6594 100644
--- a/ui/js/src/kimchi.network.js
+++ b/ui/js/src/kimchi.network.js
@@ -205,7 +205,6 @@ kimchi.initNetworkCreation = function() {
};
kimchi.initNetworkDialog = function() {
-
buttonsObj= {};
buttonsObj['id'] = "networkFormOk";
buttonsObj['text'] = i18n.KCHAPI6005M;
@@ -233,24 +232,29 @@ kimchi.initNetworkDialog = function() {
kimchi.openNetworkDialog = function(okCallback) {
kimchi.getInterfaces(function(result) {
- var options = "";
+ var options = [];
+ $('#networkDestinationID').selectMenu();
+ $("#networkDestinationID").on('click',function(){
+ });
var nics = {};
for (var i = 0; i < result.length; i++) {
- options += "<option value=" + result[i].name + ">" + result[i].name + "</option>";
+ options.push({label:result[i].name,value:result[i].name});
nics[result[i].name] = result[i];
}
- $("#networkInterface").append(options);
+ $("#networkDestinationID").selectMenu("setData", options);
onChange = function() {
- if (nics[$("#networkInterface").val()].type === "bridge") {
+ $("#networkDestinationLabel").text($("#networkDestinationID li:first-child").text());
+ if (nics[$("#networkDestinationLabel").text()].type === "bridge") {
$("#enableVlan").prop("checked", false);
$("#enableVlan").prop("disabled", true);
$("#networkVlanID").val("");
- $("#networkVlanID").prop("disabled", true);
+ $("#networkVlanID").toggle(false);
+ $("#labelNetworkVlanID").toggle(false);
} else {
- $("#enableVlan").prop("disabled", false);
+ $("#enableVlan").prop("disabled",false);
}
};
- $("#networkInterface").on("change", onChange);
+ $("#networkDestinationLabel").on("change", onChange);
onChange();
kimchi.setDefaultNetworkType(result.length!==0);
});
@@ -263,8 +267,14 @@ kimchi.openNetworkDialog = function(okCallback) {
$("#enableVlan").on("click", function() {
$("#networkVlanID").prop("disabled", !this.checked);
if (!this.checked) {
+ $("#networkVlanID").slideUp(100);
+ $("#labelNetworkVlanID").slideUp(100);
$("#networkVlanID").val("");
}
+ else {
+ $("#networkVlanID").slideDown(100);
+ $("#labelNetworkVlanID").slideDown(100);
+ }
});
$("#networkConfig").dialog("open");
};
@@ -272,16 +282,20 @@ kimchi.openNetworkDialog = function(okCallback) {
kimchi.enableBridgeOptions = function(enable) {
if (!enable) {
$("#enableVlan").prop("checked", false);
- $("#networkVlanID").prop("disabled", true);
+ $("#networkVlanID").toggle(false);
+ $("#labelNetworkVlanID").toggle(false);
$("#networkVlanID").val("");
- $("#networkInterface").val("");
- $("#bridge-options").slideUp(100);
- } else if (!$("#networkInterface").val()){
- $("#networkInterface").prop("selectedIndex", 0);
- $("#bridge-options").slideDown(100);
+ $("#networkDestinationLabel").text("");
+ $("#bridgeOptions").slideUp(100);
+ } else if (!$("#networkDestinationLabel").text()){
+ $("#networkDestinationLabel").text($("#networkDestinationID li:first-child").text());
+ $("#bridgeOptions").slideDown(100);
+ $("#networkVlanID").toggle(false);
+ $("#labelNetworkVlanID").toggle(false);
}
};
+
kimchi.setDefaultNetworkType = function(isInterfaceAvail) {
$("#networkTypeBri").prop("checked", isInterfaceAvail);
$("#networkTypeBri").prop("disabled", !isInterfaceAvail);
@@ -289,7 +303,9 @@ kimchi.setDefaultNetworkType = function(isInterfaceAvail) {
if (!isInterfaceAvail) {
kimchi.enableBridgeOptions(false);
} else {
- $("#bridge-options").slideDown(100);
+ $("#bridgeOptions").slideDown(100);
+ $("#networkVlanID").toggle(false);
+ $("#labelNetworkVlanID").toggle(false);
}
};
@@ -299,41 +315,37 @@ kimchi.getNetworkDialogValues = function() {
type : $("input:radio[name=networkType]:checked").val()
};
if (network.type === kimchi.NETWORK_TYPE_BRIDGE) {
- network.interface = $("#networkInterface").val();
+ network.interface = $("#networkDestinationLabel").text();
network.vlan_id = parseInt($("#networkVlanID").val());
}
return network;
};
kimchi.cleanNetworkDialog = function() {
- $("#networkInterface").empty();
$("input:text", "#networkConfig").val(null).removeClass("invalid-field");
$("#networkTypeIso").prop("checked", false);
$("#networkTypeNat").prop("checked", false);
$("#networkTypeBri").prop("checked", false);
- $("#networkInterface").prop("disabled", false);
- $("#networkInterface option").removeAttr("selected").find(":first").attr("selected", "selected");
+ $("#networkDestinationLabel").text($("#networkDestinationID li:first-child").text());
$("#networkFormOk").off("click");
$("#networkFormOk").button("disable");
- $("#networkVlanID").prop("disabled", true);
+ $("#networkVlanID").toggle(false);
+ $("#labelNetworkVlanID").toggle(false);
$("#enableVlan").prop("checked", false);
-};
+};
kimchi.setupNetworkFormEvent = function() {
$("#networkName").on("keyup", function(event) {
$("#networkName").toggleClass("invalid-field", !$("#networkName").val().match(/^[a-zA-Z0-9_]+$/));
kimchi.updateNetworkFormButton();
});
$("#networkTypeIso").on("click", function(event) {
- $("#networkInterface").prop("disabled", true);
kimchi.enableBridgeOptions(false);
});
$("#networkTypeNat").on("click", function(event) {
- $("#networkInterface").prop("disabled", true);
kimchi.enableBridgeOptions(false);
});
$("#networkTypeBri").on("click", function(event) {
- $("#networkInterface").prop("disabled", false);
kimchi.enableBridgeOptions(true);
});
};
diff --git a/ui/pages/storagepool-add.html.tmpl b/ui/pages/storagepool-add.html.tmpl
index ba85e6e..e6b1fd6 100644
--- a/ui/pages/storagepool-add.html.tmpl
+++ b/ui/pages/storagepool-add.html.tmpl
@@ -29,7 +29,7 @@
<div class="close">X</div>
</header>
<div class="content">
- <form id="form-pool-add">
+ <form id="form-pool-addd">
<section class="form-section">
<h2>1. $_("Storage Pool Name")</h2>
<div class="field">
diff --git a/ui/pages/tabs/network.html.tmpl b/ui/pages/tabs/network.html.tmpl
index e49b257..cb9fa5b 100644
--- a/ui/pages/tabs/network.html.tmpl
+++ b/ui/pages/tabs/network.html.tmpl
@@ -46,7 +46,7 @@
<div class="section-container">
<div class="section-header">1. $_("Network Name")</div>
<div class="section-content">
- <input type="text" id="networkName">
+ <input type="text" id="networkName" class="network-label"/>
<div class="input-hint">
<span class="ui-icon ui-icon-info input-hint-icon"></span>
<span class="input-hint-text">$_("Alphanumeric and '_' characters only.")</span>
@@ -57,27 +57,40 @@
<div class="section-header">2. $_("Network Type")</div>
<div class="section-content">
<div class="input-container">
- <input type="radio" id="networkTypeIso" name="networkType" value="isolated">
+ <input type="radio" id="networkTypeIso" name="networkType" value="isolated" />
<label for="networkTypeIso">$_("Isolated: no physical network connection")</label>
</div>
<div class="input-container">
- <input type="radio" id="networkTypeNat" name="networkType" value="nat">
+ <input type="radio" id="networkTypeNat" name="networkType" value="nat" />
<label for="networkTypeNat">$_("NAT: outbound physical network connection only")</label>
</div>
<div class="input-container">
- <input type="radio" id="networkTypeBri" name="networkType" value="bridged">
+ <input type="radio" id="networkTypeBri" name="networkType" value="bridged" />
<label for="networkTypeBri">$_("Bridged: Virtual machines are connected to physical network directly")</label>
</div>
- <div id="bridge-options">
- <div class="destination">
- <label for="networkInterface">$_("Destination"): </label>
- <select id="networkInterface"></select>
+ <div id="bridgeOptions">
+ <div>
+ <div class="bridge-option-column">
+ <label for="networkInterface">$_("Destination"): </label>
+ </div>
+ <div class="bridge-option-column">
+ <div class="network-type-wrapper-controls">
+ <div id ="networkDestinationID">
+ <input id="networkDestinationInputId" name="type" type="hidden"/>
+ <span id="networkDestinationLabel" type="text"></span><span class="arrow"></span>
+ <div>
+ <ul id="networkInterface"></ul>
+ </div>
+ </div>
+ </div>
+ </div>
</div>
- <div class="VLAN">
- <label for="enableVlan">$_("Enable VLAN"): </label>
- <input id="enableVlan" type="checkbox" value=""/>
- <label for="networkVlanID">$_("VLAN ID"): </label>
- <input type="text" id="networkVlanID" disabled>
+ <div>
+ <input id="enableVlan" type="checkbox" value="" />
+ <label for="enableVlan" id="labelEnableVlan">$_("Enable VLAN"): </label>
+ </div>
+ <label for="networkVlanID" id="labelNetworkVlanID">$_("VLAN ID"): </label>
+ <input type="text" id="networkVlanID" class="network-label"/>
</div>
</div>
</div>
--
1.7.1
10 years, 6 months
[PATCH V2] Add Ubuntu as modern distro to Power guests.
by Paulo Vital
Set Ubuntu 14.04 as base for modern Power guests.
Signed-off-by: Paulo Vital <pvital(a)linux.vnet.ibm.com>
---
src/kimchi/osinfo.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py
index cfe9972..093feca 100644
--- a/src/kimchi/osinfo.py
+++ b/src/kimchi/osinfo.py
@@ -59,7 +59,8 @@ template_specs = {'x86': {'old': dict(common_spec, disk_bus='ide',
modern_version_bases = {'x86': {'debian': '6.0', 'ubuntu': '7.10',
'opensuse': '10.3', 'centos': '5.3',
'rhel': '6.0', 'fedora': '16', 'gentoo': '0'},
- 'power': {'rhel': '7.0', 'fedora': '19'}}
+ 'power': {'rhel': '7.0', 'fedora': '19',
+ 'ubuntu': '14.04'}}
icon_available_distros = [icon[5:-4] for icon in glob.glob1('%s/images/'
% paths.ui_dir, 'icon-*.png')]
--
1.8.3.1
10 years, 6 months
[PATCH V3 0/5] Switch to a traditional login flow
by shaohef@linux.vnet.ibm.com
From: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
V2 -> V3:
improve when to show timeout message
V1 -> V2:
when username or password is wrong, back to login page with an error message.
when session time out, back to login page with an error message.
ShaoHe Feng (5):
create a new login page
redirect the URL to login page when session timeout or first login
when login successfully, redirect to the last page.
login page prompts error when username or password is wrong
login page prompts error when session timeout
src/kimchi/auth.py | 51 +++++++++--
src/kimchi/config.py.in | 7 ++
src/kimchi/root.py | 38 ++++++--
src/kimchi/server.py | 2 +
ui/images/progressing.gif | Bin 0 -> 1152 bytes
ui/js/src/kimchi.main.js | 6 +-
ui/pages/login.html.tmpl | 228 ++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 310 insertions(+), 22 deletions(-)
create mode 100644 ui/images/progressing.gif
create mode 100644 ui/pages/login.html.tmpl
--
1.9.3
10 years, 6 months
[PATCH 0/5] CDROM eject support
by lvroyce@linux.vnet.ibm.com
From: Royce Lv <lvroyce(a)linux.vnet.ibm.com>
This patchset added a new api of vm storage eject,
also fix previous vmstorage not work for persistent configuration error.
Royce Lv (5):
Fix wrong create/update/delete flags for vmstorages
Adding test case for updating flags
Change doc and controllor to support cdrom eject
Update model to support cdrom eject
Add testcase for cdrom eject
docs/API.md | 3 +++
src/kimchi/control/vm/storages.py | 1 +
src/kimchi/model/vmstorages.py | 40 ++++++++++++++++++++++++++-------------
tests/test_model.py | 10 ++++++++++
4 files changed, 41 insertions(+), 13 deletions(-)
--
1.8.3.2
10 years, 6 months
[PATCH V6 0/8] Issue #342: load i18n.html of the plugin
by shaohef@linux.vnet.ibm.com
From: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
V5 -> V6:
skip test, when disable plugin.
V4 -> V5:
let autoconf generate sample.conf
V3 -> V4:
rebase
V2 -> V3:
change "enable-plugins" to "enable-sample"
remove nls
improve the Portuguese translation.
V1 -> V2:
The improvement concept here is to directly generate JSON on the server
and assign it to the i18n variable, rather than inserting nodes into the DOM.
Plugins would use a plugin1.i18n= structure to keep plugin strings from
colliding with each other, or with the kimchi variables.
ShaoHe Feng (7):
Update root.py to make Cheetah render the JSON template.
Update the i18n tmpl to produce JSON
Add JS API for fetching i18n JSON
Issue #342: load i18n.html of the plugin
add an optional to toggle the sample plugin
generate the translation files for plugins/sample
skip plugins test, when sample plugin is not enabled
Zhou Zheng Sheng (1):
Add Minimal UI Page for the Sample Plugin
configure.ac | 17 ++++
plugins/sample/Makefile.am | 11 +-
plugins/sample/__init__.py | 3 +-
plugins/sample/config.status | 1 +
plugins/sample/po/LINGUAS | 1 +
plugins/sample/po/Makefile.in.in | 1 +
plugins/sample/po/Makevars | 1 +
plugins/sample/po/POTFILES.in | 2 +
plugins/sample/po/en_US.po | 21 ++++
plugins/sample/po/gen-pot | 1 +
plugins/sample/po/pt_BR.po | 24 +++++
plugins/sample/po/zh_CN.po | 24 +++++
plugins/sample/sample.conf | 7 --
plugins/sample/sample.conf.in | 12 +++
plugins/sample/ui/config/tab-ext.xml | 8 +-
plugins/sample/ui/pages/i18n.json.tmpl | 9 ++
plugins/sample/ui/pages/tab.html.tmpl | 6 ++
src/kimchi/root.py | 5 +
src/kimchi/template.py | 34 ++++---
tests/test_plugin.py | 5 +-
ui/js/src/kimchi.api.js | 18 +++-
ui/js/src/kimchi.main.js | 24 ++++-
ui/pages/i18n.html.tmpl | 178 ---------------------------------
ui/pages/i18n.json.tmpl | 165 ++++++++++++++++++++++++++++++
24 files changed, 364 insertions(+), 214 deletions(-)
create mode 120000 plugins/sample/config.status
create mode 120000 plugins/sample/po/LINGUAS
create mode 120000 plugins/sample/po/Makefile.in.in
create mode 120000 plugins/sample/po/Makevars
create mode 100644 plugins/sample/po/POTFILES.in
create mode 100644 plugins/sample/po/en_US.po
create mode 120000 plugins/sample/po/gen-pot
create mode 100644 plugins/sample/po/pt_BR.po
create mode 100644 plugins/sample/po/zh_CN.po
delete mode 100644 plugins/sample/sample.conf
create mode 100644 plugins/sample/sample.conf.in
create mode 100644 plugins/sample/ui/pages/i18n.json.tmpl
create mode 100644 plugins/sample/ui/pages/tab.html.tmpl
delete mode 100644 ui/pages/i18n.html.tmpl
create mode 100644 ui/pages/i18n.json.tmpl
--
1.9.3
10 years, 6 months