diff --git a/components/common/CommonPaginator.vue b/components/common/CommonPaginator.vue
index 9e9dc935..ee51666d 100644
--- a/components/common/CommonPaginator.vue
+++ b/components/common/CommonPaginator.vue
@@ -51,6 +51,23 @@ nuxtApp.hook('elk-logo:click', () => {
update()
nuxtApp.$scrollToTop()
})
+
+function createEntry(item: any) {
+ items.value = [...items.value, preprocess?.([item]) ?? item]
+}
+
+function updateEntry(item: any) {
+ const id = item[keyProp]
+ const index = items.value.findIndex(i => (i as any)[keyProp] === id)
+ if (index > -1)
+ items.value = [...items.value.slice(0, index), preprocess?.([item]) ?? item, ...items.value.slice(index + 1)]
+}
+
+function removeEntry(entryId: any) {
+ items.value = items.value.filter(i => (i as any)[keyProp] !== entryId)
+}
+
+defineExpose({ createEntry, removeEntry, updateEntry })
diff --git a/components/list/ListEntry.vue b/components/list/ListEntry.vue
new file mode 100644
index 00000000..35e47f8c
--- /dev/null
+++ b/components/list/ListEntry.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
diff --git a/locales/en.json b/locales/en.json
index 8f9e2953..1981e825 100644
--- a/locales/en.json
+++ b/locales/en.json
@@ -116,6 +116,11 @@
"cancel": "No",
"confirm": "Yes"
},
+ "delete_list": {
+ "cancel": "Cancel",
+ "confirm": "Delete",
+ "title": "Are you sure you want to delete this list?"
+ },
"delete_posts": {
"cancel": "Cancel",
"confirm": "Delete",
@@ -177,8 +182,14 @@
},
"list": {
"add_account": "Add account to list",
+ "cancel_edit": "Cancel editing",
+ "create": "Create",
+ "delete": "Delete this list",
+ "edit": "Edit this list",
+ "list_title_placeholder": "List title",
"modify_account": "Modify lists with account",
- "remove_account": "Remove account from list"
+ "remove_account": "Remove account from list",
+ "save": "Save changes"
},
"menu": {
"block_account": "Block {0}",
diff --git a/pages/[[server]]/list.vue b/pages/[[server]]/list.vue
deleted file mode 100644
index ec82271b..00000000
--- a/pages/[[server]]/list.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
- {{ listInfo ? listInfo.title : t('nav.list') }}
-
-
-
-
-
-
-
diff --git a/pages/[[server]]/list/[list].vue b/pages/[[server]]/list/[list].vue
deleted file mode 100644
index 462adfce..00000000
--- a/pages/[[server]]/list/[list].vue
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
- {{ listInfo ? listInfo.title : $t('nav.list') }}
-
-
-
-
diff --git a/pages/[[server]]/list/[list]/index.vue b/pages/[[server]]/list/[list]/index.vue
index bea8e94c..da4998b5 100644
--- a/pages/[[server]]/list/[list]/index.vue
+++ b/pages/[[server]]/list/[list]/index.vue
@@ -1,17 +1,56 @@
-
+
+
+ {{ listInfo ? listInfo.title : t('nav.list') }}
+
+
+
+
+
+
diff --git a/pages/[[server]]/list/[list]/accounts.vue b/pages/[[server]]/list/[list]/index/accounts.vue
similarity index 100%
rename from pages/[[server]]/list/[list]/accounts.vue
rename to pages/[[server]]/list/[list]/index/accounts.vue
diff --git a/pages/[[server]]/list/[list]/index/index.vue b/pages/[[server]]/list/[list]/index/index.vue
new file mode 100644
index 00000000..8b41b97f
--- /dev/null
+++ b/pages/[[server]]/list/[list]/index/index.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/pages/[[server]]/lists.vue b/pages/[[server]]/lists.vue
index 2024527a..6a5fa43b 100644
--- a/pages/[[server]]/lists.vue
+++ b/pages/[[server]]/lists.vue
@@ -1,12 +1,44 @@
@@ -18,11 +50,47 @@ useHeadFixed({
-
+
-
- {{ item.title }}
-
+
+
+
+