import "../../components"
import "../../dialogs"
import "../headers"
import Lomiri.Components 1.3
import Lomiri.Components.Popups 1.3
import Pass 1.0
import QtQuick 2.4
Page {
    id: infoKeysPage
    property string currentKey
    ListView {
        id: infoKeysListView
        anchors.top: infoKeysHeader.bottom
        anchors.bottom: parent.bottom
        anchors.right: parent.right
        anchors.left: parent.left
        model: Pass.getAllGPGKeys()
        delegate: Grid {
            columns: 1
            width: parent.width
            horizontalItemAlignment: Grid.AlignHCenter
            verticalItemAlignment: Grid.AlignVCenter
            Rectangle {
                width: parent.width
                height: units.gu(1)
                color: theme.palette.normal.background
            }
            Text {
                id: uidKey
                width: parent.width
                horizontalAlignment: Text.AlignHCenter
                verticalAlignment: Text.AlignVCenter
                text: i18n.tr('Key id : %1').arg(model.modelData.uid)
                color: theme.palette.normal.backgroundText
            }
            Rectangle {
                width: parent.width
                height: units.gu(1)
                color: theme.palette.normal.background
            }
            Button {
                id: buttonDeleteKey
                text: i18n.tr("Delete this key")
                color: theme.palette.normal.negative
                onClicked: {
                    infoKeysPage.currentKey = model.modelData.uid;
                    PopupUtils.open(infoKeysPageDeleteValidation, infoKeysPage);
                }
            }
            Rectangle {
                width: parent.width
                height: units.gu(1)
                color: theme.palette.normal.background
            }
        }
    }
    Component {
        id: infoKeysPageDeleteValidation
        SimpleValidationDialog {
            text: i18n.tr("You're are about to delete
%1
Continue ?").arg(infoKeysPage.currentKey)
            continueText: i18n.tr("Yes")
            continueColor: theme.palette.normal.negative
            onValidated: {
                var status = Pass.deleteGPGKey(infoKeysPage.currentKey);
                if (status)
                    PopupUtils.open(infoKeysPageDeleteSuccess);
                else
                    PopupUtils.open(infoKeysPageDeleteError);
            }
        }
    }
    Component {
        id: infoKeysPageDeleteError
        ErrorDialog {
            textError: i18n.tr("Key removal failed !")
        }
    }
    Component {
        id: infoKeysPageDeleteSuccess
        SuccessDialog {
            textSuccess: i18n.tr("Key successfully deleted !")
            onDialogClosed: {
                infoKeysListView.model = Pass.getAllGPGKeys();
            }
        }
    }
    header: StackHeader {
        id: infoKeysHeader
        title: i18n.tr('Info Keys')
    }
}