diff --git a/admin/inc/class.admin_cmds.inc.php b/admin/inc/class.admin_cmds.inc.php
index 6b215c5f8e..a67281bb42 100644
--- a/admin/inc/class.admin_cmds.inc.php
+++ b/admin/inc/class.admin_cmds.inc.php
@@ -11,6 +11,7 @@
  */
 
 use EGroupware\Api;
+use EGroupware\Api\Etemplate;
 
 /**
  * UI for the admin comand queue
@@ -47,7 +48,13 @@ class admin_cmds
 			catch (Exception $e) {
 				$row['title'] = $e->getMessage();
 			}
-			$readonlys["delete[$row[id]]"] = $row['status'] != admin_cmd::scheduled;
+			$row['data'] = !($data = json_php_unserialize($row['data'])) ? '' :
+				json_encode($data, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
+
+			if ($row['status'] == admin_cmd::scheduled)
+			{
+				$row['class'] = 'AllowDelete';
+			}
 		}
 		//_debug_array($rows);
 		return $total;
@@ -60,7 +67,7 @@ class admin_cmds
 	 */
 	static function index(array $content=null)
 	{
-		$tpl = new etemplate('admin.cmds');
+		$tpl = new Etemplate('admin.cmds');
 
 		if (!is_array($content))
 		{
@@ -74,6 +81,9 @@ class admin_cmds
 					'no_cat' => true,		// I  disable the cat-selectbox
 					'order' => 'cmd_created',
 					'sort' => 'DESC',
+					'row_id' => 'id',
+					'default_cols' => 'title,created,creator,status',
+					'actions' => self::cmd_actions(),
 				);
 			}
 		}
@@ -94,6 +104,21 @@ class admin_cmds
 		),array(),$content);
 	}
 
+	/**
+	 * Acctions for command list/index
+	 *
+	 * As we only allow to delete scheduled command, which we currently can only create via admin-cli,
+	 * I have not (yet) implemented delete of scheduled commands.
+	 *
+	 * @return array
+	 */
+	static function cmd_actions()
+	{
+		return array(
+
+		);
+	}
+
 	/**
 	 * get_rows for remote instances
 	 *
@@ -114,7 +139,7 @@ class admin_cmds
 	 */
 	static function remotes(array $content=null)
 	{
-		$tpl = new etemplate('admin.remotes');
+		$tpl = new Etemplate('admin.remotes');
 
 		if (!is_array($content))
 		{
@@ -128,7 +153,8 @@ class admin_cmds
 					'no_cat' => true,		// I  disable the cat-selectbox
 					'order' => 'remote_name',
 					'sort' => 'ASC',
-					'header_right' => 'admin.remotes.header_right',
+					'row_id' => 'remote_id',
+					'actions' => self::remote_actions(),
 				);
 			}
 		}
@@ -137,12 +163,17 @@ class admin_cmds
 			//_debug_array($content);
 			unset($content['msg']);
 
-			if ($content['nm']['rows']['edit'])
+			if ($content['nm']['action'])
 			{
-				list($id) = each($content['nm']['rows']['edit']);
-				unset($content['nm']['rows']);
-
-				$content['remote'] = admin_cmd::read_remote($id);
+				switch($content['nm']['action'])
+				{
+					case 'edit':
+						$content['remote'] = admin_cmd::read_remote($content['nm']['selected'][0]);
+						break;
+					case 'add':
+						$content['remote'] = array('remote_domain' => 'default');
+				}
+				unset($content['nm']['action']);
 			}
 			elseif($content['remote']['button'])
 			{
@@ -180,6 +211,34 @@ class admin_cmds
 			}
 		}
 		$tpl->exec('admin.admin_cmds.remotes',$content,array(),array(),$content);
+	}
 
