From: samhenri <samuel.guimaraes(a)eldorado.org.br>
Signed-off-by: samhenri <samuel.guimaraes(a)eldorado.org.br>
---
.../kimchi/ui/css/theme-default/network.css | 267 ---------------------
src/wok/plugins/kimchi/ui/js/src/kimchi.network.js | 72 +++---
src/wok/plugins/kimchi/ui/pages/network.html.tmpl | 185 ++++++++------
3 files changed, 139 insertions(+), 385 deletions(-)
delete mode 100644 src/wok/plugins/kimchi/ui/css/theme-default/network.css
diff --git a/src/wok/plugins/kimchi/ui/css/theme-default/network.css
b/src/wok/plugins/kimchi/ui/css/theme-default/network.css
deleted file mode 100644
index fc8a24f..0000000
--- a/src/wok/plugins/kimchi/ui/css/theme-default/network.css
+++ /dev/null
@@ -1,267 +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.
- */
-
-.network {
- margin: 5px;
-}
-
-.network .grid-control {
- height: 40px;
- padding: 5px 0;
-}
-
-.network .grid-control .filter {
- width: 300px;
- padding: 5px;
- float: right;
-}
-
-.network .list .column-name {
- width: 20%;
- max-width: 20%;
- text-overflow: ellipsis;
-}
-
-.network .list .column-state {
- width: 10%;
-}
-
-.network .list .column-type {
- width: 15%;
-}
-
-.network .list .column-interface {
- width: 15%;
-}
-
-.network .list .column-space {
- width: 25%;
-}
-
-.network .list .column-action {
- display: inline-block;
- float: right;
- height: 40px;
-}
-
-.network .list .hide-action-item {
- display: none;
-}
-
-.network .list .menu-container {
- display: none;
- top: 58px;
-}
-
-.network .list .action-button {
- float: right;
- margin-top: 2px;
- margin-left: 5px;
-}
-
-.network .list .action-button-icon {
- background: url("../images/theme-default/arrow-down-black.png") no-repeat
- scroll center center transparent;
-}
-
-.network .list .ui-state-disabled {
- margin: 0px;
-}
-
-.network .list .network-state {
- display: inline-block;
- height: 16px;
- width: 16px;
- border-radius: 8px;
- margin-left: 10px;
-}
-
-.network .list .nw-loading {
- background: #c0c0c0 url(../images/theme-default/loading.gif)
- center no-repeat;
-}
-
-.network .list .up {
- background: linear-gradient(to bottom, #BFD255 0%, #8EB92A 50%,
- #72AA00 51%, #9ECB2D 100%) repeat scroll 0 0 transparent;
-}
-
-.network .list .down {
- background: linear-gradient(to bottom, #AFAFAF 0%, #AFAFAF 50%,
- #AFAFAF 51%, #AFAFAF 100%) repeat scroll 0 0 transparent;
-}
-
-.network-config {
- font-family: Arial;
- font-size: 12px;
- margin-bottom: 40px;
- display: none;
-}
-
-.network-config .section-container {
- margin-top: 20px;
-}
-
-.network-config .section-container:first-child {
- margin-top: 10px;
-}
-
-.network-config .section-container:last-child {
- height: 200px;
-}
-
-.network-config .section-container .bridged-inline {
- display: inline-block;
- vertical-align: top;
- max-width: 520px;
-}
-
-.network-config .section-header {
- font-size: 14px;
- font-weight: lighter;
-}
-
-.network-config .section-content {
- margin-top: 10px;
-}
-
-.network-config input[type="text"] {
- border: 1px solid #CCCCCC;
- font-size: 16px;
- height: 30px;
- width: 300px;
- line-height: 30px;
- padding: 0 5px;
-}
-
-.network-config input.invalid-field[type="text"] {
- border-color: #FF4444;
-}
-
-.network-config input.invalid-field[type="text"][disabled] {
- border-color: #666666;
-}
-
-.network-config input[type="radio"] {
- margin-right: 5px;
- margin-top: 0px;
-}
-
-.network-config select {
- color: #666666;
- border: solid 1px;
- background-color: white;
- padding: 3px 4px 3px 0;
-}
-
-.network-config .input-container {
- height: 20px;
-}
-
-.network-config label {
- vertical-align: top;
-}
-
-.network-type-wrapper-controls input[type="text"] {
- height: 38px;
- line-height: 38px;
- background: #fff;
- -webkit-border-radius: 5px;
- border-radius: 5px;
- box-shadow: 2px 2px 2px #eee inset;
- border-top: 1px solid #bbb;
- border-left: 1px solid #bbb;
- padding: 0 10px;
- margin-top: 5px;
- width: 50px;
-}
-
-.network-type-wrapper-controls > .dropdown {
- margin: 5px 0 0 1px;
- width: 180px;
-}
-
-.network-type-wrapper-controls input[type="text"][disabled] {
- color: #bbb;
- background-color: #fafafa;
- cursor: not-allowed;
-}
-
-.network-type-wrapper-controls span[type="text"] {
- padding: 0 10px;
-}
-
-.bridge-option-column {
- display: inline-block;
- vertical-align: middle;
-}
-
-.bridge-option-column label {
- margin-left: 42px;
-}
-
-.network-type-wrapper-controls {
- width: 80px;
- display: inline-block;
- vertical-align: top;
- padding: 5px 5px 5px 22px;
-}
-
-#enableVlan {
- margin-left: 42px;
- vertical-align: middle;
-}
-
-#labelEnableVlan {
- vertical-align: middle;
-}
-
-#labelNetworkVlanID {
- margin-left: 42px;
- vertical-align: middle;
- display: none;
-}
-
-#networkVlanID {
- width: 80px;
- vertical-align: middle;
- display: none;
-}
-
-.network-config .input-hint-icon {
- margin: -1px 1px 0 0;
- display: inline-block;
-}
-
-.network-config .input-hint {
- margin-top: 3px;
-}
-
-.network-config .input-hint-text {
- color: #999999;
- font-weight: lighter;
- font-size: 12px;
-}
-
-.ui-state-default a {
- color: #212121;
-}
-
-#networkConfig {
- padding-left: 30px;
-}
diff --git a/src/wok/plugins/kimchi/ui/js/src/kimchi.network.js
b/src/wok/plugins/kimchi/ui/js/src/kimchi.network.js
index c43b59a..13d2cd1 100644
--- a/src/wok/plugins/kimchi/ui/js/src/kimchi.network.js
+++ b/src/wok/plugins/kimchi/ui/js/src/kimchi.network.js
@@ -21,7 +21,7 @@ kimchi.NETWORK_TYPE_BRIDGE = "bridged";
kimchi.initNetwork = function() {
if(wok.tabMode['network'] === 'admin') {
$('.tools').attr('style','display');
- $('#network-content .header
span:last-child').attr('style','display');
+ $('#networkGrid .wok-nw-grid-header
span:last-child').attr('style','display');
kimchi.initNetworkCreation();
}
kimchi.initNetworkListView();
@@ -47,9 +47,9 @@ kimchi.initNetworkListView = function() {
network.persistent = data[i].persistent;
kimchi.addNetworkItem(network);
}
- $('#networkGrid').grid({enableSorting: false});
- $('input', $('.grid-control',
'#network-content')).on('keyup', function(){
- $('#networkGrid').grid('filter', $(this).val());
+ $('#networkGrid').dataGrid({enableSorting: false});
+ $('input', $('.grid-control',
'#network-content-container')).on('keyup', function(){
+ $('#networkGrid').dataGrid('filter', $(this).val());
});
});
};
@@ -59,8 +59,6 @@ kimchi.addNetworkItem = function(network) {
$("#networkBody").append(itemNode);
if(wok.tabMode["network"] === "admin") {
$(".column-action").attr("style","display");
- } else {
- $(".column-space").addClass('column-space-no-border-right');
}
kimchi.addNetworkActions(network);
return itemNode;
@@ -77,67 +75,67 @@ kimchi.getNetworkItemHtml = function(network) {
network.type = i18n["network_type_" + network.type];
}
- var disable_in_use = network.in_use ? "ui-state-disabled" : "";
+ var disable_in_use = network.in_use ? "disabled" : "";
var networkItem = wok.substitute($('#networkItem').html(), {
name : network.name,
state : network.state,
type : network.type,
interface: network.interface,
addrSpace : network.addrSpace,
- startClass : network.state === "up" ? "hide-action-item" :
"",
- stopClass : network.state === "down" ? "hide-action-item" :
disable_in_use,
+ startClass : network.state === "up" ? "wok-hide-action-item"
: "",
+ stopClass : network.state === "down" ? "wok-hide-action-item"
: disable_in_use,
stopDisabled : network.in_use ? "disabled" : "",
- deleteClass : network.state === "up" || network.in_use ?
"ui-state-disabled" : "",
+ deleteClass : network.state === "up" || network.in_use ?
"disabled" : "",
deleteDisabled: network.state === "up" || network.in_use ?
"disabled" : ""
});
return networkItem;
};
kimchi.stopNetwork = function(network,menu) {
- $(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("up", "nw-loading");
- $("[nwAct='stop']", menu).addClass("ui-state-disabled");
+ $(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("up", "loading");
+ $("[nwAct='stop']", menu).addClass("disabled");
kimchi.toggleNetwork(network.name, false, function() {
- $("[nwAct='start']",
menu).removeClass("hide-action-item");
- $("[nwAct='stop']",
menu).addClass("hide-action-item");
- $("[nwAct='stop']",
menu).removeClass("ui-state-disabled");
+ $("[nwAct='start']",
menu).removeClass("wok-hide-action-item");
+ $("[nwAct='stop']",
menu).addClass("wok-hide-action-item");
+ $("[nwAct='stop']", menu).removeClass("disabled");
if (!network.in_use) {
- $("[nwAct='delete']",
menu).removeClass("ui-state-disabled");
+ $("[nwAct='delete']",
menu).removeClass("disabled");
$(":first-child", $("[nwAct='delete']",
menu)).removeAttr("disabled");
}
- $(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("nw-loading", "down");
+ $(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("loading", "down");
}, function(err) {
- $(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("nw-loading", "up");
+ $(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("loading", "up");
if (!network.in_use) {
- $("[nwAct='stop']",
menu).removeClass("ui-state-disabled");
+ $("[nwAct='stop']",
menu).removeClass("disabled");
}
wok.message.error(err.responseJSON.reason);
});
}
kimchi.addNetworkActions = function(network) {
- $(".menu-container", "#" + wok.escapeStr(network.name)).menu();
+ //$(".dropdown-menu", "#" + wok.escapeStr(network.name)).menu();
- $('#' + wok.escapeStr(network.name)).on('click', '.menu-container
li', function(evt) {
+ $('#' + wok.escapeStr(network.name)).on('click', '.dropdown-menu
li', function(evt) {
var menu = $(evt.currentTarget).parent();
if ($(evt.currentTarget).attr("nwAct") === "start") {
$(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("down", "nw-loading");
- $("[nwAct='start']",
menu).addClass("ui-state-disabled");
- $("[nwAct='delete']",
menu).addClass("ui-state-disabled");
+ $("[nwAct='start']", menu).addClass("disabled");
+ $("[nwAct='delete']",
menu).addClass("disabled");
$(":first-child", $("[nwAct='delete']",
menu)).attr("disabled", true);
kimchi.toggleNetwork(network.name, true, function() {
- $("[nwAct='start']",
menu).addClass("hide-action-item");
- $("[nwAct='start']",
menu).removeClass("ui-state-disabled");
- $("[nwAct='stop']",
menu).removeClass("hide-action-item");
+ $("[nwAct='start']",
menu).addClass("wok-hide-action-item");
+ $("[nwAct='start']",
menu).removeClass("disabled");
+ $("[nwAct='stop']",
menu).removeClass("wok-hide-action-item");
network.state = "up";
if (network.in_use) {
- $("[nwAct='stop']",
menu).addClass("ui-state-disabled");
+ $("[nwAct='stop']",
menu).addClass("disabled");
}
$(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("nw-loading", "up");
}, function(err) {
$(".network-state", $("#" +
wok.escapeStr(network.name))).switchClass("nw-loading","down");
- $("[nwAct='start']",
menu).removeClass("ui-state-disabled");
+ $("[nwAct='start']",
menu).removeClass("disabled");
if (!network.in_use) {
- $("[nwAct='delete']",
menu).removeClass("ui-state-disabled");
+ $("[nwAct='delete']",
menu).removeClass("disabled");
}
$(":first-child", $("[nwAct='delete']",
menu)).removeAttr("disabled");
wok.message.error(err.responseJSON.reason);
@@ -155,7 +153,7 @@ kimchi.addNetworkActions = function(network) {
};
wok.confirm(settings, function() {
kimchi.stopNetwork(network, menu);
- $('#networkGrid').grid('deleteRow',
$(evt.currentTarget).parents(".row"));
+ $('#networkGrid').dataGrid('deleteRow',
$(evt.currentTarget).parents(".row"));
}, null);
}
else {
@@ -173,17 +171,13 @@ kimchi.addNetworkActions = function(network) {
cancel : i18n['KCHAPI6003M']
}, function() {
kimchi.deleteNetwork(network.name, function() {
- $('#networkGrid').grid('deleteRow',
$(evt.currentTarget).parents(".row"));
+ $('#networkGrid').dataGrid('deleteRow',
$(evt.currentTarget).parents(".row"));
});
}, null);
}
});
- $("#networkBody .column-action .popable").button({
- icons : {
- secondary : "action-button-icon"
- }
- });
+ //$("#networkBody .column-action .dropdown.menu-flat").button();
};
@@ -217,7 +211,7 @@ kimchi.initNetworkCreation = function() {
network.interface = result.interface ? result.interface :
i18n["KCHNET6001M"];
network.addrSpace = result.subnet ? result.subnet :
i18n["KCHNET6001M"];
network.persistent = result.persistent;
- $('#networkGrid').grid('addRow',
kimchi.addNetworkItem(network));
+ $('#networkGrid').dataGrid('addRow',
kimchi.addNetworkItem(network));
$("#networkConfig").dialog("close");
}, function(data) {
wok.message.error(data.responseJSON.reason);
@@ -231,13 +225,13 @@ kimchi.initNetworkDialog = function() {
buttonsObj= {};
buttonsObj['id'] = "networkFormOk";
buttonsObj['text'] = i18n.KCHAPI6005M;
- buttonsObj['class'] = "btn-normal";
+ buttonsObj['class'] = "btn btn-default";
buttonsObj['disabled'] = true;
buttonsObj['click'] = function() { };
buttonsObjCancel= {};
buttonsObjCancel['id'] = "networkFormCancel";
buttonsObjCancel['text'] = i18n.KCHAPI6003M;
- buttonsObjCancel['class'] = "btn-normal";
+ buttonsObjCancel['class'] = "btn btn-default";
buttonsObjCancel['disabled'] = false;
buttonsObjCancel['click'] = function() {
$(this).dialog("close");
diff --git a/src/wok/plugins/kimchi/ui/pages/network.html.tmpl
b/src/wok/plugins/kimchi/ui/pages/network.html.tmpl
index 915feac..75721d7 100644
--- a/src/wok/plugins/kimchi/ui/pages/network.html.tmpl
+++ b/src/wok/plugins/kimchi/ui/pages/network.html.tmpl
@@ -29,102 +29,129 @@
<script src="plugins/kimchi/js/kimchi.min.js"></script>
</head>
<body>
-<div class="toolbar">
- <div class="tools" style="display:none">
- <a id="networkAdd" class="btn-tool"
href="javascript:void(0);"><span class="icon
add">+</span></a>
- </div>
-</div>
-<div id="network-content" class="network">
- <div class="grid-control"><input type="text"
class="filter" placeholder="$_("Filter")"></div>
- <div id="networkGrid" class="list">
- <div>
- <span class="column-name">$_("Network
Name")</span><!--
- --><span
class="column-state">$_("State")</span><!--
- --><span class="column-type">$_("Network
Type")</span><!--
- --><span
class="column-interface">$_("Interface")</span><!--
- --><span class="column-space">$_("Address
Space")</span><!--
- --><span
style="display:none">$_("Actions")</span>
- </div>
- <div id="networkBody"
class="empty-when-logged-off"></div>
- </div>
- <div id="networkConfig" class="network-config">
- <div class="section-container">
- <div class="section-header">1. $_("Network
Name")</div>
- <div class="section-content">
- <input type="text" id="networkName" />
- <div class="input-hint">
- <span class="icon-info-circled light-grey c1
help-inline"></span>
- <span class="input-hint-text
help-inline">$_("Name should not contain '/' and
'\"'.")</span>
- </div>
+<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>
- <div class="section-container">
- <div class="section-header">2. $_("Network
Type")</div>
- <div class="section-content">
- <div class="input-container">
- <input type="radio" id="networkTypeIso"
name="networkType" value="isolated" />
- <label for="networkTypeIso">$_("Isolated: no
external network connection")</label>
+ </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 class="input-container">
- <input type="radio" id="networkTypeNat"
name="networkType" value="nat" />
- <label for="networkTypeNat">$_("NAT: outbound
physical network connection only")</label>
+ </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 class="input-container">
- <div class="bridged-inline">
- <input type="radio" id="networkTypeBri"
name="networkType" value="bridged" />
- </div>
- <div class="bridged-inline">
- <label for="networkTypeBri">$_("Bridged:
Virtual machines are connected to physical network directly")</label><br
/>
- <label id="networkBriDisabledLabel"
style="display:none">$_("(No interfaces found)")</label>
+ <div id="networkBody"
class="empty-when-logged-off"></div>
+ </div>
+ <div id="networkConfig" class="network-config">
+ <div class="section-container">
+ <div class="section-header">1. $_("Network
Name")</div>
+ <div class="section-content">
+ <input type="text" id="networkName" />
+ <div class="input-hint">
+ <span class="icon-info-circled light-grey c1
help-inline"></span>
+ <span class="input-hint-text
help-inline">$_("Name should not contain '/' and
'\"'.")</span>
+ </div>
</div>
</div>
- <div id="bridgeOptions">
- <div>
- <div class="bridge-option-column">
- <label
for="networkInterface">$_("Destination"): </label>
+ <div class="section-container">
+ <div class="section-header">2. $_("Network
Type")</div>
+ <div class="section-content">
+ <div class="input-container">
+ <input type="radio"
id="networkTypeIso" name="networkType" value="isolated"
/>
+ <label
for="networkTypeIso">$_("Isolated: no external network
connection")</label>
+ </div>
+ <div class="input-container">
+ <input type="radio"
id="networkTypeNat" name="networkType" value="nat" />
+ <label for="networkTypeNat">$_("NAT:
outbound physical network connection only")</label>
+ </div>
+ <div class="input-container">
+ <div class="bridged-inline">
+ <input type="radio"
id="networkTypeBri" name="networkType" value="bridged"
/>
+ </div>
+ <div class="bridged-inline">
+ <label
for="networkTypeBri">$_("Bridged: Virtual machines are connected to
physical network directly")</label><br />
+ <label id="networkBriDisabledLabel"
style="display:none">$_("(No interfaces found)")</label>
+ </div>
</div>
- <div class="bridge-option-column">
- <div class="network-type-wrapper-controls">
- <div id ="networkDestinationID">
- <input id="networkDestinationInputId"
name="type" type="hidden"/>
- <span id="networkDestinationLabel"
type="text"></span><span class="arrow"></span>
- <div>
- <ul
id="networkInterface"></ul>
+ <div id="bridgeOptions">
+ <div>
+ <div class="bridge-option-column">
+ <label
for="networkInterface">$_("Destination"): </label>
+ </div>
+ <div class="bridge-option-column">
+ <div
class="network-type-wrapper-controls">
+ <div id ="networkDestinationID">
+ <input
id="networkDestinationInputId" name="type"
type="hidden"/>
+ <span
id="networkDestinationLabel" type="text"></span><span
class="arrow"></span>
+ <div>
+ <ul
id="networkInterface"></ul>
+ </div>
+ </div>
</div>
</div>
</div>
+ <div>
+ <input id="enableVlan"
type="checkbox" value="" />
+ <label for="enableVlan"
id="labelEnableVlan">$_("Enable VLAN") </label>
+ </div>
+ <label for="networkVlanID"
id="labelNetworkVlanID">$_("VLAN ID"): </label>
+ <input type="text"
id="networkVlanID" class="network-label"/>
+ </div>
</div>
</div>
- <div>
- <input id="enableVlan" type="checkbox"
value="" />
- <label for="enableVlan"
id="labelEnableVlan">$_("Enable VLAN") </label>
- </div>
- <label for="networkVlanID"
id="labelNetworkVlanID">$_("VLAN ID"): </label>
- <input type="text" id="networkVlanID"
class="network-label"/>
- </div>
</div>
</div>
</div>
- </div>
</div>
<script id="networkItem" type="text/html">
- <div id='{name}' class='remove-when-logged-off'>
- <span class='column-name' title="{name}"
val="{name}">{name}</span><!--
- --><span class='column-state' val="{state}"><span
class='network-state {state}'></span></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="ui-button-secondary dropdown popable
action-button">
- $_("Actions")
- <ul class='popover actionsheet right-side menu-container'>
- <li nwAct="start" class='{startClass}'><a
class='button-big'>$_("Start")</a></li>
- <li nwAct="stop" class='{stopClass}'><a
{stopDisabled} class='button-big'>$_("Stop")</a></li>
- <li nwAct="delete" class='{deleteClass}'><a
{deleteDisabled} class='red'>$_("Delete")</a></li>
- </ul>
- </span>
- </span>
- </div>
+ <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();
--
1.9.3