[PATCH] [Kimchi 0/2 V2] [PATCH] Multiple fixes: page redirection + auth

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

Wok provides a specific API to load tabs content (/tabs URI). It is designed to identify when a tab is requested to properly setup the 'lastPage' cookie. That way, the last tab visited by user can be remembered. This patch depends on Wok patch: - Bug fix: Make /tabs URI generic to be used by any plugin To test it, you can login into Wok, access a different tab than the default, logout, login again and you will be redirected to your last selection. Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com> --- configure.ac | 1 + 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 -------------------- 12 files changed, 535 insertions(+), 514 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 diff --git a/configure.ac b/configure.ac index 6b334c6..0ff0ce8 100644 --- a/configure.ac +++ b/configure.ac @@ -103,6 +103,7 @@ AC_CONFIG_FILES([ ui/spice-html5/thirdparty/Makefile ui/pages/Makefile ui/pages/help/Makefile + ui/pages/tabs/Makefile ui/pages/help/en_US/Makefile ui/pages/help/de_DE/Makefile ui/pages/help/es_ES/Makefile diff --git a/ui/config/tab-ext.xml b/ui/config/tab-ext.xml index 5a3bd7a..8fba1c6 100644 --- a/ui/config/tab-ext.xml +++ b/ui/config/tab-ext.xml @@ -5,24 +5,24 @@ <access role="admin" mode="admin"/> <access role="user" mode="byInstance"/> <title>Guests</title> - <path>plugins/kimchi/guests.html</path> + <path>plugins/kimchi/tabs/guests.html</path> </tab> <tab> <access role="admin" mode="admin"/> <access role="user" mode="none"/> <title>Templates</title> - <path>plugins/kimchi/templates.html</path> + <path>plugins/kimchi/tabs/templates.html</path> </tab> <tab> <access role="admin" mode="admin"/> <access role="user" mode="read-only"/> <title>Storage</title> - <path>plugins/kimchi/storage.html</path> + <path>plugins/kimchi/tabs/storage.html</path> </tab> <tab> <access role="admin" mode="admin"/> <access role="user" mode="read-only"/> <title>Network</title> - <path>plugins/kimchi/network.html</path> + <path>plugins/kimchi/tabs/network.html</path> </tab> </tabs-ext> diff --git a/ui/pages/Makefile.am b/ui/pages/Makefile.am index 56288e3..076b814 100644 --- a/ui/pages/Makefile.am +++ b/ui/pages/Makefile.am @@ -15,7 +15,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -SUBDIRS = help +SUBDIRS = help tabs htmldir = $(datadir)/wok/plugins/kimchi/ui/pages diff --git a/ui/pages/guests.html.tmpl b/ui/pages/guests.html.tmpl deleted file mode 100644 index 66a6e00..0000000 --- a/ui/pages/guests.html.tmpl +++ /dev/null @@ -1,104 +0,0 @@ -#* - * Project Kimchi - * - * Copyright IBM, Corp. 2013-2014 - * - * 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. - *# - -#unicode UTF-8 -#import gettext -#from Cheetah.Template import Template -#from wok.cachebust import href -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) -#silent _ = t.gettext -#silent _t = t.gettext - -#silent ht = Template - -<!DOCTYPE html> -<html> -<head> -<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> -<script src="plugins/kimchi/js/kimchi.min.js"></script> -</head> -<body> -<div id="guests-root-container"> - <nav class="navbar navbar-default toolbar"> - <div class="container"> - <!-- Brand and toggle get grouped for better mobile display --> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - </div> - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse" id="toolbar"> - <ul class="nav navbar-nav navbar-right tools" display="none"> - <li><a id="vm-add" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Guest</span></a></li> - </ul> - </div> - </div> - </nav> - <div id="guest-content-container"> - <div class="container"> - <div class="row grid-control hidden"> - <div class="pull-right"> - <label for="guests-filter" class="sr-only">$_("Filter"):</label> - <input type="text" class="filter form-control" placeholder="$_("Filter")"> - </div> - </div> - <div id="alert-container"></div> - <div id="guestListField" style="display: none"> - <ul class="wok-guest-list"> - <li class="wok-guest-list-header"> - <span class="column-state"><span class="sr-only">$_("State")</span></span><!-- - --><span class="column-name"><span>$_("Guest Name ID")</span></span><!-- - --><span class="column-type"><span>$_("OS Type")</span></span><!-- - --><span class="column-vnc"><span>$_("VNC")</span></span><!-- - --><span class="column-processors"><span>$_("Processors Used")</span></span><!-- - --><span class="column-memory"><span>$_("Memory Utilization")</span></span><!-- - --><span class="column-storage"><span>$_("Storage I/O")</span></span><!-- - --><span class="column-network"><span>$_("Network I/O")</span></span><!-- - --><span class="column-action" style="display:none"> - <span class="sr-only">Actions</span><!-- - --></span> - </li> - <li class="wok-guest-list-body"> - <ul id="guestList" class="wok-guest-list empty-when-logged-off" style="-webkit-padding-start: 0px;"> - </li> - </ul> - </div> - <div id="noGuests" class="list-no-result" style="display: none;"> - $_("No guests found.") - </div> - </div> - </div> -<div id="modalWindow" class="modal fade host-modal guests-modal" tabindex="-1" role="dialog" aria-labelledby="guestsModalLabel" aria-hidden="true"> -</div> -<div id="extendCreateTemplate" class="modal fade host-modal templates-modal" tabindex="-1" role="dialog" aria-labelledby="templateModalLabel" aria-hidden="true"> -</div> -<div id="extendCreateStorage" class="modal fade host-modal storage-modal" tabindex="-1" role="dialog" aria-labelledby="storageModalLabel" aria-hidden="true"> -</div> - <script id="guest-tmpl" type="kimchi/template"> - $ht(file=$data.ui_dir + "/pages/guest.html.tmpl", searchList=[self, {'lang':$lang}]) - </script> - <script type="text/javascript"> - kimchi.guest_main(); - </script> -</div> -</body> -</html> diff --git a/ui/pages/network.html.tmpl b/ui/pages/network.html.tmpl deleted file mode 100644 index 722fc11..0000000 --- a/ui/pages/network.html.tmpl +++ /dev/null @@ -1,105 +0,0 @@ -#* - * Project Kimchi - * - * Copyright IBM, Corp. 2013-2015 - * - * 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. - *# - -#unicode UTF-8 -#import gettext -#from wok.cachebust import href -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) -#silent _ = t.gettext -#silent _t = t.gettext -<!DOCTYPE html> -<html> -<head> -<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> -<script src="plugins/kimchi/js/kimchi.min.js"></script> -</head> -<body> -<div id="network-root-container"> - <nav class="navbar navbar-default toolbar"> - <div class="container"> - <!-- Brand and toggle get grouped for better mobile display --> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - </div> - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse" id="toolbar"> - <ul class="nav navbar-nav navbar-right tools" display="none"> - <li><a id="networkAdd" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Network</span></a></li> - </ul> - </div> - </div> - </nav> - <div id="network-content-container"> - <div class="container"> - <div class="row grid-control"> - <div class="pull-right"> - <label for="network-filter" class="sr-only">$_("Filter"):</label> - <input type="text" class="filter form-control" placeholder="$_("Filter")"> - </div> - </div> - <div id="alert-container"></div> - <div id="networkGrid"> - <div> - <span class="column-state"><span class="sr-only">$_("State")</span></span><!-- - --><span class="column-name">$_("Network Name")</span><!-- - --><span class="column-type">$_("Network Type")</span><!-- - --><span class="column-interface">$_("Interface")</span><!-- - --><span class="column-space">$_("Address Space")</span><!-- - --><span class="column-action" style="display:none"> - <span class="sr-only">$_("Actions")</span><!-- - --></span> - </div> - <div id="networkBody" class="empty-when-logged-off"></div> - </div> - - </div> - </div> -</div> -<div id="modalWindow" class="modal fade network-modal" tabindex="-1" role="dialog" aria-labelledby="networkModalLabel" aria-hidden="true"> </div> -<script id="networkItem" type="text/html"> - <div id='{name}' class='wok-nw-grid-body remove-when-logged-off '> - <span class='column-state' val="{state}"><span class='network-state {state}'><i class="fa fa-power-off"></i><span class="wok-nw-loading-icon"></span></span></span><!-- - --><span class='column-name' title="{name}" val="{name}">{name}</span><!-- - --><span class='column-type' val="{type}">{type}</span><!-- - --><span class='column-interface' val="{interface}">{interface}</span><!-- - --><span class='column-space' val="{addrSpace}">{addrSpace}</span><!-- - --><span class='column-action' style="display:none"> - <span class="pull-right"> - <div class="dropdown menu-flat"> - <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span> - </button> - <ul class="dropdown-menu" role="menu"> - <li role="presentation" nwAct="start" class='{startClass}'><a><i class="fa fa-undo"></i>$_("Start")</a></li> - <li role="presentation" nwAct="stop" class='{stopClass}'><a {stopDisabled}><i class="fa fa-ban"></i>$_("Stop")</a></li> - <li role="presentation" nwAct="delete" class='critical {deleteClass}'><a {deleteDisabled}><i class="fa fa-minus-circle"></i>$_("Delete")</a></li> - </ul> - </div> - </span> - </span> - </div> -</script> -<script> - kimchi.initNetwork(); -</script> -</body> -</html> diff --git a/ui/pages/storage.html.tmpl b/ui/pages/storage.html.tmpl deleted file mode 100644 index 9f2a978..0000000 --- a/ui/pages/storage.html.tmpl +++ /dev/null @@ -1,198 +0,0 @@ -#* - * Project Kimchi - * - * Copyright IBM, Corp. 2013-2015 - * - * 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. - *# - -#unicode UTF-8 -#import gettext -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) -#silent _ = t.gettext -#silent _t = t.gettext -<!DOCTYPE html> -<html> -<head> -<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> -<script src="plugins/kimchi/js/kimchi.min.js"></script> -</head> -<body> -<div id="storage-root-container"> - <nav class="navbar navbar-default toolbar"> - <div class="container"> - <!-- Brand and toggle get grouped for better mobile display --> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - </div> - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse" id="toolbar"> - <ul class="nav navbar-nav navbar-right tools" display="none"> - <li><a id="storage-pool-add" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Storage</span></a></li> - </ul> - </div> - </div> - </nav> - <div class='storage'> - <div class="container"> - <div class="row grid-control"> - <div class="pull-right"> - <label for="storage-filter" class="sr-only">$_("Filter"):</label> - <input type="text" class="filter form-control" placeholder="$_("Filter")"> - </div> - </div> - <div id="alert-container"></div> - <div id='storageGrid'> - <div> - <span class="column-state"><span class="sr-only">$_("State")</span></span><!-- - --><span class="column-name">$_("Name")</span><!-- - --><span class="column-type">$_("Type")</span><!-- - --><span class="column-location">$_("Location")</span><!-- - --><span class="column-usage">$_("%Used")</span><!-- - --><span class="column-allocated">$_("Allocated")</span><!-- - --><span class="column-capacity">$_("Capacity")</span><!-- - --><span class="column-disks">$_("Disks")</span><!-- - --><span class="column-action" display="none"><span class="sr-only">$_("Actions")</span></span> - </div> - <div id="storagepoolsList" class="list-storage empty-when-logged-off"></div> - </div> - <div id="logicalPoolExtend" class="modal fade logicalpool-modal" tabindex="-2" role="dialog" aria-labelledby="logicalPoolExtendLabel" aria-hidden="true"> - <div class="modal-dialog modal-sm"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="logicalPoolExtendLabel">$_("Device path")</h4> - </div> - <div class="modal-body"> - <p id="loading-info" class="hidden"><span class="wok-loading-icon"></span><span>$_("Looking for available partitions ...")</span></p> - <div class="host-partition"> - </div> - </div> - <div class="modal-footer"> - <button type="button" id="savePartitions" class="btn btn-default" disabled="disabled">$_("Save")</button> - <button type="button" class="btn btn-default" data-dismiss="modal">$_("Cancel")</button> - </div> - </div> - </div> - </div> - </div> - </div> -</div> -<script id="storageTmpl" type="html/text"> - <div id="{name}" class="storage-li in" data-name="{name}" data-stat="{state}"> - <span class='column-state' val="{state}"> - <span class='storage-state {state}'> - <i class="fa fa-power-off"></i> - </span> - </span><!-- - --><span class='column-name' title="{name}" val="{name}">{name}</span><!-- - --><span class='column-type' val="{type}">{type}</span><!-- - --><span class='column-location' val="{path}">{path}</span><!-- - --><span class='column-usage {state}' val="{usage}" ><span class='usage-icon {icon}'>{usage}</span>%</span><!-- - --><span class='column-allocated' val="{allocated}">{allocated}</span><!-- - --><span class='column-capacity' val="{capacity}">{capacity}</span><!-- - --><span class="column-disks {state}"> - <div class="handle arrow-down"></div> - </span><!-- - --><span class="column-action storage-button" style="display:none"> - <span class="pull-right"> - <div class="dropdown menu-flat storage-action" data-state="{state}" data-type="{type}" data-name="{name}"> - <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span></button> - <ul class="dropdown-menu actionsheet"> - <li role="presentation"> - <a href="#" class="pool-deactivate" data-stat="{state}" data-name="{name}" data-persistent="{persistent}" href="#"><i class="fa fa-minus-circle"></i>$_("Deactivate")</a> - </li> - <li role="presentation"> - <a href="#" class="pool-activate" data-stat="{state}" data-name="{name}"><i class="fa fa-power-off"></i>$_("Activate")</a> - </li> - <li role="presentation"> - <a href="#" class="pool-add-volume" data-stat="{state}" data-name="{name}" data-type="{type}"><i class="fa fa-plus-circle"></i>$_("Add Volume")</a> - </li> - <li role="presentation" class="{enableExt}"> - <a href="#" class="pool-extend" data-stat="{state}" data-name="{name}" data-toggle="modal" data-target="#logicalPoolExtend"><i class="fa fa-external-link-square"></i>$_("Extend")</a> - </li> - <li role="presentation" class="critical"> - <a href="#" class="pool-delete" data-stat="{state}" data-name="{name}"><i class="fa fa-ban"></i>$_("Undefine")</a> - </li> - </ul> - </div> - </span> - </span> - <div class="volumes"> - <div id="volume{name}" class="volumeslist" data-name="{name}" ></div> - <div class="clear"></div> - </div> - </div> -</script> -<script id="volumeTmpl" type="html/text"> - <div class="volume-box" data-volume-name="{name}"> - <div class="volume-title"> - <div class="volume-name" title="{name}">{name}</div> - <div class="volume-utilization"> - <span class="volume-icon {capacityIcon}"></span> - <span class="volume-usage">{capacityLevel}%</span> - </div> - <div class="volume-progress hidden"> - <div class="progress-bar-outer"> - <div class="progress-bar-inner"></div> - </div> - <div class="progress-label"> - <span class="progress-status"></span> - <span class="progress-transferred"></span> - </div> - </div> - </div> - <div class="volume-setting"> - </div> - <ul class="volume-data"> - <li> - <span class="value" title="{format}">{format}</span> - <span class="key">$_("Format")</span> - </li> - <li> - <span class="value" title="{type}">{type}</span> - <span class="key">$_("Type")</span> - </li> - <li> - <span class="value" title="{allocation}">{allocation}</span> - <span class="key">$_("Allocation")</span> - </li> - <li> - <span class="value" title="{capacity}">{capacity}</span> - <span class="key">$_("Capacity")</span> - </li> - </ul> - </div> -</script> -<script id="logicalPoolExtendTmpl" type="html/text"> - <div> - <input type="checkbox" class="wok-checkbox" id="{name}" value="{path}" name="devices"> - <label for="{name}"> - <div> - <span class="device-name">{name}</span> - <span class="device-path">{path}</span> - </div> - </label> - </div> -</script> -<script> - kimchi.storage_main(); -</script> -<div id="modalWindow" class="modal fade storage-modal" tabindex="-1" role="dialog" aria-labelledby="storageModalLabel" aria-hidden="true"> </div> -</body> -</html> \ No newline at end of file diff --git a/ui/pages/tabs/Makefile.am b/ui/pages/tabs/Makefile.am new file mode 100644 index 0000000..0e08208 --- /dev/null +++ b/ui/pages/tabs/Makefile.am @@ -0,0 +1,20 @@ +# +# Kimchi +# +# Copyright IBM, Corp. 2013-2015 +# +# 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. + +tabshtmldir = $(datadir)/wok/plugins/kimchi/ui/pages/tabs + +dist_tabshtml_DATA = $(wildcard *.html.tmpl) $(NULL) diff --git a/ui/pages/tabs/guests.html.tmpl b/ui/pages/tabs/guests.html.tmpl new file mode 100644 index 0000000..66a6e00 --- /dev/null +++ b/ui/pages/tabs/guests.html.tmpl @@ -0,0 +1,104 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013-2014 + * + * 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. + *# + +#unicode UTF-8 +#import gettext +#from Cheetah.Template import Template +#from wok.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) +#silent _ = t.gettext +#silent _t = t.gettext + +#silent ht = Template + +<!DOCTYPE html> +<html> +<head> +<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> +<script src="plugins/kimchi/js/kimchi.min.js"></script> +</head> +<body> +<div id="guests-root-container"> + <nav class="navbar navbar-default toolbar"> + <div class="container"> + <!-- Brand and toggle get grouped for better mobile display --> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse" id="toolbar"> + <ul class="nav navbar-nav navbar-right tools" display="none"> + <li><a id="vm-add" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Guest</span></a></li> + </ul> + </div> + </div> + </nav> + <div id="guest-content-container"> + <div class="container"> + <div class="row grid-control hidden"> + <div class="pull-right"> + <label for="guests-filter" class="sr-only">$_("Filter"):</label> + <input type="text" class="filter form-control" placeholder="$_("Filter")"> + </div> + </div> + <div id="alert-container"></div> + <div id="guestListField" style="display: none"> + <ul class="wok-guest-list"> + <li class="wok-guest-list-header"> + <span class="column-state"><span class="sr-only">$_("State")</span></span><!-- + --><span class="column-name"><span>$_("Guest Name ID")</span></span><!-- + --><span class="column-type"><span>$_("OS Type")</span></span><!-- + --><span class="column-vnc"><span>$_("VNC")</span></span><!-- + --><span class="column-processors"><span>$_("Processors Used")</span></span><!-- + --><span class="column-memory"><span>$_("Memory Utilization")</span></span><!-- + --><span class="column-storage"><span>$_("Storage I/O")</span></span><!-- + --><span class="column-network"><span>$_("Network I/O")</span></span><!-- + --><span class="column-action" style="display:none"> + <span class="sr-only">Actions</span><!-- + --></span> + </li> + <li class="wok-guest-list-body"> + <ul id="guestList" class="wok-guest-list empty-when-logged-off" style="-webkit-padding-start: 0px;"> + </li> + </ul> + </div> + <div id="noGuests" class="list-no-result" style="display: none;"> + $_("No guests found.") + </div> + </div> + </div> +<div id="modalWindow" class="modal fade host-modal guests-modal" tabindex="-1" role="dialog" aria-labelledby="guestsModalLabel" aria-hidden="true"> +</div> +<div id="extendCreateTemplate" class="modal fade host-modal templates-modal" tabindex="-1" role="dialog" aria-labelledby="templateModalLabel" aria-hidden="true"> +</div> +<div id="extendCreateStorage" class="modal fade host-modal storage-modal" tabindex="-1" role="dialog" aria-labelledby="storageModalLabel" aria-hidden="true"> +</div> + <script id="guest-tmpl" type="kimchi/template"> + $ht(file=$data.ui_dir + "/pages/guest.html.tmpl", searchList=[self, {'lang':$lang}]) + </script> + <script type="text/javascript"> + kimchi.guest_main(); + </script> +</div> +</body> +</html> diff --git a/ui/pages/tabs/network.html.tmpl b/ui/pages/tabs/network.html.tmpl new file mode 100644 index 0000000..722fc11 --- /dev/null +++ b/ui/pages/tabs/network.html.tmpl @@ -0,0 +1,105 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013-2015 + * + * 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. + *# + +#unicode UTF-8 +#import gettext +#from wok.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<html> +<head> +<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> +<script src="plugins/kimchi/js/kimchi.min.js"></script> +</head> +<body> +<div id="network-root-container"> + <nav class="navbar navbar-default toolbar"> + <div class="container"> + <!-- Brand and toggle get grouped for better mobile display --> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse" id="toolbar"> + <ul class="nav navbar-nav navbar-right tools" display="none"> + <li><a id="networkAdd" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Network</span></a></li> + </ul> + </div> + </div> + </nav> + <div id="network-content-container"> + <div class="container"> + <div class="row grid-control"> + <div class="pull-right"> + <label for="network-filter" class="sr-only">$_("Filter"):</label> + <input type="text" class="filter form-control" placeholder="$_("Filter")"> + </div> + </div> + <div id="alert-container"></div> + <div id="networkGrid"> + <div> + <span class="column-state"><span class="sr-only">$_("State")</span></span><!-- + --><span class="column-name">$_("Network Name")</span><!-- + --><span class="column-type">$_("Network Type")</span><!-- + --><span class="column-interface">$_("Interface")</span><!-- + --><span class="column-space">$_("Address Space")</span><!-- + --><span class="column-action" style="display:none"> + <span class="sr-only">$_("Actions")</span><!-- + --></span> + </div> + <div id="networkBody" class="empty-when-logged-off"></div> + </div> + + </div> + </div> +</div> +<div id="modalWindow" class="modal fade network-modal" tabindex="-1" role="dialog" aria-labelledby="networkModalLabel" aria-hidden="true"> </div> +<script id="networkItem" type="text/html"> + <div id='{name}' class='wok-nw-grid-body remove-when-logged-off '> + <span class='column-state' val="{state}"><span class='network-state {state}'><i class="fa fa-power-off"></i><span class="wok-nw-loading-icon"></span></span></span><!-- + --><span class='column-name' title="{name}" val="{name}">{name}</span><!-- + --><span class='column-type' val="{type}">{type}</span><!-- + --><span class='column-interface' val="{interface}">{interface}</span><!-- + --><span class='column-space' val="{addrSpace}">{addrSpace}</span><!-- + --><span class='column-action' style="display:none"> + <span class="pull-right"> + <div class="dropdown menu-flat"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span> + </button> + <ul class="dropdown-menu" role="menu"> + <li role="presentation" nwAct="start" class='{startClass}'><a><i class="fa fa-undo"></i>$_("Start")</a></li> + <li role="presentation" nwAct="stop" class='{stopClass}'><a {stopDisabled}><i class="fa fa-ban"></i>$_("Stop")</a></li> + <li role="presentation" nwAct="delete" class='critical {deleteClass}'><a {deleteDisabled}><i class="fa fa-minus-circle"></i>$_("Delete")</a></li> + </ul> + </div> + </span> + </span> + </div> +</script> +<script> + kimchi.initNetwork(); +</script> +</body> +</html> diff --git a/ui/pages/tabs/storage.html.tmpl b/ui/pages/tabs/storage.html.tmpl new file mode 100644 index 0000000..9f2a978 --- /dev/null +++ b/ui/pages/tabs/storage.html.tmpl @@ -0,0 +1,198 @@ +#* + * Project Kimchi + * + * Copyright IBM, Corp. 2013-2015 + * + * 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. + *# + +#unicode UTF-8 +#import gettext +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<html> +<head> +<link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> +<script src="plugins/kimchi/js/kimchi.min.js"></script> +</head> +<body> +<div id="storage-root-container"> + <nav class="navbar navbar-default toolbar"> + <div class="container"> + <!-- Brand and toggle get grouped for better mobile display --> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse" id="toolbar"> + <ul class="nav navbar-nav navbar-right tools" display="none"> + <li><a id="storage-pool-add" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Storage</span></a></li> + </ul> + </div> + </div> + </nav> + <div class='storage'> + <div class="container"> + <div class="row grid-control"> + <div class="pull-right"> + <label for="storage-filter" class="sr-only">$_("Filter"):</label> + <input type="text" class="filter form-control" placeholder="$_("Filter")"> + </div> + </div> + <div id="alert-container"></div> + <div id='storageGrid'> + <div> + <span class="column-state"><span class="sr-only">$_("State")</span></span><!-- + --><span class="column-name">$_("Name")</span><!-- + --><span class="column-type">$_("Type")</span><!-- + --><span class="column-location">$_("Location")</span><!-- + --><span class="column-usage">$_("%Used")</span><!-- + --><span class="column-allocated">$_("Allocated")</span><!-- + --><span class="column-capacity">$_("Capacity")</span><!-- + --><span class="column-disks">$_("Disks")</span><!-- + --><span class="column-action" display="none"><span class="sr-only">$_("Actions")</span></span> + </div> + <div id="storagepoolsList" class="list-storage empty-when-logged-off"></div> + </div> + <div id="logicalPoolExtend" class="modal fade logicalpool-modal" tabindex="-2" role="dialog" aria-labelledby="logicalPoolExtendLabel" aria-hidden="true"> + <div class="modal-dialog modal-sm"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> + <h4 class="modal-title" id="logicalPoolExtendLabel">$_("Device path")</h4> + </div> + <div class="modal-body"> + <p id="loading-info" class="hidden"><span class="wok-loading-icon"></span><span>$_("Looking for available partitions ...")</span></p> + <div class="host-partition"> + </div> + </div> + <div class="modal-footer"> + <button type="button" id="savePartitions" class="btn btn-default" disabled="disabled">$_("Save")</button> + <button type="button" class="btn btn-default" data-dismiss="modal">$_("Cancel")</button> + </div> + </div> + </div> + </div> + </div> + </div> +</div> +<script id="storageTmpl" type="html/text"> + <div id="{name}" class="storage-li in" data-name="{name}" data-stat="{state}"> + <span class='column-state' val="{state}"> + <span class='storage-state {state}'> + <i class="fa fa-power-off"></i> + </span> + </span><!-- + --><span class='column-name' title="{name}" val="{name}">{name}</span><!-- + --><span class='column-type' val="{type}">{type}</span><!-- + --><span class='column-location' val="{path}">{path}</span><!-- + --><span class='column-usage {state}' val="{usage}" ><span class='usage-icon {icon}'>{usage}</span>%</span><!-- + --><span class='column-allocated' val="{allocated}">{allocated}</span><!-- + --><span class='column-capacity' val="{capacity}">{capacity}</span><!-- + --><span class="column-disks {state}"> + <div class="handle arrow-down"></div> + </span><!-- + --><span class="column-action storage-button" style="display:none"> + <span class="pull-right"> + <div class="dropdown menu-flat storage-action" data-state="{state}" data-type="{type}" data-name="{name}"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span></button> + <ul class="dropdown-menu actionsheet"> + <li role="presentation"> + <a href="#" class="pool-deactivate" data-stat="{state}" data-name="{name}" data-persistent="{persistent}" href="#"><i class="fa fa-minus-circle"></i>$_("Deactivate")</a> + </li> + <li role="presentation"> + <a href="#" class="pool-activate" data-stat="{state}" data-name="{name}"><i class="fa fa-power-off"></i>$_("Activate")</a> + </li> + <li role="presentation"> + <a href="#" class="pool-add-volume" data-stat="{state}" data-name="{name}" data-type="{type}"><i class="fa fa-plus-circle"></i>$_("Add Volume")</a> + </li> + <li role="presentation" class="{enableExt}"> + <a href="#" class="pool-extend" data-stat="{state}" data-name="{name}" data-toggle="modal" data-target="#logicalPoolExtend"><i class="fa fa-external-link-square"></i>$_("Extend")</a> + </li> + <li role="presentation" class="critical"> + <a href="#" class="pool-delete" data-stat="{state}" data-name="{name}"><i class="fa fa-ban"></i>$_("Undefine")</a> + </li> + </ul> + </div> + </span> + </span> + <div class="volumes"> + <div id="volume{name}" class="volumeslist" data-name="{name}" ></div> + <div class="clear"></div> + </div> + </div> +</script> +<script id="volumeTmpl" type="html/text"> + <div class="volume-box" data-volume-name="{name}"> + <div class="volume-title"> + <div class="volume-name" title="{name}">{name}</div> + <div class="volume-utilization"> + <span class="volume-icon {capacityIcon}"></span> + <span class="volume-usage">{capacityLevel}%</span> + </div> + <div class="volume-progress hidden"> + <div class="progress-bar-outer"> + <div class="progress-bar-inner"></div> + </div> + <div class="progress-label"> + <span class="progress-status"></span> + <span class="progress-transferred"></span> + </div> + </div> + </div> + <div class="volume-setting"> + </div> + <ul class="volume-data"> + <li> + <span class="value" title="{format}">{format}</span> + <span class="key">$_("Format")</span> + </li> + <li> + <span class="value" title="{type}">{type}</span> + <span class="key">$_("Type")</span> + </li> + <li> + <span class="value" title="{allocation}">{allocation}</span> + <span class="key">$_("Allocation")</span> + </li> + <li> + <span class="value" title="{capacity}">{capacity}</span> + <span class="key">$_("Capacity")</span> + </li> + </ul> + </div> +</script> +<script id="logicalPoolExtendTmpl" type="html/text"> + <div> + <input type="checkbox" class="wok-checkbox" id="{name}" value="{path}" name="devices"> + <label for="{name}"> + <div> + <span class="device-name">{name}</span> + <span class="device-path">{path}</span> + </div> + </label> + </div> +</script> +<script> + kimchi.storage_main(); +</script> +<div id="modalWindow" class="modal fade storage-modal" tabindex="-1" role="dialog" aria-labelledby="storageModalLabel" aria-hidden="true"> </div> +</body> +</html> \ No newline at end of file diff --git a/ui/pages/tabs/templates.html.tmpl b/ui/pages/tabs/templates.html.tmpl new file mode 100644 index 0000000..1031f52 --- /dev/null +++ b/ui/pages/tabs/templates.html.tmpl @@ -0,0 +1,102 @@ +#* +* Project Kimchi +* +* Copyright IBM, Corp. 2013-2014 +* +* 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. +*# +#unicode UTF-8 +#import gettext +#from wok.cachebust import href +#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) +#silent _ = t.gettext +#silent _t = t.gettext +<!DOCTYPE html> +<html> +<head> + <link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> + <script src="plugins/kimchi/js/kimchi.min.js"></script> +</head> +<body> + <div id="templates-root-container"> + <nav class="navbar navbar-default toolbar"> + <div class="container"> + <!-- Brand and toggle get grouped for better mobile display --> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse" id="toolbar"> + <ul class="nav navbar-nav navbar-right tools" display="none"> + <li><a id="template-add" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Template</span></a></li> + </ul> + </div> + </div> + </nav> + <div class="templates"> + <div class="container"> + <div class="row grid-control hidden"> + <div class="pull-right"> + <label for="templates-filter" class="sr-only">$_("Filter"):</label> + <input type="text" class="filter form-control" placeholder="$_("Filter")"> + </div> + </div> + <div id="alert-container"></div> + <div id="noTemplates" class="list-no-result" style="display: none;"> + $_("No templates found.") + </div> + <div id="alert-container"></div> + <ul id="templateList" class="wok-vm-list empty-when-logged-off"> + <script id="templateTmpl" type="html/text"> + <li class="wok-vm-body"> + <span class='column-name' title="{name}" val="{name}">{name}</span><!-- + --><span class='column-action pull-right'> + <span class="pull-right"> + <div class="dropdown menu-flat"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span> + </button> + <ul class="dropdown-menu" role="menu"> + <li role="presentation" nwAct="edit" class='template-edit'><a href="#" data-template='{name}'><i class="fa fa-pencil"></i>$_("Edit")</a></li> + <li role="presentation" nwAct="clone" class='template-clone'><a href="#" data-template='{name}'><i class="fa fa-files-o"></i>$_("Clone")</a></li> + <li role="presentation" nwAct="delete" class='critical template-delete'><a href="#" data-template='{name}'><i class="fa fa-minus-circle"></i>$_("Delete")</a></li> + </ul> + </div> + </span> + </span><!-- + --><span class='column-type distro-icon icon-{os_distro}' val="{os_distro}">{os_distro}</span><!-- + --><span class="item-hidden">$_("OS")</span><!-- + --><span class='column-version' val="{os_version}">{os_version}</span><!-- + --><span class="item-hidden">$_("Version")</span><!-- + --><span class='column-processors' val="{cpus}"><strong>{cpus}</strong> cores</span><!-- + --><span class="item-hidden">$_("CPUs")</span><!-- + --><span class='column-memory' val="{memory}"><strong>{memory}</strong> M</span><!-- + --><span class="item-hidden">$_("Memory")</span> + </li> + + </script> + </ul> + </div> + </div> + + <div id="modalWindow" class="modal fade host-modal templates-modal" tabindex="-1" role="dialog" aria-labelledby="templatesModalLabel" aria-hidden="true"> + </div> + <script> + kimchi.template_main(); + </script> +</body> +</html> diff --git a/ui/pages/templates.html.tmpl b/ui/pages/templates.html.tmpl deleted file mode 100644 index 1031f52..0000000 --- a/ui/pages/templates.html.tmpl +++ /dev/null @@ -1,102 +0,0 @@ -#* -* Project Kimchi -* -* Copyright IBM, Corp. 2013-2014 -* -* 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. -*# -#unicode UTF-8 -#import gettext -#from wok.cachebust import href -#silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang, fallback=True) -#silent _ = t.gettext -#silent _t = t.gettext -<!DOCTYPE html> -<html> -<head> - <link rel="stylesheet" href="plugins/kimchi/css/theme-default.min.css"> - <script src="plugins/kimchi/js/kimchi.min.js"></script> -</head> -<body> - <div id="templates-root-container"> - <nav class="navbar navbar-default toolbar"> - <div class="container"> - <!-- Brand and toggle get grouped for better mobile display --> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#toolbar" aria-expanded="false"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - </div> - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse" id="toolbar"> - <ul class="nav navbar-nav navbar-right tools" display="none"> - <li><a id="template-add" class="btn-tool" href="javascript:void(0);"><i class="fa fa-plus-circle"></i><span>Add a Template</span></a></li> - </ul> - </div> - </div> - </nav> - <div class="templates"> - <div class="container"> - <div class="row grid-control hidden"> - <div class="pull-right"> - <label for="templates-filter" class="sr-only">$_("Filter"):</label> - <input type="text" class="filter form-control" placeholder="$_("Filter")"> - </div> - </div> - <div id="alert-container"></div> - <div id="noTemplates" class="list-no-result" style="display: none;"> - $_("No templates found.") - </div> - <div id="alert-container"></div> - <ul id="templateList" class="wok-vm-list empty-when-logged-off"> - <script id="templateTmpl" type="html/text"> - <li class="wok-vm-body"> - <span class='column-name' title="{name}" val="{name}">{name}</span><!-- - --><span class='column-action pull-right'> - <span class="pull-right"> - <div class="dropdown menu-flat"> - <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span> - </button> - <ul class="dropdown-menu" role="menu"> - <li role="presentation" nwAct="edit" class='template-edit'><a href="#" data-template='{name}'><i class="fa fa-pencil"></i>$_("Edit")</a></li> - <li role="presentation" nwAct="clone" class='template-clone'><a href="#" data-template='{name}'><i class="fa fa-files-o"></i>$_("Clone")</a></li> - <li role="presentation" nwAct="delete" class='critical template-delete'><a href="#" data-template='{name}'><i class="fa fa-minus-circle"></i>$_("Delete")</a></li> - </ul> - </div> - </span> - </span><!-- - --><span class='column-type distro-icon icon-{os_distro}' val="{os_distro}">{os_distro}</span><!-- - --><span class="item-hidden">$_("OS")</span><!-- - --><span class='column-version' val="{os_version}">{os_version}</span><!-- - --><span class="item-hidden">$_("Version")</span><!-- - --><span class='column-processors' val="{cpus}"><strong>{cpus}</strong> cores</span><!-- - --><span class="item-hidden">$_("CPUs")</span><!-- - --><span class='column-memory' val="{memory}"><strong>{memory}</strong> M</span><!-- - --><span class="item-hidden">$_("Memory")</span> - </li> - - </script> - </ul> - </div> - </div> - - <div id="modalWindow" class="modal fade host-modal templates-modal" tabindex="-1" role="dialog" aria-labelledby="templatesModalLabel" aria-hidden="true"> - </div> - <script> - kimchi.template_main(); - </script> -</body> -</html> -- 2.5.0

Each plugin is able to specify if an URI needs or not authentication and it must be per URI. Setting / to require authentication to the whole application will lead on UI issues and the frontend will not be able to load HTML content as it is protected behind authentication. This problem was identified when accessing an specific URI (for example, https://localhost:8001/#plugins/kimchi/tabs/guests) without login into Wok. The expected behavior was the user to be redirected to the login page, but as the / was protected, a blank screen was shown. So fix it, by removing authentication from / and keep it for specific URIs. Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com> --- kimchi.conf | 1 - tests/test_config.py.in | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/kimchi.conf b/kimchi.conf index ebf346f..1b0dbb3 100644 --- a/kimchi.conf +++ b/kimchi.conf @@ -16,7 +16,6 @@ tools.sessions.httponly = True tools.sessions.locking = 'explicit' tools.sessions.storage_type = 'ram' tools.sessions.timeout = 10 -tools.wokauth.on = True [/data/screenshots] tools.staticdir.on = True diff --git a/tests/test_config.py.in b/tests/test_config.py.in index 171dfbb..249176d 100644 --- a/tests/test_config.py.in +++ b/tests/test_config.py.in @@ -92,8 +92,7 @@ class ConfigTests(unittest.TestCase): 'tools.sessions.httponly': True, 'tools.sessions.locking': 'explicit', 'tools.sessions.storage_type': 'ram', - 'tools.sessions.timeout': SESSIONSTIMEOUT, - 'tools.wokauth.on': True + 'tools.sessions.timeout': SESSIONSTIMEOUT }, '/novnc': { 'tools.wokauth.on': True, -- 2.5.0
participants (1)
-
Aline Manera