+	/**
+	 * Actions for remotes list
+	 *
+	 * @return array
+	 */
+	static function remote_actions()
+	{
+		return array(
+			'edit' => array(
+				'caption' => 'Edit',
+				'default' => true,
+				'allowOnMultiple' => false,
+				'nm_action' => 'submit',
+				'group' => $group=0,
+			),
+			'add' => array(
+				'caption' => 'Add',
+				'nm_action' => 'submit',
+				'group' => ++$group,
+			),
+			/* not (yet) implemented
+			'delete' => array(
+				'caption' => 'Delete',
+				'nm_action' => 'submit',
+				'group' => ++$group,
+			),*/
+		);
 	}
 }
diff --git a/admin/inc/class.admin_hooks.inc.php b/admin/inc/class.admin_hooks.inc.php
index e6b736dfbf..b3aca12bd7 100644
--- a/admin/inc/class.admin_hooks.inc.php
+++ b/admin/inc/class.admin_hooks.inc.php
@@ -133,8 +133,8 @@ class admin_hooks
 			{
 				$file['phpInfo']         = "javascript:egw.openPopup('" . Egw::link('/admin/phpinfo.php','',false) . "',960,600,'phpinfoWindow')";
 			}
-			$file['Admin queue and history'] = Egw::link('/index.php','menuaction=admin.admin_cmds.index');
-			$file['Remote administration instances'] = Egw::link('/index.php','menuaction=admin.admin_cmds.remotes');
+			$file['Admin queue and history'] = Egw::link('/index.php','menuaction=admin.admin_cmds.index&ajax=true');
+			$file['Remote administration instances'] = Egw::link('/index.php','menuaction=admin.admin_cmds.remotes&ajax=true');
 			$file['Custom translation'] = Egw::link('/index.php','menuaction=admin.admin_customtranslation.index');
 			$file['Changelog and versions'] = Egw::link('/about.php');
 
diff --git a/admin/templates/default/cmds.xet b/admin/templates/default/cmds.xet
index 945c4ce53d..764c28db01 100644
--- a/admin/templates/default/cmds.xet
+++ b/admin/templates/default/cmds.xet
@@ -5,14 +5,13 @@
 	<template id="admin.cmds.rows" template="" lang="" group="0" version="1.5.001">
 		<grid width="100%">
 			<columns>
+				<column width="30%" minWidth="300"/>
 				<column/>
 				<column/>
 				<column/>
-				<column/>
-				<column/>
-				<column/>
-				<column/>
-				<column/>
+				<column width="120"/>
+				<column width="120"/>
+				<column width="30%" minWidth="120"/>
 				<column/>
 				<column/>
 			</columns>
@@ -20,33 +19,27 @@
 				<row class="th">
 					<nextmatch-header label="Title" id="title"/>
 					<nextmatch-header label="Requested" id="requested"/>
-					<nextmatch-sortheader label="Scheduled" id="cmd_scheduled"/>
+					<nextmatch-sortheader label="Scheduled" id="scheduled"/>
 					<nextmatch-filterheader options="Remote" id="remote_id"/>
-					<nextmatch-sortheader label="Created" id="cmd_created"/>
-					<nextmatch-accountfilter id="creator" options="Creator"/>
-					<nextmatch-filterheader id="status" options="Status"/>
-					<nextmatch-sortheader label="Modified" id="cmd_modified"/>
+					<nextmatch-sortheader label="Created" id="created"/>
+					<nextmatch-accountfilter empty_label="Creator" id="creator"/>
+					<nextmatch-filterheader empty_label="Status" id="status"/>
+					<nextmatch-sortheader label="Modified" id="modified"/>
 					<nextmatch-accountfilter options="Modifier" id="modifier"/>
-					<description/>
 				</row>
-				<row class="row" disabled="!@1">
-					<description id="${row}[title]"/>
+				<row class="row $row_cont[class]">
+					<description id="${row}[title]" statustext="$row_cont[data]"/>
 					<url-email id="${row}[requested]" options=",,,$row_cont[requested_email]" readonly="true"/>
 					<date-time id="${row}[scheduled]" readonly="true"/>
-					<menulist>
-						<menupopup id="${row}[remote_id]" readonly="true"/>
-					</menulist>
+					<select id="${row}[remote_id]" readonly="true"/>
 					<date-time id="${row}[created]" readonly="true"/>
