diff --git a/qml/js/WallaBase.js b/qml/js/WallaBase.js
index eee2d8f..554a053 100644
--- a/qml/js/WallaBase.js
+++ b/qml/js/WallaBase.js
@@ -166,6 +166,20 @@ function updateServer( id, props )
);
}
+function deleteServer( id )
+{
+ var db = getDatabase();
+
+ db.transaction(
+ function( tx ) {
+ console.debug( "Deleting server " + id );
+ // TODO: try/catch here when error management is in place in the UI
+ tx.executeSql( "DELETE FROM articles WHERE server=?", [ id ] );
+ tx.executeSql( "DELETE FROM servers WHERE id=?", [ id ] );
+ }
+ );
+}
+
function setServerLastSync( id, last )
{
var db = getDatabase();
diff --git a/qml/pages/ServersPage.qml b/qml/pages/ServersPage.qml
index ed61e0d..888ae8e 100644
--- a/qml/pages/ServersPage.qml
+++ b/qml/pages/ServersPage.qml
@@ -98,6 +98,38 @@ Page {
id: listEntry
width: parent.width
+ RemorseItem {
+ id: serverRemorse
+ }
+
+ function showRemorse( idx ) {
+ serverRemorse.execute(
+ listEntry,
+ qsTr( "Deleting" ),
+ function() {
+ var server = serversModel.get( idx )
+ WallaBase.deleteServer( server.id )
+ serversPage.updateServerList()
+ }
+ )
+ }
+
+ menu: ContextMenu {
+ id: serverMenu
+ width: listEntry.width
+
+ IconButton {
+ id: deleteButton
+ icon.source: "image://theme/icon-m-delete"
+ x: Theme.horizontalPageMargin
+
+ onClicked: {
+ serverMenu.hide()
+ listEntry.showRemorse( index )
+ }
+ }
+ }
+
Item {
width: parent.width - 2 * Theme.horizontalPageMargin
x: Theme.horizontalPageMargin
@@ -105,7 +137,7 @@ Page {
Rectangle {
id: serverCountLabel
- height: listEntry.height - 1.5 * Theme.horizontalPageMargin
+ height: Theme.fontSizeSmall * 1.5
width: height
radius: 2
color: listEntry.highlighted ? Theme.primaryColor : Theme.highlightBackgroundColor
diff --git a/translations/harbour-wallaread.ts b/translations/harbour-wallaread.ts
index 28bea1c..92fe69f 100644
--- a/translations/harbour-wallaread.ts
+++ b/translations/harbour-wallaread.ts
@@ -123,6 +123,10 @@
+
+
+
+
SettingsPage