Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/polls.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordartcafe <github@dartcafe.de>2022-03-30 01:52:28 +0300
committerdartcafe <github@dartcafe.de>2022-03-30 01:52:28 +0300
commit6293d8c86c42deef3e20aa3cda1d4a57b7eab632 (patch)
treeacc9a24bfc137ca75c327a3b4d1072bc6e367314 /src
parentc5b14f5667982c2acb249a4612aa9d1f3aade5d2 (diff)
use md icons (the rest)
Signed-off-by: dartcafe <github@dartcafe.de>
Diffstat (limited to 'src')
-rw-r--r--src/js/App.vue1
-rw-r--r--src/js/assets/icons/material-design/access-point-check.svg1
-rw-r--r--src/js/assets/icons/material-design/account-check.svg1
-rw-r--r--src/js/assets/icons/material-design/account-cog.svg1
-rw-r--r--src/js/assets/icons/material-design/account-group.svg1
-rw-r--r--src/js/assets/icons/material-design/account-key.svg1
-rw-r--r--src/js/assets/icons/material-design/archive.svg1
-rw-r--r--src/js/assets/icons/material-design/bell-off.svg1
-rw-r--r--src/js/assets/icons/material-design/bell.svg1
-rw-r--r--src/js/assets/icons/material-design/calendar-blank.svg1
-rw-r--r--src/js/assets/icons/material-design/calendar-end.svg1
-rw-r--r--src/js/assets/icons/material-design/calendar-month.svg1
-rw-r--r--src/js/assets/icons/material-design/check-all.svg1
-rw-r--r--src/js/assets/icons/material-design/check.svg1
-rw-r--r--src/js/assets/icons/material-design/checkbox-marked-outline.svg1
-rw-r--r--src/js/assets/icons/material-design/clipboard-arrow-left-outline.svg1
-rw-r--r--src/js/assets/icons/material-design/clock-outline.svg1
-rw-r--r--src/js/assets/icons/material-design/close.svg1
-rw-r--r--src/js/assets/icons/material-design/cog.svg1
-rw-r--r--src/js/assets/icons/material-design/comment-processing.svg (renamed from src/js/assets/icons/comment-processing.svg)0
-rw-r--r--src/js/assets/icons/material-design/content-copy.svg1
-rw-r--r--src/js/assets/icons/material-design/crown.svg1
-rw-r--r--src/js/assets/icons/material-design/delete.svg1
-rw-r--r--src/js/assets/icons/material-design/earth.svg1
-rw-r--r--src/js/assets/icons/material-design/email-edit-outline.svg1
-rw-r--r--src/js/assets/icons/material-design/exclamation-thick.svg1
-rw-r--r--src/js/assets/icons/material-design/exclamation.svg1
-rw-r--r--src/js/assets/icons/material-design/format-list-bulleted-square.svg1
-rw-r--r--src/js/assets/icons/material-design/format-list-checkbox.svg1
-rw-r--r--src/js/assets/icons/material-design/format-list-checks.svg (renamed from src/js/assets/icons/format-list-checks.svg)0
-rw-r--r--src/js/assets/icons/material-design/incognito.svg1
-rw-r--r--src/js/assets/icons/material-design/key.svg1
-rw-r--r--src/js/assets/icons/material-design/link-variant.svg1
-rw-r--r--src/js/assets/icons/material-design/lock-open-variant.svg1
-rw-r--r--src/js/assets/icons/material-design/lock.svg1
-rw-r--r--src/js/assets/icons/material-design/map-clock-outline.svg1
-rw-r--r--src/js/assets/icons/material-design/monitor-lock.svg1
-rw-r--r--src/js/assets/icons/material-design/monitor-off.svg1
-rw-r--r--src/js/assets/icons/material-design/monitor.svg1
-rw-r--r--src/js/assets/icons/material-design/offer.svg1
-rw-r--r--src/js/assets/icons/material-design/poll.svg1
-rw-r--r--src/js/assets/icons/material-design/polls-maybe.svg5
-rw-r--r--src/js/assets/icons/material-design/recycle.svg1
-rw-r--r--src/js/assets/icons/material-design/share-variant.svg (renamed from src/js/assets/icons/share-variant.svg)0
-rw-r--r--src/js/assets/icons/material-design/undo.svg1
-rw-r--r--src/js/assets/icons/material-design/vector-combine.svg1
-rw-r--r--src/js/assets/icons/material-design/wrench.svg (renamed from src/js/assets/icons/wrench.svg)0
-rw-r--r--src/js/assets/scss/icons-md.scss277
-rw-r--r--src/js/assets/scss/icons.scss36
-rw-r--r--src/js/components/Base/Badge.vue34
-rw-r--r--src/js/components/Export/ExportPoll.vue7
-rw-r--r--src/js/components/Navigation/PollNavigationItems.vue26
-rw-r--r--src/js/components/Poll/PollHeaderButtons.vue7
-rw-r--r--src/js/components/Poll/PollInfoLine.vue112
-rw-r--r--src/js/components/Poll/PollInformation.vue97
-rw-r--r--src/js/components/PollList/PollItem.vue54
-rw-r--r--src/js/components/PollList/PollItemAdmin.vue17
-rw-r--r--src/js/components/SideBar/SideBarTabComments.vue2
-rw-r--r--src/js/components/SideBar/SideBarTabConfiguration.vue6
-rw-r--r--src/js/components/User/UserMenu.vue10
-rw-r--r--src/js/store/modules/poll.js12
-rw-r--r--src/js/store/modules/polls.js16
-rw-r--r--src/js/views/Navigation.vue6
-rw-r--r--src/js/views/PollList.vue8
64 files changed, 551 insertions, 223 deletions
diff --git a/src/js/App.vue b/src/js/App.vue
index f22e638e..45c95267 100644
--- a/src/js/App.vue
+++ b/src/js/App.vue
@@ -42,6 +42,7 @@ import '@nextcloud/dialogs/styles/toast.scss'
import './assets/scss/colors.scss'
import './assets/scss/hacks.scss'
import './assets/scss/icons.scss'
+import './assets/scss/icons-md.scss'
import './assets/scss/print.scss'
import './assets/scss/transitions.scss'
import './assets/scss/theming.scss'
diff --git a/src/js/assets/icons/material-design/access-point-check.svg b/src/js/assets/icons/material-design/access-point-check.svg
new file mode 100644
index 00000000..a62843e1
--- /dev/null
+++ b/src/js/assets/icons/material-design/access-point-check.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M20.59 14.84L21.75 16.25L17 21L14.25 18L15.41 16.84L17 18.43L20.59 14.84M19.07 4.93L17.66 6.34C19.11 7.78 20 9.79 20 12V12.34C20.68 12.59 21.33 12.96 21.88 13.43C21.95 12.96 22 12.5 22 12C22 9.24 20.88 6.74 19.07 4.93M15.96 12.36C16.6 12.13 17.28 12 18 12C18 10.35 17.33 8.85 16.24 7.76L14.83 9.17C15.55 9.89 16 10.89 16 12C16 12.12 15.97 12.24 15.96 12.36M12 10C10.9 10 10 10.9 10 12S10.9 14 12 14 14 13.1 14 12 13.1 10 12 10M6.34 6.34L4.93 4.93C3.12 6.74 2 9.24 2 12S3.12 17.26 4.93 19.07L6.34 17.66C4.89 16.22 4 14.22 4 12C4 9.79 4.89 7.78 6.34 6.34M7.76 7.76C6.67 8.85 6 10.35 6 12S6.67 15.15 7.76 16.24L9.17 14.83C8.45 14.11 8 13.11 8 12S8.45 9.89 9.17 9.17L7.76 7.76Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/account-check.svg b/src/js/assets/icons/material-design/account-check.svg
new file mode 100644
index 00000000..151c0b42
--- /dev/null
+++ b/src/js/assets/icons/material-design/account-check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.1,12.5L22.5,13.91L15.97,20.5L12.5,17L13.9,15.59L15.97,17.67L21.1,12.5M10,17L13,20H3V18C3,15.79 6.58,14 11,14L12.89,14.11L10,17M11,4A4,4 0 0,1 15,8A4,4 0 0,1 11,12A4,4 0 0,1 7,8A4,4 0 0,1 11,4Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/account-cog.svg b/src/js/assets/icons/material-design/account-cog.svg
new file mode 100644
index 00000000..0bdc95be
--- /dev/null
+++ b/src/js/assets/icons/material-design/account-cog.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 4A4 4 0 0 0 6 8A4 4 0 0 0 10 12A4 4 0 0 0 14 8A4 4 0 0 0 10 4M17 12C16.87 12 16.76 12.09 16.74 12.21L16.55 13.53C16.25 13.66 15.96 13.82 15.7 14L14.46 13.5C14.35 13.5 14.22 13.5 14.15 13.63L13.15 15.36C13.09 15.47 13.11 15.6 13.21 15.68L14.27 16.5C14.25 16.67 14.24 16.83 14.24 17C14.24 17.17 14.25 17.33 14.27 17.5L13.21 18.32C13.12 18.4 13.09 18.53 13.15 18.64L14.15 20.37C14.21 20.5 14.34 20.5 14.46 20.5L15.7 20C15.96 20.18 16.24 20.35 16.55 20.47L16.74 21.79C16.76 21.91 16.86 22 17 22H19C19.11 22 19.22 21.91 19.24 21.79L19.43 20.47C19.73 20.34 20 20.18 20.27 20L21.5 20.5C21.63 20.5 21.76 20.5 21.83 20.37L22.83 18.64C22.89 18.53 22.86 18.4 22.77 18.32L21.7 17.5C21.72 17.33 21.74 17.17 21.74 17C21.74 16.83 21.73 16.67 21.7 16.5L22.76 15.68C22.85 15.6 22.88 15.47 22.82 15.36L21.82 13.63C21.76 13.5 21.63 13.5 21.5 13.5L20.27 14C20 13.82 19.73 13.65 19.42 13.53L19.23 12.21C19.22 12.09 19.11 12 19 12H17M10 14C5.58 14 2 15.79 2 18V20H11.68A7 7 0 0 1 11 17A7 7 0 0 1 11.64 14.09C11.11 14.03 10.56 14 10 14M18 15.5C18.83 15.5 19.5 16.17 19.5 17C19.5 17.83 18.83 18.5 18 18.5C17.16 18.5 16.5 17.83 16.5 17C16.5 16.17 17.17 15.5 18 15.5Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/account-group.svg b/src/js/assets/icons/material-design/account-group.svg
new file mode 100644
index 00000000..ce6984bc
--- /dev/null
+++ b/src/js/assets/icons/material-design/account-group.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/account-key.svg b/src/js/assets/icons/material-design/account-key.svg
new file mode 100644
index 00000000..8185c578
--- /dev/null
+++ b/src/js/assets/icons/material-design/account-key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 10V12H9V14H7V12H5.8C5.4 13.2 4.3 14 3 14C1.3 14 0 12.7 0 11S1.3 8 3 8C4.3 8 5.4 8.8 5.8 10H11M3 10C2.4 10 2 10.4 2 11S2.4 12 3 12 4 11.6 4 11 3.6 10 3 10M16 14C18.7 14 24 15.3 24 18V20H8V18C8 15.3 13.3 14 16 14M16 12C13.8 12 12 10.2 12 8S13.8 4 16 4 20 5.8 20 8 18.2 12 16 12Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/archive.svg b/src/js/assets/icons/material-design/archive.svg
new file mode 100644
index 00000000..6fa7a6f5
--- /dev/null
+++ b/src/js/assets/icons/material-design/archive.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3,3H21V7H3V3M4,8H20V21H4V8M9.5,11A0.5,0.5 0 0,0 9,11.5V13H15V11.5A0.5,0.5 0 0,0 14.5,11H9.5Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/bell-off.svg b/src/js/assets/icons/material-design/bell-off.svg
new file mode 100644
index 00000000..345abe1a
--- /dev/null
+++ b/src/js/assets/icons/material-design/bell-off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.84,22.73L18.11,20H3V19L5,17V11C5,9.86 5.29,8.73 5.83,7.72L1.11,3L2.39,1.73L22.11,21.46L20.84,22.73M19,15.8V11C19,7.9 16.97,5.17 14,4.29C14,4.19 14,4.1 14,4A2,2 0 0,0 12,2A2,2 0 0,0 10,4C10,4.1 10,4.19 10,4.29C9.39,4.47 8.8,4.74 8.26,5.09L19,15.8M12,23A2,2 0 0,0 14,21H10A2,2 0 0,0 12,23Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/bell.svg b/src/js/assets/icons/material-design/bell.svg
new file mode 100644
index 00000000..8fb47f60
--- /dev/null
+++ b/src/js/assets/icons/material-design/bell.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/calendar-blank.svg b/src/js/assets/icons/material-design/calendar-blank.svg
new file mode 100644
index 00000000..7b75bd93
--- /dev/null
+++ b/src/js/assets/icons/material-design/calendar-blank.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/calendar-end.svg b/src/js/assets/icons/material-design/calendar-end.svg
new file mode 100644
index 00000000..e5045f85
--- /dev/null
+++ b/src/js/assets/icons/material-design/calendar-end.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M22 14V22H20V18L16 22V19H11V17H16V14L20 18V14H22M5 19L9 19V21L5 21C3.9 21 3 20.1 3 19V5C3 3.89 3.9 3 5 3H6V.998H8V3H16V.998H18V3H19C20.11 3 21 3.89 21 5L21 12H19V8H5V19Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/calendar-month.svg b/src/js/assets/icons/material-design/calendar-month.svg
new file mode 100644
index 00000000..861c4907
--- /dev/null
+++ b/src/js/assets/icons/material-design/calendar-month.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M9,10V12H7V10H9M13,10V12H11V10H13M17,10V12H15V10H17M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5C3.89,21 3,20.1 3,19V5A2,2 0 0,1 5,3H6V1H8V3H16V1H18V3H19M19,19V8H5V19H19M9,14V16H7V14H9M13,14V16H11V14H13M17,14V16H15V14H17Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/check-all.svg b/src/js/assets/icons/material-design/check-all.svg
new file mode 100644
index 00000000..5e4578cc
--- /dev/null
+++ b/src/js/assets/icons/material-design/check-all.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/check.svg b/src/js/assets/icons/material-design/check.svg
new file mode 100644
index 00000000..f98fd5b4
--- /dev/null
+++ b/src/js/assets/icons/material-design/check.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/checkbox-marked-outline.svg b/src/js/assets/icons/material-design/checkbox-marked-outline.svg
new file mode 100644
index 00000000..df7b539f
--- /dev/null
+++ b/src/js/assets/icons/material-design/checkbox-marked-outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19,19H5V5H15V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V11H19M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/clipboard-arrow-left-outline.svg b/src/js/assets/icons/material-design/clipboard-arrow-left-outline.svg
new file mode 100644
index 00000000..531fad7d
--- /dev/null
+++ b/src/js/assets/icons/material-design/clipboard-arrow-left-outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H9.18C9.6,1.84 10.7,1 12,1C13.3,1 14.4,1.84 14.82,3H19M12,3A1,1 0 0,0 11,4A1,1 0 0,0 12,5A1,1 0 0,0 13,4A1,1 0 0,0 12,3M7,7V5H5V19H19V5H17V7H7M7,13L12,18V15H16V11H12V8L7,13Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/clock-outline.svg b/src/js/assets/icons/material-design/clock-outline.svg
new file mode 100644
index 00000000..388a3dcb
--- /dev/null
+++ b/src/js/assets/icons/material-design/clock-outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/close.svg b/src/js/assets/icons/material-design/close.svg
new file mode 100644
index 00000000..2b2be928
--- /dev/null
+++ b/src/js/assets/icons/material-design/close.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/cog.svg b/src/js/assets/icons/material-design/cog.svg
new file mode 100644
index 00000000..0fdeb0f9
--- /dev/null
+++ b/src/js/assets/icons/material-design/cog.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/comment-processing.svg b/src/js/assets/icons/material-design/comment-processing.svg
index 11b33335..11b33335 100644
--- a/src/js/assets/icons/comment-processing.svg
+++ b/src/js/assets/icons/material-design/comment-processing.svg
diff --git a/src/js/assets/icons/material-design/content-copy.svg b/src/js/assets/icons/material-design/content-copy.svg
new file mode 100644
index 00000000..0f54e3bc
--- /dev/null
+++ b/src/js/assets/icons/material-design/content-copy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/crown.svg b/src/js/assets/icons/material-design/crown.svg
new file mode 100644
index 00000000..3244a09a
--- /dev/null
+++ b/src/js/assets/icons/material-design/crown.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M5 16L3 5L8.5 10L12 4L15.5 10L21 5L19 16H5M19 19C19 19.6 18.6 20 18 20H6C5.4 20 5 19.6 5 19V18H19V19Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/delete.svg b/src/js/assets/icons/material-design/delete.svg
new file mode 100644
index 00000000..7ae2fb77
--- /dev/null
+++ b/src/js/assets/icons/material-design/delete.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/earth.svg b/src/js/assets/icons/material-design/earth.svg
new file mode 100644
index 00000000..1ac529d0
--- /dev/null
+++ b/src/js/assets/icons/material-design/earth.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.9,17.39C17.64,16.59 16.89,16 16,16H15V13A1,1 0 0,0 14,12H8V10H10A1,1 0 0,0 11,9V7H13A2,2 0 0,0 15,5V4.59C17.93,5.77 20,8.64 20,12C20,14.08 19.2,15.97 17.9,17.39M11,19.93C7.05,19.44 4,16.08 4,12C4,11.38 4.08,10.78 4.21,10.21L9,15V16A2,2 0 0,0 11,18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/email-edit-outline.svg b/src/js/assets/icons/material-design/email-edit-outline.svg
new file mode 100644
index 00000000..4f497f35
--- /dev/null
+++ b/src/js/assets/icons/material-design/email-edit-outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.07 13.88L13 19.94V22H15.06L21.12 15.93M22.7 13.58L21.42 12.3C21.32 12.19 21.18 12.13 21.04 12.13C20.89 12.14 20.75 12.19 20.65 12.3L19.65 13.3L21.7 15.3L22.7 14.3C22.89 14.1 22.89 13.78 22.7 13.58M11 18H4V8L12 13L20 8V10H22V6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H11V18M20 6L12 11L4 6H20Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/exclamation-thick.svg b/src/js/assets/icons/material-design/exclamation-thick.svg
new file mode 100644
index 00000000..986430d9
--- /dev/null
+++ b/src/js/assets/icons/material-design/exclamation-thick.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 3H14V14H10V3M10 21V17H14V21H10Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/exclamation.svg b/src/js/assets/icons/material-design/exclamation.svg
new file mode 100644
index 00000000..c92f96fe
--- /dev/null
+++ b/src/js/assets/icons/material-design/exclamation.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/format-list-bulleted-square.svg b/src/js/assets/icons/material-design/format-list-bulleted-square.svg
new file mode 100644
index 00000000..c4206fbb
--- /dev/null
+++ b/src/js/assets/icons/material-design/format-list-bulleted-square.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/format-list-checkbox.svg b/src/js/assets/icons/material-design/format-list-checkbox.svg
new file mode 100644
index 00000000..a49eb052
--- /dev/null
+++ b/src/js/assets/icons/material-design/format-list-checkbox.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21,19V17H8V19H21M21,13V11H8V13H21M8,7H21V5H8V7M4,5V7H6V5H4M3,5A1,1 0 0,1 4,4H6A1,1 0 0,1 7,5V7A1,1 0 0,1 6,8H4A1,1 0 0,1 3,7V5M4,11V13H6V11H4M3,11A1,1 0 0,1 4,10H6A1,1 0 0,1 7,11V13A1,1 0 0,1 6,14H4A1,1 0 0,1 3,13V11M4,17V19H6V17H4M3,17A1,1 0 0,1 4,16H6A1,1 0 0,1 7,17V19A1,1 0 0,1 6,20H4A1,1 0 0,1 3,19V17Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/format-list-checks.svg b/src/js/assets/icons/material-design/format-list-checks.svg
index 7c41f8a4..7c41f8a4 100644
--- a/src/js/assets/icons/format-list-checks.svg
+++ b/src/js/assets/icons/material-design/format-list-checks.svg
diff --git a/src/js/assets/icons/material-design/incognito.svg b/src/js/assets/icons/material-design/incognito.svg
new file mode 100644
index 00000000..6693c489
--- /dev/null
+++ b/src/js/assets/icons/material-design/incognito.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M17.06 13C15.2 13 13.64 14.33 13.24 16.1C12.29 15.69 11.42 15.8 10.76 16.09C10.35 14.31 8.79 13 6.94 13C4.77 13 3 14.79 3 17C3 19.21 4.77 21 6.94 21C9 21 10.68 19.38 10.84 17.32C11.18 17.08 12.07 16.63 13.16 17.34C13.34 19.39 15 21 17.06 21C19.23 21 21 19.21 21 17C21 14.79 19.23 13 17.06 13M6.94 19.86C5.38 19.86 4.13 18.58 4.13 17S5.39 14.14 6.94 14.14C8.5 14.14 9.75 15.42 9.75 17S8.5 19.86 6.94 19.86M17.06 19.86C15.5 19.86 14.25 18.58 14.25 17S15.5 14.14 17.06 14.14C18.62 14.14 19.88 15.42 19.88 17S18.61 19.86 17.06 19.86M22 10.5H2V12H22V10.5M15.53 2.63C15.31 2.14 14.75 1.88 14.22 2.05L12 2.79L9.77 2.05L9.72 2.04C9.19 1.89 8.63 2.17 8.43 2.68L6 9H18L15.56 2.68L15.53 2.63Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/key.svg b/src/js/assets/icons/material-design/key.svg
new file mode 100644
index 00000000..146c72f6
--- /dev/null
+++ b/src/js/assets/icons/material-design/key.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/link-variant.svg b/src/js/assets/icons/material-design/link-variant.svg
new file mode 100644
index 00000000..b6e1bb21
--- /dev/null
+++ b/src/js/assets/icons/material-design/link-variant.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/lock-open-variant.svg b/src/js/assets/icons/material-design/lock-open-variant.svg
new file mode 100644
index 00000000..4553674e
--- /dev/null
+++ b/src/js/assets/icons/material-design/lock-open-variant.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M18 1C15.24 1 13 3.24 13 6V8H4C2.9 8 2 8.89 2 10V20C2 21.11 2.9 22 4 22H16C17.11 22 18 21.11 18 20V10C18 8.9 17.11 8 16 8H15V6C15 4.34 16.34 3 18 3C19.66 3 21 4.34 21 6V8H23V6C23 3.24 20.76 1 18 1M10 13C11.1 13 12 13.89 12 15C12 16.11 11.11 17 10 17C8.9 17 8 16.11 8 15C8 13.9 8.9 13 10 13Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/lock.svg b/src/js/assets/icons/material-design/lock.svg
new file mode 100644
index 00000000..5f185ade
--- /dev/null
+++ b/src/js/assets/icons/material-design/lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/map-clock-outline.svg b/src/js/assets/icons/material-design/map-clock-outline.svg
new file mode 100644
index 00000000..8de0acf4
--- /dev/null
+++ b/src/js/assets/icons/material-design/map-clock-outline.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15,12H16.5V16.25L19.36,17.94L18.61,19.16L15,17V12M16,9C16.69,9 17.37,9.1 18,9.29V4.7L15,5.86V9.07C15.33,9 15.66,9 16,9M23,16A7,7 0 0,1 16,23C13,23 10.4,21.08 9.42,18.4L8,17.9L2.66,19.97L2.5,20A0.5,0.5 0 0,1 2,19.5V4.38C2,4.15 2.15,3.97 2.36,3.9L8,2L14,4.1L19.34,2.03L19.5,2A0.5,0.5 0 0,1 20,2.5V10.25C21.81,11.5 23,13.62 23,16M9,16C9,13.21 10.63,10.8 13,9.67V5.87L9,4.47V16.13H9C9,16.09 9,16.04 9,16M16,11A5,5 0 0,0 11,16A5,5 0 0,0 16,21A5,5 0 0,0 21,16A5,5 0 0,0 16,11M4,5.46V17.31L7,16.15V4.45L4,5.46Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/monitor-lock.svg b/src/js/assets/icons/material-design/monitor-lock.svg
new file mode 100644
index 00000000..0f045b2d
--- /dev/null
+++ b/src/js/assets/icons/material-design/monitor-lock.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5,13A2.5,2.5 0 0,1 23,15.5V16A1,1 0 0,1 24,17V21A1,1 0 0,1 23,22H18A1,1 0 0,1 17,21V17A1,1 0 0,1 18,16V15.5A2.5,2.5 0 0,1 20.5,13M20.5,14A1.5,1.5 0 0,0 19,15.5V16H22V15.5A1.5,1.5 0 0,0 20.5,14M20,4H2V16H15V18H13V20H15V22H7V20H9V18H2C0.89,18 0,17.1 0,16V4C0,2.89 0.89,2 2,2H20A2,2 0 0,1 22,4V11.53C21.41,11.19 20.73,11 20,11V4Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/monitor-off.svg b/src/js/assets/icons/material-design/monitor-off.svg
new file mode 100644
index 00000000..e6c1e599
--- /dev/null
+++ b/src/js/assets/icons/material-design/monitor-off.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14,18V20H16V22H8V20H10V18H3A2,2 0 0,1 1,16V4L0,3L1.41,1.58L22.16,22.34L20.75,23.75L15,18H14M3,16H13L3,6V16M21,2A2,2 0 0,1 23,4V16A2,2 0 0,1 21,18H20.66L18.66,16H21V4H6.66L4.66,2H21Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/monitor.svg b/src/js/assets/icons/material-design/monitor.svg
new file mode 100644
index 00000000..fc3e8d07
--- /dev/null
+++ b/src/js/assets/icons/material-design/monitor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/offer.svg b/src/js/assets/icons/material-design/offer.svg
new file mode 100644
index 00000000..04738700
--- /dev/null
+++ b/src/js/assets/icons/material-design/offer.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21 13C21.6 13 22.1 13.2 22.4 13.6C22.8 14 23 14.5 23 15L15 18L8 16V7H9.9L17.2 9.7C17.7 9.9 18 10.3 18 10.8C18 11.1 17.9 11.4 17.7 11.6C17.5 11.8 17.2 12 16.8 12H14L12.3 11.3L12 12.2L14 13H21M2 7H6V18H2V7Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/poll.svg b/src/js/assets/icons/material-design/poll.svg
new file mode 100644
index 00000000..0215c57d
--- /dev/null
+++ b/src/js/assets/icons/material-design/poll.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3,22V8H7V22H3M10,22V2H14V22H10M17,22V14H21V22H17Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/polls-maybe.svg b/src/js/assets/icons/material-design/polls-maybe.svg
new file mode 100644
index 00000000..72701d75
--- /dev/null
+++ b/src/js/assets/icons/material-design/polls-maybe.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+ <path d="M 17.944399,8.5272288 10.074096,16.397532 6.4668737,12.79031 7.3916344,11.86555 10.074096,14.541452 17.019638,7.6024682 Z" />
+ <path d="M 7.3628954,5.9420338 Q 6.2293474,7.4698103 5.6794922,8.9643742 5.1296368,10.458938 5.1296368,11.993357 q 0,1.534419 0.5498554,3.042268 0.5583146,1.501207 1.6834032,3.022341 H 6.0094053 Q 4.7405084,16.496976 4.10606,14.989128 3.4800709,13.481279 3.4800709,11.993357 q 0,-1.481279 0.6259891,-2.9824853 0.6259892,-1.5012064 1.9033453,-3.0688379 z" />
+ <path d="m 17.037619,18.057966 q 1.133545,-1.527776 1.6834,-3.022339 0.549856,-1.494563 0.549856,-3.028982 0,-1.534421 -0.549856,-3.0422701 -0.558312,-1.5012064 -1.6834,-3.0223404 h 1.353488 q 1.268897,1.5609889 1.903345,3.0688379 0.625989,1.5078496 0.625989,2.9957726 0,1.481278 -0.625989,2.982485 -0.625988,1.501205 -1.903345,3.068836 z" />
+</svg>
diff --git a/src/js/assets/icons/material-design/recycle.svg b/src/js/assets/icons/material-design/recycle.svg
new file mode 100644
index 00000000..679e060a
--- /dev/null
+++ b/src/js/assets/icons/material-design/recycle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M21.82,15.42L19.32,19.75C18.83,20.61 17.92,21.06 17,21H15V23L12.5,18.5L15,14V16H17.82L15.6,12.15L19.93,9.65L21.73,12.77C22.25,13.54 22.32,14.57 21.82,15.42M9.21,3.06H14.21C15.19,3.06 16.04,3.63 16.45,4.45L17.45,6.19L19.18,5.19L16.54,9.6L11.39,9.69L13.12,8.69L11.71,6.24L9.5,10.09L5.16,7.59L6.96,4.47C7.37,3.64 8.22,3.06 9.21,3.06M5.05,19.76L2.55,15.43C2.06,14.58 2.13,13.56 2.64,12.79L3.64,11.06L1.91,10.06L7.05,10.14L9.7,14.56L7.97,13.56L6.56,16H11V21H7.4C6.47,21.07 5.55,20.61 5.05,19.76Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/share-variant.svg b/src/js/assets/icons/material-design/share-variant.svg
index 1f4cea20..1f4cea20 100644
--- a/src/js/assets/icons/share-variant.svg
+++ b/src/js/assets/icons/material-design/share-variant.svg
diff --git a/src/js/assets/icons/material-design/undo.svg b/src/js/assets/icons/material-design/undo.svg
new file mode 100644
index 00000000..aae76353
--- /dev/null
+++ b/src/js/assets/icons/material-design/undo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/material-design/vector-combine.svg b/src/js/assets/icons/material-design/vector-combine.svg
new file mode 100644
index 00000000..f790982c
--- /dev/null
+++ b/src/js/assets/icons/material-design/vector-combine.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3,1C1.89,1 1,1.89 1,3V14C1,15.11 1.89,16 3,16C4.33,16 7,16 7,16C7,16 7,18.67 7,20C7,21.11 7.89,22 9,22H20C21.11,22 22,21.11 22,20V9C22,7.89 21.11,7 20,7C18.67,7 16,7 16,7C16,7 16,4.33 16,3C16,1.89 15.11,1 14,1H3M3,3H14C14,4.33 14,7 14,7H9C7.89,7 7,7.89 7,9V14C7,14 4.33,14 3,14V3M9,9H14V14H9V9M16,9C16,9 18.67,9 20,9V20H9C9,18.67 9,16 9,16H14C15.11,16 16,15.11 16,14V9Z" /></svg> \ No newline at end of file
diff --git a/src/js/assets/icons/wrench.svg b/src/js/assets/icons/material-design/wrench.svg
index 4274d6d4..4274d6d4 100644
--- a/src/js/assets/icons/wrench.svg
+++ b/src/js/assets/icons/material-design/wrench.svg
diff --git a/src/js/assets/scss/icons-md.scss b/src/js/assets/scss/icons-md.scss
new file mode 100644
index 00000000..45372c29
--- /dev/null
+++ b/src/js/assets/scss/icons-md.scss
@@ -0,0 +1,277 @@
+// material design icons
+:root {
+ --icon-md-exclamation-thick: url('../icons/material-design/exclamation-thick.svg');
+ --icon-md-wrench: url('../icons/material-design/wrench.svg');
+ --icon-md-format-list-checks: url('../icons/material-design/format-list-checks.svg');
+ --icon-md-share-variant: url('../icons/material-design/share-variant.svg');
+ --icon-md-comment-processing: url('../icons/material-design/comment-processing.svg');
+ --icon-md-lock: url('../icons/material-design/lock.svg');
+ --icon-md-clock-outline: url('../icons/material-design/clock-outline.svg');
+ --icon-md-poll: url('../icons/material-design/poll.svg');
+ --icon-md-link-variant: url('../icons/material-design/link-variant.svg');
+ --icon-md-calendar-month: url('../icons/material-design/calendar-month.svg');
+ --icon-md-calendar-blank: url('../icons/material-design/calendar-blank.svg');
+ --icon-md-calendar-end: url('../icons/material-design/calendar-end.svg');
+ --icon-md-format-list-bulleted-square: url('../icons/material-design/format-list-bulleted-square.svg');
+ --icon-md-format-list-checkbox: url('../icons/material-design/format-list-checkbox.svg');
+ --icon-md-earth: url('../icons/material-design/earth.svg');
+ --icon-md-email-edit-outline: url('../icons/material-design/email-edit-outline.svg');
+ --icon-md-archive: url('../icons/material-design/archive.svg');
+ --icon-md-crown: url('../icons/material-design/crown.svg');
+ --icon-md-check: url('../icons/material-design/check.svg');
+ --icon-md-close: url('../icons/material-design/close.svg');
+ --icon-md-polls-maybe: url('../icons/material-design/polls-maybe.svg');
+ --icon-md-offer: url('../icons/material-design/offer.svg');
+ --icon-md-map-clock-outline: url('../icons/material-design/map-clock-outline.svg');
+ --icon-md-content-copy: url('../icons/material-design/content-copy.svg');
+ --icon-md-account-cog: url('../icons/material-design/account-cog.svg');
+ --icon-md-recycle: url('../icons/material-design/recycle.svg');
+ --icon-md-key: url('../icons/material-design/key.svg');
+ --icon-md-monitor: url('../icons/material-design/monitor.svg');
+ --icon-md-monitor-off: url('../icons/material-design/monitor-off.svg');
+ --icon-md-monitor-lock: url('../icons/material-design/monitor-lock.svg');
+ --icon-md-delete: url('../icons/material-design/delete.svg');
+ --icon-md-undo: url('../icons/material-design/undo.svg');
+ --icon-md-cog: url('../icons/material-design/cog.svg');
+ --icon-md-account-group: url('../icons/material-design/account-group.svg');
+ --icon-md-incognito: url('../icons/material-design/incognito.svg');
+ --icon-md-bell: url('../icons/material-design/bell.svg');
+ --icon-md-bell-off: url('../icons/material-design/bell-off.svg');
+ --icon-md-account-check: url('../icons/material-design/account-check.svg');
+ --icon-md-lock-open-variant: url('../icons/material-design/lock-open-variant.svg');
+ --icon-md-vector-combine: url('../icons/material-design/vector-combine.svg');
+ --icon-md-clipboard-arrow-left-outline: url('../icons/material-design/clipboard-arrow-left-outline.svg');
+ --icon-md-checkbox-marked-outline: url('../icons/material-design/checkbox-marked-outline.svg');
+}
+
+[class*='icon-md-'] {
+ background-color: #000;
+ mask-repeat: no-repeat;
+ mask-position: center;
+ mask-size: 18px;
+ &.empty-content__icon {
+ mask-size: 64px;
+ }
+}
+
+.theme--dark {
+ &[class*='icon-md-'] {
+ background-color: #000 !important;
+ }
+ [class*='icon-md'] {
+ background-color: #fff;
+ }
+}
+
+// material design icons
+.icon-md-navigation-relevant {
+ -webkit-mask-image: var(--icon-md-exclamation-thick);
+ mask-image: var(--icon-md-exclamation-thick);
+}
+
+.icon-md-navigation-my,
+.icon-md-owner {
+ -webkit-mask-image: var(--icon-md-crown);
+ mask-image: var(--icon-md-crown);
+}
+
+.icon-md-navigation-private,
+.icon-md-private-poll {
+ -webkit-mask-image: var(--icon-md-key);
+ mask-image: var(--icon-md-key);
+}
+
+.icon-md-navigation-open,
+.icon-md-open-poll {
+ -webkit-mask-image: var(--icon-md-earth);
+ mask-image: var(--icon-md-earth);
+}
+
+.icon-md-navigation-participated {
+ -webkit-mask-image: var(--icon-md-account-check);
+ mask-image: var(--icon-md-account-check);
+}
+
+.icon-md-navigation-all {
+ -webkit-mask-image: var(--icon-md-poll);
+ mask-image: var(--icon-md-poll);
+}
+
+.icon-md-navigation-closed, .icon-md-closed-poll {
+ -webkit-mask-image: var(--icon-md-lock);
+ mask-image: var(--icon-md-lock);
+}
+
+.icon-md-navigation-archived,
+.icon-md-archived-poll,
+.icon-md-archive-poll {
+ -webkit-mask-image: var(--icon-md-archive);
+ mask-image: var(--icon-md-archive);
+}
+
+.icon-md-navigation-combo {
+ -webkit-mask-image: var(--icon-md-vector-combine);
+ mask-image: var(--icon-md-vector-combine);
+}
+
+.icon-md-navigation-administration {
+ -webkit-mask-image: var(--icon-md-cog);
+ mask-image: var(--icon-md-cog);
+}
+
+.icon-md-navigation-personal-settings {
+ -webkit-mask-image: var(--icon-md-account-cog);
+ mask-image: var(--icon-md-account-cog);
+}
+
+.icon-md-sidebar-options {
+ -webkit-mask-image: var(--icon-md-format-list-checks);
+ mask-image: var(--icon-md-format-list-checks);
+}
+
+.icon-md-sidebar-configuration {
+ -webkit-mask-image: var(--icon-md-wrench);
+ mask-image: var(--icon-md-wrench);
+}
+
+.icon-md-sidebar-comments {
+ -webkit-mask-image: var(--icon-md-comment-processing);
+ mask-image: var(--icon-md-comment-processing);
+}
+
+.icon-md-sidebar-share {
+ -webkit-mask-image: var(--icon-md-share-variant);
+ mask-image: var(--icon-md-share-variant);
+}
+
+.icon-md-date-options {
+ -webkit-mask-image: var(--icon-md-calendar-month);
+ mask-image: var(--icon-md-calendar-month);
+}
+
+.icon-md-date-poll {
+ -webkit-mask-image: var(--icon-md-calendar-blank);
+ mask-image: var(--icon-md-calendar-blank);
+}
+
+.icon-md-anonymous-poll {
+ -webkit-mask-image: var(--icon-md-incognito);
+ mask-image: var(--icon-md-incognito);
+}
+
+.icon-md-text-poll {
+ -webkit-mask-image: var(--icon-md-format-list-bulleted-square);
+ mask-image: var(--icon-md-format-list-bulleted-square);
+}
+
+.icon-md-clone-poll {
+ -webkit-mask-image: var(--icon-md-content-copy);
+ mask-image: var(--icon-md-content-copy);
+}
+
+.icon-md-restore-poll {
+ -webkit-mask-image: var(--icon-md-recycle);
+ mask-image: var(--icon-md-recycle);
+}
+
+.icon-md-delete-poll {
+ -webkit-mask-image: var(--icon-md-delete);
+ mask-image: var(--icon-md-delete);
+}
+
+.icon-md-expiration {
+ -webkit-mask-image: var(--icon-md-calendar-end);
+ mask-image: var(--icon-md-calendar-end);
+}
+
+.icon-md-creation {
+ -webkit-mask-image: var(--icon-md-clock-outline);
+ mask-image: var(--icon-md-clock-outline);
+}
+
+.icon-md-clippy {
+ -webkit-mask-image: var(--icon-md-clipboard-arrow-left-outline);
+ mask-image: var(--icon-md-clipboard-arrow-left-outline);
+}
+
+.icon-md-reset-votes {
+ -webkit-mask-image: var(--icon-md-undo);
+ mask-image: var(--icon-md-undo);
+}
+
+.icon-md-subscribed {
+ -webkit-mask-image: var(--icon-md-bell);
+ mask-image: var(--icon-md-bell);
+}
+
+.icon-md-unsubscribed {
+ -webkit-mask-image: var(--icon-md-bell-off);
+ mask-image: var(--icon-md-bell-off);
+}
+
+.icon-md-participants {
+ -webkit-mask-image: var(--icon-md-account-group);
+ mask-image: var(--icon-md-account-group);
+}
+
+.icon-md-show-results {
+ -webkit-mask-image: var(--icon-md-monitor);
+ mask-image: var(--icon-md-monitor);
+}
+
+.icon-md-hide-results-until-closed {
+ -webkit-mask-image: var(--icon-md-monitor-lock);
+ mask-image: var(--icon-md-monitor-lock);
+}
+
+.icon-md-show-results-never {
+ -webkit-mask-image: var(--icon-md-monitor-off);
+ mask-image: var(--icon-md-monitor-off);
+}
+
+.icon-md-options {
+ -webkit-mask-image: var(--icon-md-format-list-checkbox);
+ mask-image: var(--icon-md-format-list-checkbox);
+}
+
+.icon-md-timezone {
+ -webkit-mask-image: var(--icon-md-map-clock-outline);
+ mask-image: var(--icon-md-map-clock-outline);
+}
+
+.icon-md-proposals-allowed,
+.icon-md-proposals {
+ -webkit-mask-image: var(--icon-md-offer);
+ mask-image: var(--icon-md-offer);
+}
+
+.icon-md-edit-email-address {
+ -webkit-mask-image: var(--icon-md-email-edit);
+ mask-image: var(--icon-md-email-edit);
+}
+
+.icon-md-send-link-per-email {
+ -webkit-mask-image: var(--icon-md-link-variant);
+ mask-image: var(--icon-md-link-variant);
+}
+
+.icon-md-yes-vote,
+.icon-md-yes-votes {
+ background-color: var(--color-polls-foreground-yes) !important;
+ -webkit-mask-image: var(--icon-md-check);
+ mask-image: var(--icon-md-check);
+}
+
+.icon-md-no-vote,
+.icon-md-no-votes {
+ background-color: var(--color-polls-foreground-no) !important;
+ -webkit-mask-image: var(--icon-md-close);
+ mask-image: var(--icon-md-close);
+}
+
+.icon-md-maybe-vote,
+.icon-md-maybe-votes {
+ background-color: var(--color-polls-foreground-maybe) !important;
+ -webkit-mask-image: var(--icon-md-polls-maybe);
+ mask-image: var(--icon-md-polls-maybe);
+}
diff --git a/src/js/assets/scss/icons.scss b/src/js/assets/scss/icons.scss
index 04abba37..a7e8be80 100644
--- a/src/js/assets/scss/icons.scss
+++ b/src/js/assets/scss/icons.scss
@@ -46,11 +46,6 @@
--icon-polls-unconfirmed: url('../icons/unconfirmed.svg');
--icon-polls-unconfirmed--fff: url('../icons/unconfirmed-fff.svg');
--icon-polls-yes: url('../icons/yes-vote.svg');
-// material design icons
- --icon-md-wrench: url('../icons/wrench.svg');
- --icon-md-format-list-checks: url('../icons/format-list-checks.svg');
- --icon-md-share-variant: url('../icons/share-variant.svg');
- --icon-md-comment-processing: url('../icons/comment-processing.svg');
// filters to colorize background svg from black
// generated with https://codepen.io/jsm91/embed/ZEEawyZ?height=600&default-tab=result&embed-version=2
@@ -86,37 +81,6 @@
.icon-polls-visible { background-image: var(--icon-polls-open-poll); }
.icon-polls-yes { background-image: var(--icon-polls-yes); }
-// material design icons
-.icon-md-sidebar-options {
- -webkit-mask-image: var(--icon-md-format-list-checks);
- mask-image: var(--icon-md-format-list-checks);
-}
-
-.icon-md-sidebar-configuration {
- -webkit-mask-image: var(--icon-md-wrench);
- mask-image: var(--icon-md-wrench);
-}
-
-.icon-md-sidebar-comments {
- -webkit-mask-image: var(--icon-md-comment-processing);
- mask-image: var(--icon-md-comment-processing);
-}
-
-.icon-md-sidebar-share {
- -webkit-mask-image: var(--icon-md-share-variant);
- mask-image: var(--icon-md-share-variant);
-}
-
-[class^='icon-md'] {
- background-color: #000;
- mask-repeat: no-repeat;
- mask-position: center;
- mask-size: 16px;
- &.light {
- background-color: #fff;
- }
-}
-
.theme--dark {
.icon-clock { background-image: var(--icon-clock--fff); }
.icon-circles { background-image: var(--icon-circles--fff); }
diff --git a/src/js/components/Base/Badge.vue b/src/js/components/Base/Badge.vue
index c35e66b7..bc42f059 100644
--- a/src/js/components/Base/Badge.vue
+++ b/src/js/components/Base/Badge.vue
@@ -21,8 +21,14 @@
-->
<template lang="html">
- <Component :is="tag" :class="badgeClass">
- {{ title }}
+ <Component :is="tag" class="badge">
+ <div :class="icon" />
+ <span>
+ {{ title }}
+ </span>
+ <span>
+ <slot />
+ </span>
</Component>
</template>
@@ -43,17 +49,13 @@ export default {
default: 'span',
},
},
-
- computed: {
- badgeClass() {
- return ['badge', this.icon, { withIcon: Boolean(this.icon) }]
- },
- },
}
</script>
<style lang="scss">
.badge {
+ display: flex;
+ gap: 5px;
border-radius: var(--border-radius);
padding: 5px;
margin: 8px 4px;
@@ -67,22 +69,22 @@ export default {
font-size: 0.6em;
}
- &.withIcon {
- padding-left: 25px !important;
- text-align: left;
- background-position: 4px center;
- }
-
&.error {
border-color: var(--color-error);
background-color: var(--color-error);
- color: var(--color-primary-text);
+ color: var(--color-primary-text) !important;
+ [class*='icon-md-'] {
+ background-color: #fff;
+ }
}
&.success {
border-color: var(--color-success);
background-color: var(--color-success);
- color: var(--color-primary-text);
+ color: var(--color-primary-text) !important;
+ [class*='icon-md-'] {
+ background-color: #fff;
+ }
}
}
diff --git a/src/js/components/Export/ExportPoll.vue b/src/js/components/Export/ExportPoll.vue
index e8ab8cb2..f9fb6786 100644
--- a/src/js/components/Export/ExportPoll.vue
+++ b/src/js/components/Export/ExportPoll.vue
@@ -21,7 +21,10 @@
-->
<template lang="html">
- <Actions default-icon="icon-download">
+ <Actions default-icon="icon-md-export">
+ <template #icon>
+ <ExportIcon />
+ </template>
<ActionButton close-after-click @click="exportFile('xlsx')">
<template #icon>
<ExcelIcon />
@@ -61,6 +64,7 @@ import ExcelIcon from 'vue-material-design-icons/MicrosoftExcel.vue'
import FileTableIcon from 'vue-material-design-icons/FileTableOutline.vue'
import CsvIcon from 'vue-material-design-icons/FileDelimited.vue'
import XmlIcon from 'vue-material-design-icons/Xml.vue'
+import ExportIcon from 'vue-material-design-icons/FileDownloadOutline'
export default {
name: 'ExportPoll',
@@ -70,6 +74,7 @@ export default {
CsvIcon,
ExcelIcon,
FileTableIcon,
+ ExportIcon,
XmlIcon,
},
diff --git a/src/js/components/Navigation/PollNavigationItems.vue b/src/js/components/Navigation/PollNavigationItems.vue
index e799db09..d2aff7dc 100644
--- a/src/js/components/Navigation/PollNavigationItems.vue
+++ b/src/js/components/Navigation/PollNavigationItems.vue
@@ -22,28 +22,30 @@
<template lang="html">
<AppNavigationItem :title="poll.title"
- :icon="pollIcon"
+ :icon="pollTypeIcon"
:to="{name: 'vote', params: {id: poll.id}}"
:class="{ closed: closed }">
<template #actions>
- <ActionButton v-if="isPollCreationAllowed" icon="icon-polls-clone" @click="$emit('clone-poll')">
+ <ActionButton v-if="isPollCreationAllowed"
+ icon="icon-md-clone-poll"
+ @click="$emit('clone-poll')">
{{ t('polls', 'Clone poll') }}
</ActionButton>
<ActionButton v-if="poll.allowEdit && !poll.deleted"
- icon="icon-category-app-bundles"
+ icon="icon-md-archive-poll"
@click="$emit('toggle-archive')">
{{ t('polls', 'Archive poll') }}
</ActionButton>
<ActionButton v-if="poll.allowEdit && poll.deleted"
- icon="icon-history"
+ icon="icon-md-restore-poll"
@click="$emit('toggle-archive')">
{{ t('polls', 'Restore poll') }}
</ActionButton>
<ActionButton v-if="poll.allowEdit && poll.deleted"
- icon="icon-delete"
+ icon="icon-md-delete-poll"
class="danger"
@click="$emit('delete-poll')">
{{ t('polls', 'Delete poll') }}
@@ -81,19 +83,13 @@ export default {
closed: 'poll/isClosed',
}),
- pollIcon() {
- if (this.poll.type === 'datePoll') {
- return 'icon-calendar-000'
+ pollTypeIcon() {
+ if (this.poll.type === 'textPoll') {
+ return 'icon-md-text-poll'
}
- return 'icon-toggle-filelist'
+ return 'icon-md-date-poll'
},
},
}
</script>
-
-<style lang="scss">
-.icon-calendar-000 {
- background-image: var(--icon-calendar-000);
-}
-</style>
diff --git a/src/js/components/Poll/PollHeaderButtons.vue b/src/js/components/Poll/PollHeaderButtons.vue
index e65e7736..2a7ae8fb 100644
--- a/src/js/components/Poll/PollHeaderButtons.vue
+++ b/src/js/components/Poll/PollHeaderButtons.vue
@@ -26,7 +26,10 @@
<Popover>
<template #trigger>
<Actions>
- <ActionButton icon="icon-info">
+ <ActionButton icon="icon-md-poll-information">
+ <template #icon>
+ <PollInformationIcon />
+ </template>
{{ t('polls', 'Poll informations') }}
</ActionButton>
</Actions>
@@ -44,10 +47,12 @@ import { Actions, ActionButton, Popover } from '@nextcloud/vue'
import { emit } from '@nextcloud/event-bus'
import ActionToggleSidebar from '../Actions/ActionToggleSidebar'
import UserMenu from '../User/UserMenu'
+import PollInformationIcon from 'vue-material-design-icons/InformationOutline.vue'
export default {
name: 'PollHeaderButtons',
components: {
+ PollInformationIcon,
Actions,
ActionButton,
Popover,
diff --git a/src/js/components/Poll/PollInfoLine.vue b/src/js/components/Poll/PollInfoLine.vue
index 219a536c..3635bf4e 100644
--- a/src/js/components/Poll/PollInfoLine.vue
+++ b/src/js/components/Poll/PollInfoLine.vue
@@ -22,9 +22,9 @@
<template lang="html">
<div class="poll-info-line">
- <span>{{ subTextLeft }}</span>
- <span v-for="(subText) in subTexts" :key="subText.text">
- <span :class="[subText.class, subText.icon]">{{ subText.text }}</span>
+ <span v-for="(subText) in subTexts" :key="subText.id" :class="subText.class">
+ <span :class="subText.icon" />
+ <span class="sub-text">{{ subText.text }}</span>
</span>
</div>
</template>
@@ -55,13 +55,6 @@ export default {
proposalsExpireRelative: 'poll/proposalsExpireRelative',
}),
- subTextLeft() {
- if (this.access === 'private') {
- return t('polls', 'A hidden poll from {name}', { name: this.ownerDisplayName })
- }
- return t('polls', 'A public poll from {name}', { name: this.ownerDisplayName })
- },
-
isNoAccessSet() {
return this.access === 'private' && !this.hasShares && this.mayEdit
},
@@ -69,59 +62,88 @@ export default {
subTexts() {
const subTexts = []
+ if (this.access === 'private') {
+ subTexts.push({
+ id: this.access,
+ text: t('polls', 'A hidden poll from {name}', { name: this.ownerDisplayName }),
+ icon: '',
+ class: '',
+ })
+ } else {
+ subTexts.push({
+ id: this.access,
+ text: t('polls', 'A public poll from {name}', { name: this.ownerDisplayName }),
+ icon: '',
+ class: '',
+ })
+ }
+
if (this.isNoAccessSet) {
- return [{
+ subTexts.push({
+ id: 'no-access',
text: t('polls', 'Invite users via the share tab in the sidebar'),
- icon: 'icon-error',
+ icon: 'icon-md-sidebar-share',
class: 'closed',
- }]
+ })
+ return subTexts
}
if (this.isDeleted) {
- return [{
+ subTexts.push({
+ id: 'deleted',
text: t('polls', 'Archived'),
- icon: 'icon-category-app-bundles',
+ icon: 'icon-md-archived-poll',
class: 'archived',
- }]
+ })
+ return subTexts
}
if (this.isClosed) {
- return [{
+ subTexts.push({
+ id: 'closed',
text: this.timeExpirationRelative,
icon: 'icon-polls-closed',
class: 'closed',
- }]
+ })
+ return subTexts
}
if (!this.isClosed && this.expire) {
subTexts.push({
+ id: 'expiring',
text: t('polls', 'Closing {relativeExpirationTime}', { relativeExpirationTime: this.timeExpirationRelative }),
- icon: 'icon-calendar-000',
+ icon: 'icon-md-expiration',
class: this.closeToClosing ? 'closing' : 'open',
})
+ return subTexts
}
if (this.proposalsExpirySet && this.proposalsExpired) {
subTexts.push({
+ id: 'expired',
text: t('polls', 'Proposal period ended {timeRelative}', { timeRelative: this.proposalsExpireRelative }),
- icon: 'icon-add',
+ icon: 'icon-md-proposals',
class: 'proposal',
})
+ return subTexts
}
if (this.proposalsExpirySet && !this.proposalsExpired) {
subTexts.push({
+ id: 'proposal-open',
text: t('polls', 'Proposal period ends {timeRelative}', { timeRelative: this.proposalsExpireRelative }),
- icon: 'icon-add',
+ icon: 'icon-md-proposals',
class: 'proposal',
})
+ return subTexts
}
- if (subTexts.length < 1) {
- return [{
+ if (subTexts.length < 2) {
+ subTexts.push({
+ id: 'created',
text: this.dateCreatedRelative,
- icon: 'icon-clock',
+ icon: 'icon-md-creation',
class: 'created',
- }]
+ })
}
return subTexts
},
@@ -153,42 +175,52 @@ export default {
opacity: 0.7;
font-size: 1em;
- button {
- margin-left: 8px;
- }
-
& > span:not(:last-child)::after {
content: "|";
- padding: 0 4px;
+ padding: 0 2px;
}
[class^="icon-"],
[class*=" icon-"] {
- padding-left: 21px;
- background-position: left center;
+ padding-right: 21px;
+ }
+
+ [class^="icon-md"],
+ [class*=" icon-md"] {
+ mask-size: 1em;
}
.closed {
- color: var(--color-error);
- font-weight: 700;
+ .sub-text{
+ color: var(--color-error);
+ font-weight: 700;
+ }
}
.closing {
- color: var(--color-warning);
- font-weight: 700;
+ .sub-text{
+ color: var(--color-warning);
+ font-weight: 700;
+ }
}
.open {
- font-weight: 700;
+ .sub-text{
+ font-weight: 700;
+ }
}
.archived {
- color: var(--color-error);
- font-weight: 700;
+ .sub-text{
+ color: var(--color-error);
+ font-weight: 700;
+ }
}
.created {
- color: var(--color-text-light);
+ .sub-text{
+ color: var(--color-text-light);
+ }
}
}
</style>
diff --git a/src/js/components/Poll/PollInformation.vue b/src/js/components/Poll/PollInformation.vue
index 7d3a13df..5d48a71e 100644
--- a/src/js/components/Poll/PollInformation.vue
+++ b/src/js/components/Poll/PollInformation.vue
@@ -22,45 +22,34 @@
<template lang="html">
<div class="poll-information">
- <div class="icon-user">
+ <Badge icon="icon-md-owner">
{{ t('polls', 'Poll owner:') }} <UserBubble v-if="poll.owner.userId" :user="poll.owner.userId" :display-name="poll.owner.displayName" />
- </div>
- <div :class="accessClass">
- {{ accessCaption }}
- </div>
- <div class="icon-star">
- {{ t('polls', 'Created {dateRelative}', { dateRelative: dateCreatedRelative }) }}
- </div>
- <div v-if="poll.expire" class="icon-polls-closed">
- {{ t('polls', 'Closing: {dateRelative}', {dateRelative: dateExpiryRelative}) }}
- </div>
- <div v-if="poll.anonymous" class="icon-polls-anonymous">
- {{ t('polls', 'Anonymous poll') }}
- </div>
- <div :class="resultsClass">
- {{ resultsCaption }}
- </div>
- <div v-if="countParticipantsVoted && acl.allowSeeResults" class="icon-user">
- {{ n('polls', '%n Participant', '%n Participants', countParticipantsVoted) }}
- </div>
- <div class="icon-polls-unconfirmed">
- {{ n('polls', '%n option', '%n options', countOptions) }}
- </div>
- <div v-if="countAllYesVotes" class="icon-polls-yes">
+ </Badge>
+ <Badge :icon="accessClass" :title="accessCaption" />
+ <Badge icon="icon-md-creation"
+ :title="t('polls', 'Created {dateRelative}', { dateRelative: dateCreatedRelative })" />
+ <Badge v-if="poll.expire"
+ icon="icon-md-closed-poll"
+ :title="t('polls', 'Closing: {dateRelative}', {dateRelative: dateExpiryRelative})" />
+ <Badge v-if="poll.anonymous"
+ icon="icon-md-anonymous-poll"
+ :title="t('polls', 'Anonymous poll')" />
+ <Badge :icon="resultsClass" :title="resultsCaption" />
+ <Badge v-if="countParticipantsVoted && acl.allowSeeResults"
+ icon="icon-md-participants"
+ :title="n('polls', '%n Participant', '%n Participants', countParticipantsVoted)" />
+ <Badge icon="icon-md-options" :title="n('polls', '%n option', '%n options', countOptions)" />
+ <Badge v-if="countAllYesVotes" icon="icon-md-yes-votes">
{{ n('polls', '%n "Yes" vote', '%n "Yes" votes', countAllYesVotes) }}
- </div>
- <div v-if="countAllNoVotes" class="icon-polls-no">
- {{ n('polls', '%n "No" vote', '%n "No" votes', countAllNoVotes) }}
- </div>
- <div v-if="countAllMaybeVotes" class="icon-polls-maybe">
+ </Badge>
+ <Badge v-if="countAllNoVotes" icon="icon-md-no-votes">
+ {{ n('polls', '%n No vote', '%n "No" votes', countAllNoVotes) }}
+ </Badge>
+ <Badge v-if="countAllMaybeVotes" icon="icon-md-maybe-votes">
{{ n('polls', '%n "Maybe" vote', '%n "Maybe" votes', countAllMaybeVotes) }}
- </div>
- <div class="icon-timezone">
- {{ t('polls', 'Time zone: {timezoneString}', { timezoneString: currentTimeZone}) }}
- </div>
- <div v-if="proposalsAllowed" class="icon-add">
- {{ proposalsStatus }}
- </div>
+ </Badge>
+ <Badge icon="icon-md-timezone" :title="t('polls', 'Time zone: {timezoneString}', { timezoneString: currentTimeZone})" />
+ <Badge v-if="proposalsAllowed" icon="icon-md-proposals-allowed" :title="proposalsStatus" />
<div v-if="poll.voteLimit" class="icon-checkmark">
{{ n('polls', '%n of {maximalVotes} vote left.', '%n of {maximalVotes} votes left.', poll.voteLimit - countVotes('yes'), { maximalVotes: poll.voteLimit }) }}
</div>
@@ -70,9 +59,9 @@
<div v-if="$route.name === 'publicVote' && share.emailAddress" class="icon-mail">
{{ share.emailAddress }}
</div>
- <div v-if="subscribed" class="icon-sound">
- {{ t('polls', 'You subscribed to this poll') }}
- </div>
+ <Badge v-if="subscribed"
+ icon="icon-md-subscribed"
+ :title="t('polls', 'You subscribed to this poll')" />
</div>
</template>
@@ -80,11 +69,13 @@
import { mapState, mapGetters } from 'vuex'
import moment from '@nextcloud/moment'
import { UserBubble } from '@nextcloud/vue'
+import Badge from '../Base/Badge'
export default {
name: 'PollInformation',
components: {
+ Badge,
UserBubble,
},
@@ -138,35 +129,37 @@ export default {
return t('polls', 'Results are always hidden')
}
return t('polls', 'Results are visible')
+ },
+
+ resultsClass() {
+ if (this.showResults === 'never') {
+ return 'icon-md-show-results-never'
+ }
+ if (this.showResults === 'closed' && !this.closed) {
+ return 'icon-md-hide-results-until-closed'
+ }
+ return 'icon-md-show-results'
},
accessCaption() {
if (this.access === 'private') {
- return t('polls', 'Access only for invited persons')
+ return t('polls', 'Private poll')
}
if (this.important) {
- return t('polls', 'Relevant and accessible for all users')
+ return t('polls', 'Open and relevant poll')
}
return t('polls', 'Open poll')
},
accessClass() {
if (this.access === 'private') {
- return 'icon-polls-private-poll'
+ return 'icon-md-private-poll'
}
if (this.important) {
- return 'icon-polls-open-poll'
- }
- return 'icon-polls-open-poll'
- },
-
- resultsClass() {
- if (this.showResults === 'never' || (this.showResults === 'closed' && !this.closed)) {
- return 'icon-polls-private'
+ return 'icon-md-open-poll'
}
- return 'icon-polls-visible'
-
+ return 'icon-md-open-poll'
},
dateCreatedRelative() {
diff --git a/src/js/components/PollList/PollItem.vue b/src/js/components/PollList/PollItem.vue
index a352e27d..d3e1d4e4 100644
--- a/src/js/components/PollList/PollItem.vue
+++ b/src/js/components/PollList/PollItem.vue
@@ -53,7 +53,7 @@
</div>
<div v-else class="poll-item__item">
- <div v-tooltip.auto="pollType" :class="'item__type--' + poll.type" />
+ <div v-tooltip.auto="pollTypeName" :class="['item__icon-spacer', pollTypeIcon]" />
<div v-if="noLink" class="item__title" :class="{ closed: closed }">
<div class="item__title__title">
@@ -89,11 +89,11 @@
<div class="wrapper">
<div class="item__created">
<Badge :title="timeCreatedRelative"
- icon="icon-clock" />
+ icon="icon-md-creation" />
</div>
<div class="item__expiry">
<Badge :title="timeExpirationRelative"
- icon="icon-calendar-000"
+ icon="icon-md-expiration"
:class="expiryClass" />
</div>
</div>
@@ -152,24 +152,32 @@ export default {
return t('polls', 'Private poll')
},
- accessIcon() {
- if (this.poll.deleted) {
- return 'icon-category-app-bundles'
+ pollTypeName() {
+ if (this.poll.type === 'textPoll') {
+ return t('polls', 'Text poll')
}
- if (this.poll.access === 'open') {
- return 'icon-polls-open-poll'
+ return t('polls', 'Date poll')
+ },
+
+ pollTypeIcon() {
+ if (this.poll.type === 'textPoll') {
+ return 'icon-md-text-poll'
}
- return 'icon-polls-private-poll'
+ return 'icon-md-date-poll'
},
- pollType() {
- if (this.poll.type === 'textPoll') {
- return t('polls', 'Text poll')
+ accessIcon() {
+ if (this.poll.deleted) {
+ return 'icon-md-archived-poll'
}
- return t('polls', 'Date poll')
+ if (this.poll.access === 'open') {
+ return 'icon-md-open-poll'
+ }
+
+ return 'icon-md-private-poll'
},
timeExpirationRelative() {
@@ -306,14 +314,6 @@ export default {
min-height: 16px;
}
- .item__type--textPoll {
- background-image: var(--icon-toggle-filelist-000);
- }
-
- .item__type--datePoll {
- background-image: var(--icon-calendar-000);
- }
-
[class^='item__access'] {
width: 70px;
background-repeat: no-repeat;
@@ -322,16 +322,4 @@ export default {
min-height: 16px;
justify-content: center;
}
-
- .item__access--public {
- background-image: var(--icon-polls-open-poll);
- }
-
- .item__access--hidden {
- background-image: var(--icon-polls-private-poll);
- }
-
- .item__access--deleted {
- background-image: var(--icon-category-app-bundles-000);
- }
</style>
diff --git a/src/js/components/PollList/PollItemAdmin.vue b/src/js/components/PollList/PollItemAdmin.vue
index 2ccbb8c9..9f8dc0c4 100644
--- a/src/js/components/PollList/PollItemAdmin.vue
+++ b/src/js/components/PollList/PollItemAdmin.vue
@@ -53,7 +53,8 @@
</div>
<div v-else class="poll-item__item" :class="{ closed: closed, active: (poll.id === $store.state.poll.id) }">
- <div v-tooltip.auto="pollType" :class="'item__type--' + poll.type" />
+ <div v-tooltip.auto="pollTypeName" :class="pollTypeIcon" />
+
<div class="item__title">
<div class="item__title__title">
{{ poll.title }}
@@ -62,11 +63,15 @@
{{ poll.description ? poll.description : t('polls', 'No description provided') }}
</div>
</div>
+
<slot name="actions" />
+
<div v-tooltip.auto="accessType" :class="'item__access--' + poll.access" />
+
<div class="item__owner">
<UserItem v-bind="poll.owner" />
</div>
+
<div class="wrapper">
<div class="item__created">
{{ timeCreatedRelative }}
@@ -117,12 +122,20 @@ export default {
},
- pollType() {
+ pollTypeName() {
if (this.poll.type === 'textPoll') {
return t('polls', 'Text poll')
}
+
return t('polls', 'Date poll')
+ },
+
+ pollTypeIcon() {
+ if (this.poll.type === 'textPoll') {
+ return 'icon-md-text-poll'
+ }
+ return 'icon-md-date-poll'
},
timeExpirationRelative() {
diff --git a/src/js/components/SideBar/SideBarTabComments.vue b/src/js/components/SideBar/SideBarTabComments.vue
index b3dedf04..1ef36a17 100644
--- a/src/js/components/SideBar/SideBarTabComments.vue
+++ b/src/js/components/SideBar/SideBarTabComments.vue
@@ -24,7 +24,7 @@
<div class="comments">
<CommentAdd v-if="acl.allowComment" />
<Comments v-if="!showEmptyContent" />
- <EmptyContent v-else icon="icon-comment">
+ <EmptyContent v-else icon="icon-md-sidebar-comments">
{{ t('polls', 'No comments') }}
<template #desc>
{{ t('polls', 'Be the first.') }}
diff --git a/src/js/components/SideBar/SideBarTabConfiguration.vue b/src/js/components/SideBar/SideBarTabConfiguration.vue
index 5d8b3989..cb81fdb8 100644
--- a/src/js/components/SideBar/SideBarTabConfiguration.vue
+++ b/src/js/components/SideBar/SideBarTabConfiguration.vue
@@ -68,7 +68,7 @@
<ConfigBox :title="t('polls', 'Result display')">
<template #icon>
<ShowResultsIcon v-if="showResults === 'always'" />
- <HieResultsUntilClosedIcon v-if="showResults === 'closed'" />
+ <HideResultsUntilClosedIcon v-if="showResults === 'closed'" />
<ShowResultsNeverIcon v-if="showResults === 'never'" />
</template>
<ConfigShowResults @change="writePoll" />
@@ -109,7 +109,7 @@ import PollConfigIcon from 'vue-material-design-icons/Wrench.vue'
import LockedIcon from 'vue-material-design-icons/Lock.vue'
import UnlockedIcon from 'vue-material-design-icons/LockOpenVariant.vue'
import ShowResultsIcon from 'vue-material-design-icons/Monitor.vue'
-import HieResultsUntilClosedIcon from 'vue-material-design-icons/MonitorLock.vue'
+import HideResultsUntilClosedIcon from 'vue-material-design-icons/MonitorLock.vue'
import ShowResultsNeverIcon from 'vue-material-design-icons/MonitorOff.vue'
export default {
@@ -118,7 +118,7 @@ export default {
components: {
DescriptionIcon,
ShowResultsIcon,
- HieResultsUntilClosedIcon,
+ HideResultsUntilClosedIcon,
ShowResultsNeverIcon,
LockedIcon,
UnlockedIcon,
diff --git a/src/js/components/User/UserMenu.vue b/src/js/components/User/UserMenu.vue
index 320bce50..c79e5394 100644
--- a/src/js/components/User/UserMenu.vue
+++ b/src/js/components/User/UserMenu.vue
@@ -27,7 +27,7 @@
</ActionButton>
<ActionSeparator />
<ActionInput v-if="$route.name === 'publicVote'"
- icon="icon-edit"
+ icon="icon-md-edit-email-address"
:class="check.status"
:value="emailAddressTemp"
@click="deleteEmailAddress"
@@ -38,7 +38,7 @@
<ActionButton v-if="$route.name === 'publicVote'"
:disabled="!emailAddress"
:value="emailAddress"
- icon="icon-share"
+ icon="icon-md-send-link-per-email"
@click="resendInvitation()">
{{ t('polls', 'Get your personal link per mail') }}
</ActionButton>
@@ -50,14 +50,14 @@
</ActionCheckbox>
<ActionButton v-if="$route.name === 'publicVote' && emailAddress"
:disabled="!emailAddress"
- icon="icon-delete"
+ icon="icon-md-delete"
@click="deleteEmailAddress">
{{ t('polls', 'Remove Email Address') }}
</ActionButton>
- <ActionButton v-if="acl.allowEdit" icon="icon-clippy" @click="getAddresses()">
+ <ActionButton v-if="acl.allowEdit" icon="icon-md-clippy" @click="getAddresses()">
{{ t('polls', 'Copy list of email addresses to clipboard') }}
</ActionButton>
- <ActionButton icon="icon-history" @click="resetVotes()">
+ <ActionButton icon="icon-md-reset-votes" @click="resetVotes()">
{{ t('polls', 'Reset your votes') }}
</ActionButton>
</Actions>
diff --git a/src/js/store/modules/poll.js b/src/js/store/modules/poll.js
index cc77690d..9b6a70dd 100644
--- a/src/js/store/modules/poll.js
+++ b/src/js/store/modules/poll.js
@@ -102,12 +102,18 @@ const getters = {
},
- typeIcon: (state) => {
+ typeName: (state) => {
if (state.type === 'textPoll') {
- return 'icon-toggle-filelist'
+ return t('polls', 'Text poll')
}
- return 'icon-calendar-000'
+ return t('polls', 'Date poll')
+ },
+ typeIcon: (state) => {
+ if (state.type === 'textPoll') {
+ return 'icon-md-text-poll'
+ }
+ return 'icon-md-date-poll'
},
answerSequence: (state, getters, rootState) => {
diff --git a/src/js/store/modules/polls.js b/src/js/store/modules/polls.js
index 72e22ad3..35c32356 100644
--- a/src/js/store/modules/polls.js
+++ b/src/js/store/modules/polls.js
@@ -43,7 +43,7 @@ const state = {
title: t('polls', 'Relevant'),
titleExt: t('polls', 'Relevant polls'),
description: t('polls', 'All polls which are relevant or important to you, because you are a participant or the owner or you are invited to. Without polls closed more than five days ago.'),
- icon: 'icon-details',
+ icon: 'icon-md-navigation-relevant',
pinned: false,
createDependent: false,
filterCondition(poll) {
@@ -61,7 +61,7 @@ const state = {
title: t('polls', 'My polls'),
titleExt: t('polls', 'My polls'),
description: t('polls', 'Your polls (in which you are the owner).'),
- icon: 'icon-user',
+ icon: 'icon-md-navigation-my',
pinned: false,
createDependent: true,
filterCondition(poll) {
@@ -73,7 +73,7 @@ const state = {
title: t('polls', 'Private polls'),
titleExt: t('polls', 'Private polls'),
description: t('polls', 'All private polls, to which you have access.'),
- icon: 'icon-polls-private-poll',
+ icon: 'icon-md-navigation-private',
pinned: false,
createDependent: true,
filterCondition(poll) {
@@ -85,7 +85,7 @@ const state = {
title: t('polls', 'Participated'),
titleExt: t('polls', 'Participated'),
description: t('polls', 'All polls, where you placed a vote.'),
- icon: 'icon-polls-confirmed',
+ icon: 'icon-md-navigation-participated',
pinned: false,
createDependent: false,
filterCondition(poll) {
@@ -97,7 +97,7 @@ const state = {
title: t('polls', 'Open polls'),
titleExt: t('polls', 'Open polls'),
description: t('polls', 'A complete list with all open polls on this site, regardless who is the owner.'),
- icon: 'icon-link',
+ icon: 'icon-md-navigation-open',
pinned: false,
createDependent: true,
filterCondition(poll) {
@@ -109,7 +109,7 @@ const state = {
title: t('polls', 'All polls'),
titleExt: t('polls', 'All polls'),
description: t('polls', 'All polls, where you have access to.'),
- icon: 'icon-polls',
+ icon: 'icon-md-navigation-all',
pinned: false,
createDependent: false,
filterCondition(poll) {
@@ -121,7 +121,7 @@ const state = {
title: t('polls', 'Closed polls'),
titleExt: t('polls', 'Closed polls'),
description: t('polls', 'All closed polls, where voting is disabled.'),
- icon: 'icon-polls-closed',
+ icon: 'icon-md-navigation-closed',
pinned: false,
createDependent: false,
filterCondition(poll) {
@@ -135,7 +135,7 @@ const state = {
title: t('polls', 'Archive'),
titleExt: t('polls', 'My archived polls'),
description: t('polls', 'Your archived polls are only accessible to you.'),
- icon: 'icon-category-app-bundles',
+ icon: 'icon-md-navigation-archived',
pinned: true,
createDependent: true,
filterCondition(poll) {
diff --git a/src/js/views/Navigation.vue b/src/js/views/Navigation.vue
index eeef6ead..27fd0cc1 100644
--- a/src/js/views/Navigation.vue
+++ b/src/js/views/Navigation.vue
@@ -49,13 +49,13 @@
<template #footer>
<AppNavigationItem v-if="isComboActivated"
:title="t('polls', 'Combine polls')"
- icon="icon-projects"
+ icon="icon-md-navigation-combo"
:to="{ name: 'combo' }" />
<AppNavigationItem v-if="showAdminSection"
:title="t('core', 'Administration')"
- icon="icon-settings"
+ icon="icon-md-navigation-administration"
:to="{ name: 'administration' }" />
- <AppNavigationItem :title="t('core', 'Your app settings')" icon="icon-settings" @click="showSettings()" />
+ <AppNavigationItem :title="t('core', 'Personal settings')" icon="icon-md-navigation-personal-settings" @click="showSettings()" />
</template>
</AppNavigation>
</template>
diff --git a/src/js/views/PollList.vue b/src/js/views/PollList.vue
index 5593523f..f0bff76e 100644
--- a/src/js/views/PollList.vue
+++ b/src/js/views/PollList.vue
@@ -53,28 +53,28 @@
<template #actions>
<Actions force-menu>
<ActionButton v-if="isPollCreationAllowed"
- icon="icon-add"
+ icon="icon-md-clone-poll"
:close-after-click="true"
@click="clonePoll(poll.id)">
{{ t('polls', 'Clone poll') }}
</ActionButton>
<ActionButton v-if="poll.allowEdit && !poll.deleted"
- icon="icon-category-app-bundles"
+ icon="icon-md-archive-poll"
:close-after-click="true"
@click="toggleArchive(poll.id)">
{{ t('polls', 'Archive poll') }}
</ActionButton>
<ActionButton v-if="poll.allowEdit && poll.deleted"
- icon="icon-history"
+ icon="icon-md-restore-poll"
:close-after-click="true"
@click="toggleArchive(poll.id)">
{{ t('polls', 'Restore poll') }}
</ActionButton>
<ActionButton v-if="poll.allowEdit && poll.deleted"
- icon="icon-delete"
+ icon="icon-md-delete-poll"
class="danger"
:close-after-click="true"
@click="deletePoll(poll.id)">