-					<url-email id="${row}[creator]" options=",,,$row_cont[creator_email]" readonly="true"/>
-					<vbox options="0,0">
-						<menulist>
-							<menupopup id="${row}[status]" readonly="true"/>
-						</menulist>
+					<select-account id="${row}[creator]" readonly="true" statustext="$row_cont[creator_email]"/>
+					<vbox>
+						<select id="${row}[status]" readonly="true"/>
 						<description id="${row}[error]" class="redItalic"/>
 					</vbox>
 					<date-time id="${row}[modified]" readonly="true"/>
-					<url-email id="${row}[modifier]" readonly="true" options=",,,$row_cont[modifier_email]"/>
-					<button image="delete" label="Cancel" id="delete[$row_cont[id]]" statustext="Cancel this scheduled command" onclick="et2_dialog.confirm(widget,'Cancel this scheduled command','Cancel');"/>
+					<select-account id="${row}[modifier]" readonly="true" statustext="$row_cont[modifier_email]"/>
 				</row>
 			</rows>
 		</grid>
diff --git a/admin/templates/default/remotes.xet b/admin/templates/default/remotes.xet
index a9e9873d6f..6720b55a92 100644
--- a/admin/templates/default/remotes.xet
+++ b/admin/templates/default/remotes.xet
@@ -41,58 +41,47 @@
 					<hbox span="all">
 						<button label="Save" id="button[save]" statustext="Saves this entry"/>
 						<button id="button[apply]" label="Apply" statustext="Apply the changes"/>
-						<button label="Cancel" id="button[cancel]" statustext="leave without saveing the entry"/>
+						<button label="Cancel" id="button[cancel]" statustext="leave without saveing the entry" novalidate="true"/>
 					</hbox>
 				</row>
 			</rows>
 		</grid>
 	</template>
-	<template id="admin.remotes.header_right" template="" lang="" group="0" version="1.5.001">
-		<button rows="1" cols="1" id="add" label="Add" statustext="Add a new remote instance"/>
-	</template>
 	<template id="admin.remotes.rows" template="" lang="" group="0" version="1.5.001">
 		<grid>
 			<columns>
 				<column/>
 				<column/>
 				<column/>
-				<column/>
 			</columns>
 			<rows>
 				<row class="th">
 					<nextmatch-sortheader label="Name" id="remote_name"/>
 					<nextmatch-sortheader label="URL" id="remote_url"/>
 					<nextmatch-sortheader label="Instance" id="remote_domain"/>
-					<description value="Actions"/>
 				</row>
 				<row class="row">
 					<description id="${row}[remote_name]"/>
 					<description options=",$row_cont[remote_url]/?domain=$row_cont[remote_domain],,,_blank" id="${row}[remote_url]"/>
 					<description id="${row}[remote_domain]" no_lang="1"/>
-					<hbox align="center">
-						<button image="edit" label="Edit" id="edit[$row_cont[remote_id]]"/>
-					</hbox>
 				</row>
 			</rows>
 		</grid>
 	</template>
+	<template id="admin.remotes.header_left" template="" lang="" group="0" version="1.5.001">
+		<button id="add" label="Add" statustext="Add a new remote instance"/>
+	</template>
 	<template id="admin.remotes" template="" lang="" group="0" version="1.5.001">
 		<grid width="100%">
 			<columns>
 				<column/>
 			</columns>
 			<rows>
-				<row disabled="!@msg">
-					<description span="all" class="redItalic" id="msg"/>
-				</row>
 				<row disabled="!@remote">
 					<template content="remote" span="all" class="border" id="admin.remotes.edit"/>
 				</row>
-				<row disabled="1">
-					<template align="right" id="admin.remotes.header_right"/>
-				</row>
 				<row>
-					<nextmatch id="nm" options="admin.remotes.rows"/>
+					<nextmatch id="nm" options="admin.remotes.rows" header_left="admin.remotes.header_left"/>
 				</row>
 			</rows>
 		</grid>