[PATCH] [Kimchi] Bugfix 778: Add volume freezes screen
by Socorro Stoppler
This patch fixes the screen freezing when adding a storage volume
via upload file. The problem was that the item being retrieved
from the array was the wrong one since the path has changed.
In addition, the modal window is now being closed rather than hidden.
That is the reason why the screen seems to be frozen.
Socorro Stoppler (1):
Fix screen freezing when upload file for storage volume
ui/js/src/kimchi.storage_main.js | 6 +++---
ui/js/src/kimchi.storagepool_add_volume_main.js | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
--
1.9.1
9 years
[PATCH v3] [Kimchi 0/2] Issue 793: Disable Libvirt hot-plugging support for multi-function adapters
by Jose Ricardo Ziviani
v3:
- Change API.md
v2:
- Apply code review
Libvirt does not support multi-function devices hot-plug (but it will). So this patchset will disable hot-plugging for such devices.
Jose Ricardo Ziviani (2):
Add multi-function field in PCI information
Disable hotplugging buttons of multi-function devices
docs/API.md | 1 +
model/host.py | 33 ++++++++++++++++++++++++++++++++-
model/vmhostdevs.py | 3 ++-
ui/js/src/kimchi.guest_edit_main.js | 3 +++
4 files changed, 38 insertions(+), 2 deletions(-)
--
1.9.1
9 years
[PATCH] [Kimchi 0/2 V2] [PATCH] Multiple fixes: page redirection + auth
by Aline Manera
V1 -> V2:
- Fix build
Aline Manera (2):
Expose HTML tabs files in a specific /tabs URI
Remove required authentication from /
configure.ac | 1 +
kimchi.conf | 1 -
tests/test_config.py.in | 3 +-
ui/config/tab-ext.xml | 8 +-
ui/pages/Makefile.am | 2 +-
ui/pages/guests.html.tmpl | 104 --------------------
ui/pages/network.html.tmpl | 105 --------------------
ui/pages/storage.html.tmpl | 198 --------------------------------------
ui/pages/tabs/Makefile.am | 20 ++++
ui/pages/tabs/guests.html.tmpl | 104 ++++++++++++++++++++
ui/pages/tabs/network.html.tmpl | 105 ++++++++++++++++++++
ui/pages/tabs/storage.html.tmpl | 198 ++++++++++++++++++++++++++++++++++++++
ui/pages/tabs/templates.html.tmpl | 102 ++++++++++++++++++++
ui/pages/templates.html.tmpl | 102 --------------------
14 files changed, 536 insertions(+), 517 deletions(-)
delete mode 100644 ui/pages/guests.html.tmpl
delete mode 100644 ui/pages/network.html.tmpl
delete mode 100644 ui/pages/storage.html.tmpl
create mode 100644 ui/pages/tabs/Makefile.am
create mode 100644 ui/pages/tabs/guests.html.tmpl
create mode 100644 ui/pages/tabs/network.html.tmpl
create mode 100644 ui/pages/tabs/storage.html.tmpl
create mode 100644 ui/pages/tabs/templates.html.tmpl
delete mode 100644 ui/pages/templates.html.tmpl
--
2.5.0
9 years
[PATCH] [Kimchi 0/2] Multiple fixes: page redirection + auth
by Aline Manera
Depends on Wok patchset: [PATCH] [Wok 0/3] Multiple fixes
Aline Manera (2):
Expose HTML tabs files in a specific /tabs URI
Remove required authentication from /
configure.ac | 1 +
kimchi.conf | 1 -
tests/test_config.py.in | 3 +-
ui/config/tab-ext.xml | 8 +-
ui/pages/Makefile.am | 2 +-
ui/pages/guests.html.tmpl | 104 --------------------
ui/pages/network.html.tmpl | 105 --------------------
ui/pages/storage.html.tmpl | 198 --------------------------------------
ui/pages/tabs/Makefile.am | 20 ++++
ui/pages/tabs/guests.html.tmpl | 104 ++++++++++++++++++++
ui/pages/tabs/network.html.tmpl | 105 ++++++++++++++++++++
ui/pages/tabs/storage.html.tmpl | 198 ++++++++++++++++++++++++++++++++++++++
ui/pages/tabs/templates.html.tmpl | 102 ++++++++++++++++++++
ui/pages/templates.html.tmpl | 102 --------------------
14 files changed, 536 insertions(+), 517 deletions(-)
delete mode 100644 ui/pages/guests.html.tmpl
delete mode 100644 ui/pages/network.html.tmpl
delete mode 100644 ui/pages/storage.html.tmpl
create mode 100644 ui/pages/tabs/Makefile.am
create mode 100644 ui/pages/tabs/guests.html.tmpl
create mode 100644 ui/pages/tabs/network.html.tmpl
create mode 100644 ui/pages/tabs/storage.html.tmpl
create mode 100644 ui/pages/tabs/templates.html.tmpl
delete mode 100644 ui/pages/templates.html.tmpl
--
2.5.0
9 years
[PATCH 1/1] Library files for bootgrid plugin
by atreyee@linux.vnet.ibm.com
From: Atreyee Mukhopadhyay <atreyee(a)linux.vnet.ibm.com>
Bootgrid is grid implemention for bootstrap and jquery with sorting,
multiselect,searching featuers.
---
configure.ac | 4 ++++
ui/libs/Makefile.am | 2 +-
ui/libs/jquery-bootgrid/LICENSE | 17 +++++++++++++++++
ui/libs/jquery-bootgrid/Makefile.am | 20 ++++++++++++++++++++
ui/libs/jquery-bootgrid/dist/Makefile.am | 20 ++++++++++++++++++++
ui/libs/jquery-bootgrid/dist/css/Makefile.am | 22 ++++++++++++++++++++++
.../dist/css/jquery.bootgrid.min.css | 5 +++++
ui/libs/jquery-bootgrid/dist/js/Makefile.am | 22 ++++++++++++++++++++++
.../jquery-bootgrid/dist/js/jquery.bootgrid.min.js | 6 ++++++
ui/pages/wok-ui.html.tmpl | 2 ++
10 files changed, 119 insertions(+), 1 deletion(-)
create mode 100644 ui/libs/jquery-bootgrid/LICENSE
create mode 100644 ui/libs/jquery-bootgrid/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/css/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css
create mode 100644 ui/libs/jquery-bootgrid/dist/js/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js
diff --git a/configure.ac b/configure.ac
index dd3955e..f88fe04 100644
--- a/configure.ac
+++ b/configure.ac
@@ -125,6 +125,10 @@ AC_CONFIG_FILES([
ui/libs/bootstrap-select/dist/Makefile
ui/libs/bootstrap-select/dist/js/Makefile
ui/libs/bootstrap-select/dist/css/Makefile
+ ui/libs/jquery-bootgrid/Makefile
+ ui/libs/jquery-bootgrid/dist/Makefile
+ ui/libs/jquery-bootgrid/dist/js/Makefile
+ ui/libs/jquery-bootgrid/dist/css/Makefile
ui/libs/es5-shim/Makefile
ui/libs/jquery/Makefile
ui/libs/jquery-i18n/Makefile
diff --git a/ui/libs/Makefile.am b/ui/libs/Makefile.am
index d746df4..085e1f0 100644
--- a/ui/libs/Makefile.am
+++ b/ui/libs/Makefile.am
@@ -17,4 +17,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-SUBDIRS = bootstrap jquery jquery-ui bootstrap-select es5-shim jquery-i18n
+SUBDIRS = bootstrap jquery jquery-ui bootstrap-select jquery-bootgrid es5-shim jquery-i18n
diff --git a/ui/libs/jquery-bootgrid/LICENSE b/ui/libs/jquery-bootgrid/LICENSE
new file mode 100644
index 0000000..0e3a7e1
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/LICENSE
@@ -0,0 +1,17 @@
+The MIT License (MIT)
+Copyright (c) 2014-2015 Rafael J. Staib
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/ui/libs/jquery-bootgrid/Makefile.am b/ui/libs/jquery-bootgrid/Makefile.am
new file mode 100644
index 0000000..858b32a
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/Makefile.am
@@ -0,0 +1,20 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# Code derived from Project Kimchi
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SUBDIRS = dist
diff --git a/ui/libs/jquery-bootgrid/dist/Makefile.am b/ui/libs/jquery-bootgrid/dist/Makefile.am
new file mode 100644
index 0000000..bb579e0
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/dist/Makefile.am
@@ -0,0 +1,20 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# Code derived from Project Kimchi
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SUBDIRS = css js
diff --git a/ui/libs/jquery-bootgrid/dist/css/Makefile.am b/ui/libs/jquery-bootgrid/dist/css/Makefile.am
new file mode 100644
index 0000000..d5ed1c2
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/dist/css/Makefile.am
@@ -0,0 +1,22 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# Code derived from Project Kimchi
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jquerybootgridcssdir = $(datadir)/wok/ui/libs/jquery-bootgrid/dist/css
+
+dist_jquerybootgridcss_DATA = $(wildcard *.css) $(NULL)
diff --git a/ui/libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css b/ui/libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css
new file mode 100644
index 0000000..4782a15
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css
@@ -0,0 +1,5 @@
+/*!
+ * jQuery Bootgrid v1.3.1 - 09/11/2015
+ * Copyright (c) 2014-2015 Rafael Staib (http://www.jquery-bootgrid.com)
+ * Licensed under MIT http://www.opensource.org/licenses/MIT
+ */.bootgrid-footer,.bootgrid-header{margin:15px 0}.bootgrid-footer a,.bootgrid-header a{outline:0}.bootgrid-footer .search,.bootgrid-header .search{display:inline-block;margin:0 20px 0 0;vertical-align:middle;width:180px}.bootgrid-footer .search .glyphicon,.bootgrid-header .search .glyphicon{top:0}.bootgrid-footer .search .fa,.bootgrid-header .search .fa{display:table-cell}.bootgrid-footer .search .search-field::-ms-clear,.bootgrid-footer .search.search-field::-ms-clear,.bootgrid-header .search .search-field::-ms-clear,.bootgrid-header .search.search-field::-ms-clear{display:none}.bootgrid-footer .pagination,.bootgrid-header .pagination{margin:0!important}.bootgrid-footer .infoBar,.bootgrid-header .actionBar{text-align:right}.bootgrid-footer .infoBar .btn-group>.btn-group .dropdown-menu,.bootgrid-header .actionBar .btn-group>.btn-group .dropdown-menu{text-align:left}.bootgrid-footer .infoBar .btn-group>.btn-group .dropdown-menu .dropdown-item,.bootgrid-header .actionBar .b!
tn-group>.btn-group .dropdown-menu .dropdown-item{cursor:pointer;display:block;margin:0;padding:3px 20px;white-space:nowrap}.bootgrid-footer .infoBar .btn-group>.btn-group .dropdown-menu .dropdown-item:focus,.bootgrid-footer .infoBar .btn-group>.btn-group .dropdown-menu .dropdown-item:hover,.bootgrid-header .actionBar .btn-group>.btn-group .dropdown-menu .dropdown-item:focus,.bootgrid-header .actionBar .btn-group>.btn-group .dropdown-menu .dropdown-item:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.bootgrid-footer .infoBar .btn-group>.btn-group .dropdown-menu .dropdown-item .dropdown-item-checkbox,.bootgrid-footer .infoBar .btn-group>.btn-group .dropdown-menu .dropdown-item.dropdown-item-checkbox,.bootgrid-header .actionBar .btn-group>.btn-group .dropdown-menu .dropdown-item .dropdown-item-checkbox,.bootgrid-header .actionBar .btn-group>.btn-group .dropdown-menu .dropdown-item.dropdown-item-checkbox{margin:0 2px 4px 0;vertical-align:middle}.bootgrid-foo!
ter .infoBar .btn-group>.btn-group .dropdown-menu .dropdown-item.disabled,.bootgrid-header .actionBar .btn-group>.btn-group .dropdown-menu .dropdown-item.disabled{cursor:not-allowed}.bootgrid-table{table-layout:fixed}.bootgrid-table a{outline:0}.bootgrid-table th>.column-header-anchor{color:#333;cursor:not-allowed;display:block;position:relative;text-decoration:none}.bootgrid-table th>.column-header-anchor.sortable{cursor:pointer}.bootgrid-table th>.column-header-anchor>.text{display:block;margin:0 16px 0 0;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.bootgrid-table th>.column-header-anchor>.icon{display:block;position:absolute;right:0;top:2px}.bootgrid-table th:active,.bootgrid-table th:hover{background:#fafafa}.bootgrid-table td{overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.bootgrid-table td.loading,.bootgrid-table td.no-results{background:#!
fff;text-align:center}.bootgrid-table td.select-cell,.bootgrid-table th!
.select-cell{text-align:center;width:30px}.bootgrid-table td.select-cell .select-box,.bootgrid-table th.select-cell .select-box{margin:0;outline:0}.table-responsive .bootgrid-table{table-layout:inherit!important}.table-responsive .bootgrid-table td,.table-responsive .bootgrid-table th>.column-header-anchor>.text{overflow:inherit!important;-ms-text-overflow:inherit!important;-o-text-overflow:inherit!important;text-overflow:inherit!important;white-space:inherit!important}
\ No newline at end of file
diff --git a/ui/libs/jquery-bootgrid/dist/js/Makefile.am b/ui/libs/jquery-bootgrid/dist/js/Makefile.am
new file mode 100644
index 0000000..86ad534
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/dist/js/Makefile.am
@@ -0,0 +1,22 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# Code derived from Project Kimchi
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+jquerybootgridjsdir = $(datadir)/wok/ui/libs/jquery-bootgrid/dist/js
+
+dist_jquerybootgridjs_DATA = $(wildcard *.js) $(NULL)
diff --git a/ui/libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js b/ui/libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js
new file mode 100644
index 0000000..9c14ff3
--- /dev/null
+++ b/ui/libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js
@@ -0,0 +1,6 @@
+/*!
+ * jQuery Bootgrid v1.3.1 - 09/11/2015
+ * Copyright (c) 2014-2015 Rafael Staib (http://www.jquery-bootgrid.com)
+ * Licensed under MIT http://www.opensource.org/licenses/MIT
+ */
+!function(a,b,c){"use strict";function d(a){function b(b){return c.identifier&&b[c.identifier]===a[c.identifier]}var c=this;return this.rows.contains(b)?!1:(this.rows.push(a),!0)}function e(b){var c=this.footer?this.footer.find(b):a(),d=this.header?this.header.find(b):a();return a.merge(c,d)}function f(b){return b?a.extend({},this.cachedParams,{ctx:b}):this.cachedParams}function g(){var b={current:this.current,rowCount:this.rowCount,sort:this.sortDictionary,searchPhrase:this.searchPhrase},c=this.options.post;return c=a.isFunction(c)?c():c,this.options.requestHandler(a.extend(!0,b,c))}function h(b){return"."+a.trim(b).replace(/\s+/gm,".")}function i(){var b=this.options.url;return a.isFunction(b)?b():b}function j(){this.element.trigger("initialize"+H),m.call(this),this.selection=this.options.selection&&null!=this.identifier,o.call(this),q.call(this),C.call(this),A.call(this),r.call(this),n.call(this),this.element.trigger("initialized"+H)}function k(a){this.options.highlightR!
ows}function l(a){return a.visible}function m(){var b=this,c=this.element.find("thead > tr").first(),d=!1;c.children().each(function(){var c=a(this),e=c.data(),f={id:e.columnId,identifier:null==b.identifier&&e.identifier||!1,converter:b.options.converters[e.converter||e.type]||b.options.converters.string,text:c.text(),align:e.align||"left",headerAlign:e.headerAlign||"left",cssClass:e.cssClass||"",headerCssClass:e.headerCssClass||"",formatter:b.options.formatters[e.formatter]||null,order:d||"asc"!==e.order&&"desc"!==e.order?null:e.order,searchable:!(e.searchable===!1),sortable:!(e.sortable===!1),visible:!(e.visible===!1),visibleInSelection:!(e.visibleInSelection===!1),width:a.isNumeric(e.width)?e.width+"px":"string"==typeof e.width?e.width:null};b.columns.push(f),null!=f.order&&(b.sortDictionary[f.id]=f.order),f.identifier&&(b.identifier=f.id,b.converter=f.converter),b.options.multiSort||null===f.order||(d=!0)})}function n(){function c(a){for(var b,c=new RegExp(e.searchPhras!
e,e.options.caseSensitive?"g":"gi"),d=0;d<e.columns.length;d++)if(b=e.columns[d],b.searchable&&b.visible&&b.converter.to(a[b.id]).search(c)>-1)return!0;return!1}function d(a,b){e.currentRows=a,p.call(e,b),e.options.keepSelection||(e.selectedRows=[]),y.call(e,a),t.call(e),v.call(e),e.element._bgBusyAria(!1).trigger("loaded"+H)}var e=this;if(this.element._bgBusyAria(!0).trigger("load"+H),F.call(this),this.options.ajax){var f=g.call(this),h=i.call(this);if(null==h||"string"!=typeof h||0===h.length)throw new Error("Url setting must be a none empty string or a function that returns one.");this.xqr&&this.xqr.abort();var j={url:h,data:f,success:function(b){e.xqr=null,"string"==typeof b&&(b=a.parseJSON(b)),b=e.options.responseHandler(b),e.current=b.current,d(b.rows,b.total)},error:function(a,b,c){e.xqr=null,"abort"!==b&&(u.call(e),e.element._bgBusyAria(!1).trigger("loaded"+H))}};j=a.extend(this.options.ajaxSettings,j),this.xqr=a.ajax(j)}else{var k=this.searchPhrase.length>0?this.ro!
ws.where(c):this.rows,l=k.length;-1!==this.rowCount&&(k=k.page(this.cur!
rent,this.rowCount)),b.setTimeout(function(){d(k,l)},10)}}function o(){if(!this.options.ajax){var b=this,c=this.element.find("tbody > tr");c.each(function(){var c=a(this),e=c.children("td"),f={};a.each(b.columns,function(a,b){f[b.id]=b.converter.from(e.eq(a).text())}),d.call(b,f)}),p.call(this,this.rows.length),G.call(this)}}function p(a){this.total=a,this.totalPages=-1===this.rowCount?1:Math.ceil(this.total/this.rowCount)}function q(){var b=this.options.templates,c=this.element.parent().hasClass(this.options.css.responsiveTable)?this.element.parent():this.element;this.element.addClass(this.options.css.table),0===this.element.children("tbody").length&&this.element.append(b.body),1&this.options.navigation&&(this.header=a(b.header.resolve(f.call(this,{id:this.element._bgId()+"-header"}))),c.before(this.header)),2&this.options.navigation&&(this.footer=a(b.footer.resolve(f.call(this,{id:this.element._bgId()+"-footer"}))),c.after(this.footer))}function r(){if(0!==this.options.na!
vigation){var b=this.options.css,c=h(b.actions),d=e.call(this,c);if(d.length>0){var g=this,i=this.options.templates,j=a(i.actions.resolve(f.call(this)));if(this.options.ajax){var k=i.icon.resolve(f.call(this,{iconCss:b.iconRefresh})),l=a(i.actionButton.resolve(f.call(this,{content:k,text:this.options.labels.refresh}))).on("click"+H,function(a){a.stopPropagation(),g.current=1,n.call(g)});j.append(l)}x.call(this,j),s.call(this,j),E.call(this,d,j)}}}function s(b){if(this.options.columnSelection&&this.columns.length>1){var c=this,d=this.options.css,e=this.options.templates,g=e.icon.resolve(f.call(this,{iconCss:d.iconColumns})),i=a(e.actionDropDown.resolve(f.call(this,{content:g}))),j=h(d.dropDownItem),k=h(d.dropDownItemCheckbox),m=h(d.dropDownMenuItems);a.each(this.columns,function(b,g){if(g.visibleInSelection){var o=a(e.actionDropDownCheckboxItem.resolve(f.call(c,{name:g.id,label:g.text,checked:g.visible}))).on("click"+H,j,function(b){b.stopPropagation();var d=a(this),e=d.find!
(k);if(!e.prop("disabled")){g.visible=e.prop("checked");var f=c.columns!
.where(l).length>1;d.parents(m).find(j+":has("+k+":checked)")._bgEnableAria(f).find(k)._bgEnableField(f),c.element.find("tbody").empty(),C.call(c),n.call(c)}});i.find(h(d.dropDownMenuItems)).append(o)}}),b.append(i)}}function t(){if(0!==this.options.navigation){var b=h(this.options.css.infos),c=e.call(this,b);if(c.length>0){var d=this.current*this.rowCount,g=a(this.options.templates.infos.resolve(f.call(this,{end:0===this.total||-1===d||d>this.total?this.total:d,start:0===this.total?0:d-this.rowCount+1,total:this.total})));E.call(this,c,g)}}}function u(){var a=this.element.children("tbody").first(),b=this.options.templates,c=this.columns.where(l).length;this.selection&&(c+=1),a.html(b.noResults.resolve(f.call(this,{columns:c})))}function v(){if(0!==this.options.navigation){var b=h(this.options.css.pagination),c=e.call(this,b)._bgShowAria(-1!==this.rowCount);if(-1!==this.rowCount&&c.length>0){var d=this.options.templates,g=this.current,i=this.totalPages,j=a(d.pagination.reso!
lve(f.call(this))),k=i-g,l=-1*(this.options.padding-g),m=k>=this.options.padding?Math.max(l,1):Math.max(l-this.options.padding+k,1),n=2*this.options.padding+1,o=i>=n?n:i;w.call(this,j,"first","«","first")._bgEnableAria(g>1),w.call(this,j,"prev","<","prev")._bgEnableAria(g>1);for(var p=0;o>p;p++){var q=p+m;w.call(this,j,q,q,"page-"+q)._bgEnableAria()._bgSelectAria(q===g)}0===o&&w.call(this,j,1,1,"page-1")._bgEnableAria(!1)._bgSelectAria(),w.call(this,j,"next",">","next")._bgEnableAria(i>g),w.call(this,j,"last","»","last")._bgEnableAria(i>g),E.call(this,c,j)}}}function w(b,c,d,e){var g=this,i=this.options.templates,j=this.options.css,k=f.call(this,{css:e,text:d,page:c}),l=a(i.paginationItem.resolve(k)).on("click"+H,h(j.paginationButton),function(b){b.stopPropagation(),b.preventDefault();var c=a(this),d=c.parent();if(!d.hasClass("active")&&!d.hasClass("disabled")){var e={first:1,prev:g.current-1,next:g.current+1,last:g.totalPages},f=c.data("page");g.current=e!
[f]||f,n.call(g)}c.trigger("blur")});return b.append(l),l}function x(b)!
{function c(a){return-1===a?d.options.labels.all:a}var d=this,e=this.options.rowCount;if(a.isArray(e)){var g=this.options.css,i=this.options.templates,j=a(i.actionDropDown.resolve(f.call(this,{content:c(this.rowCount)}))),k=h(g.dropDownMenu),l=h(g.dropDownMenuText),m=h(g.dropDownMenuItems),o=h(g.dropDownItemButton);a.each(e,function(b,e){var g=a(i.actionDropDownItem.resolve(f.call(d,{text:c(e),action:e})))._bgSelectAria(e===d.rowCount).on("click"+H,o,function(b){b.preventDefault();var e=a(this),f=e.data("action");f!==d.rowCount&&(d.current=1,d.rowCount=f,e.parents(m).children().each(function(){var b=a(this),c=b.find(o).data("action");b._bgSelectAria(c===f)}),e.parents(k).find(l).text(c(f)),n.call(d))});j.find(m).append(g)}),b.append(j)}}function y(b){if(b.length>0){var c=this,d=this.options.css,e=this.options.templates,g=this.element.children("tbody").first(),i=!0,j="";a.each(b,function(b,g){var h="",k=' data-row-id="'+(null==c.identifier?b:g[c.identifier])+'"',l="";if(c.se!
lection){var m=-1!==a.inArray(g[c.identifier],c.selectedRows),n=e.select.resolve(f.call(c,{type:"checkbox",value:g[c.identifier],checked:m}));h+=e.cell.resolve(f.call(c,{content:n,css:d.selectCell})),i=i&&m,m&&(l+=d.selected,k+=' aria-selected="true"')}var o=null!=g.status&&c.options.statusMapping[g.status];o&&(l+=o),a.each(c.columns,function(b,i){if(i.visible){var j=a.isFunction(i.formatter)?i.formatter.call(c,i,g):i.converter.to(g[i.id]),k=i.cssClass.length>0?" "+i.cssClass:"";h+=e.cell.resolve(f.call(c,{content:null==j||""===j?" ":j,css:("right"===i.align?d.right:"center"===i.align?d.center:d.left)+k,style:null==i.width?"":"width:"+i.width+";"}))}}),l.length>0&&(k+=' class="'+l+'"'),j+=e.row.resolve(f.call(c,{attr:k,cells:h}))}),c.element.find("thead "+h(c.options.css.selectBox)).prop("checked",i),g.html(j),z.call(this,g)}else u.call(this)}function z(b){var c=this,d=h(this.options.css.selectBox);this.selection&&b.off("click"+H,d).on("click"+H,d,function(b){b.stopPro!
pagation();var d=a(this),e=c.converter.from(d.val());d.prop("checked")?!
c.select([e]):c.deselect([e])}),b.off("click"+H,"> tr").on("click"+H,"> tr",function(b){b.stopPropagation();var d=a(this),e=null==c.identifier?d.data("row-id"):c.converter.from(d.data("row-id")+""),f=null==c.identifier?c.currentRows[e]:c.currentRows.first(function(a){return a[c.identifier]===e});c.selection&&c.options.rowSelect&&(d.hasClass(c.options.css.selected)?c.deselect([e]):c.select([e])),c.element.trigger("click"+H,[c.columns,f])})}function A(){if(0!==this.options.navigation){var c=this.options.css,d=h(c.search),g=e.call(this,d);if(g.length>0){var i=this,j=this.options.templates,k=null,l="",m=h(c.searchField),n=a(j.search.resolve(f.call(this))),o=n.is(m)?n:n.find(m);o.on("keyup"+H,function(c){c.stopPropagation();var d=a(this).val();(l!==d||13===c.which&&""!==d)&&(l=d,(13===c.which||0===d.length||d.length>=i.options.searchSettings.characters)&&(b.clearTimeout(k),k=b.setTimeout(function(){B.call(i,d)},i.options.searchSettings.delay)))}),E.call(this,g,n)}}}function B(a)!
{this.searchPhrase!==a&&(this.current=1,this.searchPhrase=a,n.call(this))}function C(){var b=this,c=this.element.find("thead > tr"),d=this.options.css,e=this.options.templates,g="",i=this.options.sorting;if(this.selection){var j=this.options.multiSelect?e.select.resolve(f.call(b,{type:"checkbox",value:"all"})):"";g+=e.rawHeaderCell.resolve(f.call(b,{content:j,css:d.selectCell}))}if(a.each(this.columns,function(a,c){if(c.visible){var h=b.sortDictionary[c.id],j=i&&h&&"asc"===h?d.iconUp:i&&h&&"desc"===h?d.iconDown:"",k=e.icon.resolve(f.call(b,{iconCss:j})),l=c.headerAlign,m=c.headerCssClass.length>0?" "+c.headerCssClass:"";g+=e.headerCell.resolve(f.call(b,{column:c,icon:k,sortable:i&&c.sortable&&d.sortable||"",css:("right"===l?d.right:"center"===l?d.center:d.left)+m,style:null==c.width?"":"width:"+c.width+";"}))}}),c.html(g),i){var k=h(d.sortable);c.off("click"+H,k).on("click"+H,k,function(c){c.preventDefault(),D.call(b,a(this)),G.call(b),n.call(b)})}if(this.selection&&this.op!
tions.multiSelect){var l=h(d.selectBox);c.off("click"+H,l).on("click"+H!
,l,function(c){c.stopPropagation(),a(this).prop("checked")?b.select():b.deselect()})}}function D(a){var b=this.options.css,c=h(b.icon),d=a.data("column-id")||a.parents("th").first().data("column-id"),e=this.sortDictionary[d],f=a.find(c);if(this.options.multiSort||(a.parents("tr").first().find(c).removeClass(b.iconDown+" "+b.iconUp),this.sortDictionary={}),e&&"asc"===e)this.sortDictionary[d]="desc",f.removeClass(b.iconUp).addClass(b.iconDown);else if(e&&"desc"===e)if(this.options.multiSort){var g={};for(var i in this.sortDictionary)i!==d&&(g[i]=this.sortDictionary[i]);this.sortDictionary=g,f.removeClass(b.iconDown)}else this.sortDictionary[d]="asc",f.removeClass(b.iconDown).addClass(b.iconUp);else this.sortDictionary[d]="asc",f.addClass(b.iconUp)}function E(b,c){b.each(function(b,d){a(d).before(c.clone(!0)).remove()})}function F(){var a=this;b.setTimeout(function(){if("true"===a.element._bgAria("busy")){var b=a.options.templates,c=a.element.children("thead").first(),d=a.elem!
ent.children("tbody").first(),e=d.find("tr > td").first(),g=a.element.height()-c.height()-(e.height()+20),h=a.columns.where(l).length;a.selection&&(h+=1),d.html(b.loading.resolve(f.call(a,{columns:h}))),-1!==a.rowCount&&g>0&&d.find("tr > td").css("padding","20px 0 "+g+"px")}},250)}function G(){function a(c,d,e){function f(a){return"asc"===h.order?a:-1*a}e=e||0;var g=e+1,h=b[e];return c[h.id]>d[h.id]?f(1):c[h.id]<d[h.id]?f(-1):b.length>g?a(c,d,g):0}var b=[];if(!this.options.ajax){for(var c in this.sortDictionary)(this.options.multiSort||0===b.length)&&b.push({id:c,order:this.sortDictionary[c]});b.length>0&&this.rows.sort(a)}}var H=".rs.jquery.bootgrid",I=function(b,c){this.element=a(b),this.origin=this.element.clone(),this.options=a.extend(!0,{},I.defaults,this.element.data(),c);var d=this.options.rowCount=this.element.data().rowCount||c.rowCount||this.options.rowCount;this.columns=[],this.current=1,this.currentRows=[],this.identifier=null,this.selection=!1,this.converter=nu!
ll,this.rowCount=a.isArray(d)?d[0]:d,this.rows=[],this.searchPhrase="",!
this.selectedRows=[],this.sortDictionary={},this.total=0,this.totalPages=0,this.cachedParams={lbl:this.options.labels,css:this.options.css,ctx:{}},this.header=null,this.footer=null,this.xqr=null};if(I.defaults={navigation:3,padding:2,columnSelection:!0,rowCount:[10,25,50,-1],selection:!1,multiSelect:!1,rowSelect:!1,keepSelection:!1,highlightRows:!1,sorting:!0,multiSort:!1,searchSettings:{delay:250,characters:1},ajax:!1,ajaxSettings:{method:"POST"},post:{},url:"",caseSensitive:!0,requestHandler:function(a){return a},responseHandler:function(a){return a},converters:{numeric:{from:function(a){return+a},to:function(a){return a+""}},string:{from:function(a){return a},to:function(a){return a}}},css:{actions:"actions btn-group",center:"text-center",columnHeaderAnchor:"column-header-anchor",columnHeaderText:"text",dropDownItem:"dropdown-item",dropDownItemButton:"dropdown-item-button",dropDownItemCheckbox:"dropdown-item-checkbox",dropDownMenu:"dropdown btn-group",dropDownMenuItems:"!
dropdown-menu pull-right",dropDownMenuText:"dropdown-text",footer:"bootgrid-footer container-fluid",header:"bootgrid-header container-fluid",icon:"icon glyphicon",iconColumns:"glyphicon-th-list",iconDown:"glyphicon-chevron-down",iconRefresh:"glyphicon-refresh",iconSearch:"glyphicon-search",iconUp:"glyphicon-chevron-up",infos:"infos",left:"text-left",pagination:"pagination",paginationButton:"button",responsiveTable:"table-responsive",right:"text-right",search:"search form-group",searchField:"search-field form-control",selectBox:"select-box",selectCell:"select-cell",selected:"active",sortable:"sortable",table:"bootgrid-table table"},formatters:{},labels:{all:"All",infos:"Showing {{ctx.start}} to {{ctx.end}} of {{ctx.total}} entries",loading:"Loading...",noResults:"No results found!",refresh:"Refresh",search:"Search"},statusMapping:{0:"success",1:"info",2:"warning",3:"danger"},templates:{actionButton:'<button class="btn btn-default" type="button" title="{{ctx.text}}">{{ctx.con!
tent}}</button>',actionDropDown:'<div class="{{css.dropDownMenu}}"><but!
ton class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"><span class="{{css.dropDownMenuText}}">{{ctx.content}}</span> <span class="caret"></span></button><ul class="{{css.dropDownMenuItems}}" role="menu"></ul></div>',actionDropDownItem:'<li><a data-action="{{ctx.action}}" class="{{css.dropDownItem}} {{css.dropDownItemButton}}">{{ctx.text}}</a></li>',actionDropDownCheckboxItem:'<li><label class="{{css.dropDownItem}}"><input name="{{ctx.name}}" type="checkbox" value="1" class="{{css.dropDownItemCheckbox}}" {{ctx.checked}} /> {{ctx.label}}</label></li>',actions:'<div class="{{css.actions}}"></div>',body:"<tbody></tbody>",cell:'<td class="{{ctx.css}}" style="{{ctx.style}}">{{ctx.content}}</td>',footer:'<div id="{{ctx.id}}" class="{{css.footer}}"><div class="row"><div class="col-sm-6"><p class="{{css.pagination}}"></p></div><div class="col-sm-6 infoBar"><p class="{{css.infos}}"></p></div></div></div>',header:'<div id="{{ctx.id}}" class="{{css.header}}"><!
div class="row"><div class="col-sm-12 actionBar"><p class="{{css.search}}"></p><p class="{{css.actions}}"></p></div></div></div>',headerCell:'<th data-column-id="{{ctx.column.id}}" class="{{ctx.css}}" style="{{ctx.style}}"><a href="javascript:void(0);" class="{{css.columnHeaderAnchor}} {{ctx.sortable}}"><span class="{{css.columnHeaderText}}">{{ctx.column.text}}</span>{{ctx.icon}}</a></th>',icon:'<span class="{{css.icon}} {{ctx.iconCss}}"></span>',infos:'<div class="{{css.infos}}">{{lbl.infos}}</div>',loading:'<tr><td colspan="{{ctx.columns}}" class="loading">{{lbl.loading}}</td></tr>',noResults:'<tr><td colspan="{{ctx.columns}}" class="no-results">{{lbl.noResults}}</td></tr>',pagination:'<ul class="{{css.pagination}}"></ul>',paginationItem:'<li class="{{ctx.css}}"><a data-page="{{ctx.page}}" class="{{css.paginationButton}}">{{ctx.text}}</a></li>',rawHeaderCell:'<th class="{{ctx.css}}">{{ctx.content}}</th>',row:"<tr{{ctx.attr}}>{{ctx.cells}}</tr>",search:'<div class="{{css.s!
earch}}"><div class="input-group"><span class="{{css.icon}} input-group!
-addon {{css.iconSearch}}"></span> <input type="text" class="{{css.searchField}}" placeholder="{{lbl.search}}" /></div></div>',select:'<input name="select" type="{{ctx.type}}" class="{{css.selectBox}}" value="{{ctx.value}}" {{ctx.checked}} />'}},I.prototype.append=function(a){if(this.options.ajax);else{for(var b=[],c=0;c<a.length;c++)d.call(this,a[c])&&b.push(a[c]);G.call(this),k.call(this,b),n.call(this),this.element.trigger("appended"+H,[b])}return this},I.prototype.clear=function(){if(this.options.ajax);else{var b=a.extend([],this.rows);this.rows=[],this.current=1,this.total=0,n.call(this),this.element.trigger("cleared"+H,[b])}return this},I.prototype.destroy=function(){return a(b).off(H),1&this.options.navigation&&this.header.remove(),2&this.options.navigation&&this.footer.remove(),this.element.before(this.origin).remove(),this},I.prototype.reload=function(){return this.current=1,n.call(this),this},I.prototype.remove=function(a){if(null!=this.identifier){if(this.options!
.ajax);else{a=a||this.selectedRows;for(var b,c=[],d=0;d<a.length;d++){b=a[d];for(var e=0;e<this.rows.length;e++)if(this.rows[e][this.identifier]===b){c.push(this.rows[e]),this.rows.splice(e,1);break}}this.current=1,n.call(this),this.element.trigger("removed"+H,[c])}}return this},I.prototype.search=function(a){if(a=a||"",this.searchPhrase!==a){var b=h(this.options.css.searchField),c=e.call(this,b);c.val(a)}return B.call(this,a),this},I.prototype.select=function(b){if(this.selection){b=b||this.currentRows.propValues(this.identifier);for(var c,d,e=[];b.length>0&&(this.options.multiSelect||1!==e.length);)if(c=b.pop(),-1===a.inArray(c,this.selectedRows))for(d=0;d<this.currentRows.length;d++)if(this.currentRows[d][this.identifier]===c){e.push(this.currentRows[d]),this.selectedRows.push(c);break}if(e.length>0){var f=h(this.options.css.selectBox),g=this.selectedRows.length>=this.currentRows.length;for(d=0;!this.options.keepSelection&&g&&d<this.currentRows.length;)g=-1!==a.inArray(t!
his.currentRows[d++][this.identifier],this.selectedRows);for(this.eleme!
nt.find("thead "+f).prop("checked",g),this.options.multiSelect||this.element.find("tbody > tr "+f+":checked").trigger("click"+H),d=0;d<this.selectedRows.length;d++)this.element.find('tbody > tr[data-row-id="'+this.selectedRows[d]+'"]').addClass(this.options.css.selected)._bgAria("selected","true").find(f).prop("checked",!0);this.element.trigger("selected"+H,[e])}}return this},I.prototype.deselect=function(b){if(this.selection){b=b||this.currentRows.propValues(this.identifier);for(var c,d,e,f=[];b.length>0;)if(c=b.pop(),e=a.inArray(c,this.selectedRows),-1!==e)for(d=0;d<this.currentRows.length;d++)if(this.currentRows[d][this.identifier]===c){f.push(this.currentRows[d]),this.selectedRows.splice(e,1);break}if(f.length>0){var g=h(this.options.css.selectBox);for(this.element.find("thead "+g).prop("checked",!1),d=0;d<f.length;d++)this.element.find('tbody > tr[data-row-id="'+f[d][this.identifier]+'"]').removeClass(this.options.css.selected)._bgAria("selected","false").find(g).prop(!
"checked",!1);this.element.trigger("deselected"+H,[f])}}return this},I..prototype.sort=function(b){var c=b?a.extend({},b):{};return c===this.sortDictionary?this:(this.sortDictionary=c,C.call(this),G.call(this),n.call(this),this)},I.prototype.getColumnSettings=function(){return a.merge([],this.columns)},I.prototype.getCurrentPage=function(){return this.current},I.prototype.getCurrentRows=function(){return a.merge([],this.currentRows)},I.prototype.getRowCount=function(){return this.rowCount},I.prototype.getSearchPhrase=function(){return this.searchPhrase},I.prototype.getSelectedRows=function(){return a.merge([],this.selectedRows)},I.prototype.getSortDictionary=function(){return a.extend({},this.sortDictionary)},I.prototype.getTotalPageCount=function(){return this.totalPages},I.prototype.getTotalRowCount=function(){return this.total},a.fn.extend({_bgAria:function(a,b){return b?this.attr("aria-"+a,b):this.attr("aria-"+a)},_bgBusyAria:function(a){return null==a||a?this._bgAria("!
busy","true"):this._bgAria("busy","false")},_bgRemoveAria:function(a){re!
turn this.removeAttr("aria-"+a)},_bgEnableAria:function(a){return null==a||a?this.removeClass("disabled")._bgAria("disabled","false"):this.addClass("disabled")._bgAria("disabled","true")},_bgEnableField:function(a){return null==a||a?this.removeAttr("disabled"):this.attr("disabled","disable")},_bgShowAria:function(a){return null==a||a?this.show()._bgAria("hidden","false"):this.hide()._bgAria("hidden","true")},_bgSelectAria:function(a){return null==a||a?this.addClass("active")._bgAria("selected","true"):this.removeClass("active")._bgAria("selected","false")},_bgId:function(a){return a?this.attr("id",a):this.attr("id")}}),!String.prototype.resolve){var J={checked:function(a){return"boolean"==typeof a?a?'checked="checked"':"":a}};String.prototype.resolve=function(b,c){var d=this;return a.each(b,function(b,e){if(null!=e&&"function"!=typeof e)if("object"==typeof e){var f=c?a.extend([],c):[];f.push(b),d=d.resolve(e,f)+""}else{J&&J[b]&&"function"==typeof J[b]&&(e=J[b](e)),b=c?c.joi!
n(".")+"."+b:b;var g=new RegExp("\\{\\{"+b+"\\}\\}","gm");d=d.replace(g,e.replace?e.replace(/\$/gi,"$"):e)}}),d}}Array.prototype.first||(Array.prototype.first=function(a){for(var b=0;b<this.length;b++){var c=this[b];if(a(c))return c}return null}),Array.prototype.contains||(Array.prototype.contains=function(a){for(var b=0;b<this.length;b++){var c=this[b];if(a(c))return!0}return!1}),Array.prototype.page||(Array.prototype.page=function(a,b){var c=(a-1)*b,d=c+b;return this.length>c?this.length>d?this.slice(c,d):this.slice(c):[]}),Array.prototype.where||(Array.prototype.where=function(a){for(var b=[],c=0;c<this.length;c++){var d=this[c];a(d)&&b.push(d)}return b}),Array.prototype.propValues||(Array.prototype.propValues=function(a){for(var b=[],c=0;c<this.length;c++)b.push(this[c][a]);return b});var K=a.fn.bootgrid;a.fn.bootgrid=function(b){var c=Array.prototype.slice.call(arguments,1),d=null,e=this.each(function(e){var f=a(this),g=f.data(H),h="object"==typeof b&&b;if((g||"des!
troy"!==b)&&(g||(f.data(H,g=new I(this,h)),j.call(g)),"string"==typeof !
b))if(0===b.indexOf("get")&&0===e)d=g[b].apply(g,c);else if(0!==b.indexOf("get"))return g[b].apply(g,c)});return"string"==typeof b&&0===b.indexOf("get")?d:e},a.fn.bootgrid.Constructor=I,a.fn.bootgrid.noConflict=function(){return a.fn.bootgrid=K,this},a('[data-toggle="bootgrid"]').bootgrid()}(jQuery,window);
\ No newline at end of file
diff --git a/ui/pages/wok-ui.html.tmpl b/ui/pages/wok-ui.html.tmpl
index 395c661..d5bac63 100644
--- a/ui/pages/wok-ui.html.tmpl
+++ b/ui/pages/wok-ui.html.tmpl
@@ -54,6 +54,7 @@
<link rel="stylesheet" href="$href('css/jquery-ui.custom.css')">
<link rel="stylesheet" href="$href('css/bootstrap.custom.css')">
<link rel="stylesheet" href="$href('libs/bootstrap-select/dist/css/bootstrap-select.min.css')">
+ <link rel="stylesheet" href="$href('libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css')">
<link rel="stylesheet" href="$href('css/fontawesome/fontawesome.css')">
<link rel="stylesheet" href="$href('css/opensans/opensans.css')">
<link rel="stylesheet" href="$href('css/bootstrap-select.custom.css')">
@@ -65,6 +66,7 @@
<script src="$href('libs/jquery-i18n/jquery.i18n.min.js')"></script>
<script src="$href('libs/bootstrap/bootstrap.min.js')"></script>
<script src="$href('libs/bootstrap-select/dist/js/bootstrap-select.min.js')"></script>
+ <script src="$href('libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js')"></script>
<script src="$href('base64/jquery.base64.js')"></script>
<script src="$href('js/wok.min.js')"></script>
<!-- This is used for detecting if the UI needs to be built -->
--
2.4.3
9 years
[PATCH 0/1] Library files for bootgrid plugin
by atreyee@linux.vnet.ibm.com
From: Chandra Shekhar Reddy Potula <chandra(a)linux.vnet.ibm.com>
Bootgrid is grid implemention for bootstrap and jquery with sorting,
multiselect,searching featuers.
Atreyee Mukhopadhyay (1):
Library files for bootgrid plugin
configure.ac | 4 ++++
ui/libs/Makefile.am | 2 +-
ui/libs/jquery-bootgrid/LICENSE | 17 +++++++++++++++++
ui/libs/jquery-bootgrid/Makefile.am | 20 ++++++++++++++++++++
ui/libs/jquery-bootgrid/dist/Makefile.am | 20 ++++++++++++++++++++
ui/libs/jquery-bootgrid/dist/css/Makefile.am | 22 ++++++++++++++++++++++
.../dist/css/jquery.bootgrid.min.css | 5 +++++
ui/libs/jquery-bootgrid/dist/js/Makefile.am | 22 ++++++++++++++++++++++
.../jquery-bootgrid/dist/js/jquery.bootgrid.min.js | 6 ++++++
ui/pages/wok-ui.html.tmpl | 2 ++
10 files changed, 119 insertions(+), 1 deletion(-)
create mode 100644 ui/libs/jquery-bootgrid/LICENSE
create mode 100644 ui/libs/jquery-bootgrid/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/css/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css
create mode 100644 ui/libs/jquery-bootgrid/dist/js/Makefile.am
create mode 100644 ui/libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js
--
2.4.3
9 years
[PATCH][KIMCHI] Fix problem in storage volumes clone. Issue #700
by Rodrigo Trujillo
This patch fixed Issue #700.
In order to work, this patch REQUIRES another patch of WOK:
""[Kimchi-devel] [PATCH][WOK] Add validation and
fix parameters in _generate_action_handler_base""
Wok patch was sent to mailing list and is waiting review/commit
Rodrigo Trujillo (1):
Fix problems in storage volumes clone and fix Issue: #700
API.json | 17 +++++++++++++++++
control/storagevolumes.py | 4 +++-
docs/API.md | 4 ++--
i18n.py | 1 +
4 files changed, 23 insertions(+), 3 deletions(-)
--
2.1.0
9 years
[PATCH v2] [Kimchi 0/2] Issue 793: Disable Libvirt hot-plugging support for multi-function adapters
by Jose Ricardo Ziviani
v2:
- Apply code review
Libvirt does not support multi-function devices hot-plug (but it will). So this patchset will disable hot-plugging for such devices.
Jose Ricardo Ziviani (2):
Add multi-function field in PCI information
Disable hotplugging buttons of multi-function devices
model/host.py | 33 ++++++++++++++++++++++++++++++++-
model/vmhostdevs.py | 3 ++-
ui/js/src/kimchi.guest_edit_main.js | 3 +++
3 files changed, 37 insertions(+), 2 deletions(-)
--
1.9.1
9 years
[PATCH][WOK] Add validation and fix parameters in _generate_action_handler_base
by Rodrigo Trujillo
The function _generate_action_handler_base is used in
asynchronous tasks like clone and migration. It usually
handles POST requests, which may contain parameters.
Handler was not able to differentiate the parameters, so
user was forced to pass all and in the right position,
also, parameters where not checked against API.json.
This patch do the following changes to fix the issues:
- handle parameters, and if not passed, sends None
- check parameters against API.json (adds validate_params)
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo(a)linux.vnet.ibm.com>
---
src/wok/control/base.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/wok/control/base.py b/src/wok/control/base.py
index f739eae..e1591b5 100644
--- a/src/wok/control/base.py
+++ b/src/wok/control/base.py
@@ -107,11 +107,12 @@ class Resource(object):
raise UnauthorizedError('WOKAPI0009E')
model_args = list(self.model_args)
+ request = parse_request()
+ validate_params(request, self, action_name)
if action_args is not None:
- request = parse_request()
model_args.extend(
- request[key] for key in action_args
- if key in request.keys()
+ request[key] if key in request.keys() else None
+ for key in action_args
)
action_fn = getattr(self.model, model_fn(self, action_name))
--
2.1.0
9 years