diff --git a/frontend/package.json b/frontend/package.json
index 506679265..34aec1ed8 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -10,7 +10,7 @@
},
"dependencies": {
"axios": "^0.21.1",
- "buefy": "^0.8.20",
+ "buefy": "^0.9.7",
"c3": "^0.7.18",
"codeflask": "^1.4.1",
"core-js": "^3.6.5",
diff --git a/frontend/src/assets/buefy.scss b/frontend/src/assets/buefy.scss
deleted file mode 100644
index 375b7f7eb..000000000
--- a/frontend/src/assets/buefy.scss
+++ /dev/null
@@ -1,44 +0,0 @@
-@import "~bulma/sass/base/_all";
-@import "~bulma/sass/elements/_all";
-@import "~bulma/sass/components/card";
-@import "~bulma/sass/components/dropdown";
-@import "~bulma/sass/components/level";
-@import "~bulma/sass/components/menu";
-@import "~bulma/sass/components/message";
-@import "~bulma/sass/components/modal";
-@import "~bulma/sass/components/navbar";
-@import "~bulma/sass/components/pagination";
-@import "~bulma/sass/components/tabs";
-@import "~bulma/sass/form/_all";
-@import "~bulma/sass/grid/columns";
-@import "~bulma/sass/grid/tiles";
-@import "~bulma/sass/layout/section";
-@import "~bulma/sass/layout/footer";
-
-@import "~buefy/src/scss/utils/_all";
-@import "~buefy/src/scss/components/_autocomplete";
-@import "~buefy/src/scss/components/_carousel";
-@import "~buefy/src/scss/components/_checkbox";
-@import "~buefy/src/scss/components/_datepicker";
-@import "~buefy/src/scss/components/_dialog";
-@import "~buefy/src/scss/components/_dropdown";
-@import "~buefy/src/scss/components/_form";
-@import "~buefy/src/scss/components/_icon";
-@import "~buefy/src/scss/components/_loading";
-@import "~buefy/src/scss/components/_menu";
-@import "~buefy/src/scss/components/_message";
-@import "~buefy/src/scss/components/_modal";
-@import "~buefy/src/scss/components/_pagination";
-@import "~buefy/src/scss/components/_notices";
-@import "~buefy/src/scss/components/_progress";
-@import "~buefy/src/scss/components/_radio";
-@import "~buefy/src/scss/components/_select";
-@import "~buefy/src/scss/components/_sidebar";
-@import "~buefy/src/scss/components/_switch";
-@import "~buefy/src/scss/components/_table";
-@import "~buefy/src/scss/components/_tabs";
-@import "~buefy/src/scss/components/_tag";
-@import "~buefy/src/scss/components/_taginput";
-@import "~buefy/src/scss/components/_timepicker";
-@import "~buefy/src/scss/components/_tooltip";
-@import "~buefy/src/scss/components/_upload";
diff --git a/frontend/src/assets/style.scss b/frontend/src/assets/style.scss
index b9ec9164e..55242e6b2 100644
--- a/frontend/src/assets/style.scss
+++ b/frontend/src/assets/style.scss
@@ -30,10 +30,11 @@ $modal-background-background-color: rgba(0, 0, 0, .30);
$speed-slow: 25ms !default;
$speed-slower: 50ms !default;
-/* Import full Bulma and Buefy to override styles. */
-// @import "~bulma";
-@import "./buefy";
+/* Import full Bulma and Buefy */
+@import "~bulma";
+@import "~buefy/src/scss/buefy";
+/* Custom style overrides */
html, body {
height: 100%;
}
@@ -752,6 +753,7 @@ section.campaign {
/* Hide sidebar menu captions on mobile */
.b-sidebar .sidebar-content.is-mini-mobile {
+ max-width: 90px;
.menu-list {
li {
margin-bottom: 30px;
@@ -773,7 +775,6 @@ section.campaign {
td .tags {
display: block;
- text-align: right;
.tag:not(:last-child) {
margin-right: 0;
diff --git a/frontend/src/utils.js b/frontend/src/utils.js
index 74ea9135b..47e6b0f98 100644
--- a/frontend/src/utils.js
+++ b/frontend/src/utils.js
@@ -118,4 +118,8 @@ export default class Utils {
duration: duration || 2000,
});
};
+
+ // Takes a props.row from a Buefy b-column
template and
+ // returns a `data-id` attribute which Buefy then applies to the td.
+ tdID = (row) => ({ 'data-id': row.id.toString() });
}
diff --git a/frontend/src/views/Campaigns.vue b/frontend/src/views/Campaigns.vue
index 3b7db7677..52cdec2bf 100644
--- a/frontend/src/views/Campaigns.vue
+++ b/frontend/src/views/Campaigns.vue
@@ -29,175 +29,173 @@
paginated backend-pagination pagination-position="both" @page-change="onPageChange"
:current-page="queryParams.page" :per-page="campaigns.perPage" :total="campaigns.total"
hoverable backend-sorting @sort="onSort">
-
-
-
-
-
-
- {{ $t(`campaigns.status.${props.row.status}`) }}
-
-
-
-
-
-
-
-
-
-
- {{ $utils.duration(Date(), props.row.sendAt, true) }}
- {{ $utils.niceDate(props.row.sendAt, true) }}
-
-
-
-
-
-
-
-
-
- {{ props.row.type }}
-
-
- {{ props.row.name }}
-
- {{ props.row.subject }}
-
- {{ t }}
-
-
-
-
-
-
-
-
-
-
- {{ $utils.niceDate(props.row.createdAt, true) }}
-
-
-
- {{ $utils.niceDate(stats.startedAt, true) }}
-
-
-
- {{ $utils.niceDate(stats.updatedAt, true) }}
-
-
-
- {{ $utils.duration(stats.startedAt, stats.updatedAt) }}
-
-
-
+
+
+
+
+
+ {{ $t(`campaigns.status.${props.row.status}`) }}
+
+
+
+
+
+
+
+
+
+
+ {{ $utils.duration(Date(), props.row.sendAt, true) }}
+ {{ $utils.niceDate(props.row.sendAt, true) }}
+
+
+
+
+
+
+
+
+
+ {{ props.row.type }}
+
+
+ {{ props.row.name }}
+
+ {{ props.row.subject }}
+
+ {{ t }}
+
+
+
+
+
+
+
+
+
+
+ {{ $utils.niceDate(props.row.createdAt, true) }}
+
+
+
+ {{ $utils.niceDate(stats.startedAt, true) }}
+
+
+
+ {{ $utils.niceDate(stats.updatedAt, true) }}
+
+
+
+ {{ $utils.duration(stats.startedAt, stats.updatedAt) }}
+
+
+
-
-
-
-
- {{ props.row.views }}
-
-
-
- {{ props.row.clicks }}
-
-
-
- {{ stats.sent }} / {{ stats.toSend }}
-
-
-
-
- {{ stats.rate.toFixed(0) }} / min
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ props.row.views }}
+
+
+
+ {{ props.row.clicks }}
+
+
+
+ {{ stats.sent }} / {{ stats.toSend }}
+
+
+
+
+ {{ stats.rate.toFixed(0) }} / min
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
- {{ props.row.name }}
-
-
- {{ t }}
-
-
-
-
-
-
-
-
-
-
- {{ props.row.subscriberCount }}
-
-
-
-
- {{ $utils.niceDate(props.row.createdAt) }}
-
-
- {{ $utils.niceDate(props.row.updatedAt) }}
-
-
-
-
-
-
-
-
-
-
+
+
+
+ {{ props.row.name }}
+
+
+ {{ t }}
+
+
+
+
+
+
+
+
+
+
+ {{ props.row.subscriberCount }}
+
+
+
+
+ {{ $utils.niceDate(props.row.createdAt) }}
+
+
+ {{ $utils.niceDate(props.row.updatedAt) }}
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/views/Subscribers.vue b/frontend/src/views/Subscribers.vue
index cd643aa65..cdcdc08c1 100644
--- a/frontend/src/views/Subscribers.vue
+++ b/frontend/src/views/Subscribers.vue
@@ -108,86 +108,85 @@
paginated backend-pagination pagination-position="both" @page-change="onPageChange"
:current-page="queryParams.page" :per-page="subscribers.perPage" :total="subscribers.total"
hoverable checkable backend-sorting @sort="onSort">
-
+
{{ $t('subscribers.export') }}
-
-
-
-
- {{ $t('subscribers.status.'+ props.row.status) }}
+
+
+
+ {{ $t('subscribers.status.'+ props.row.status) }}
+
+
+
+
+
+
+ {{ props.row.email }}
+
+
+
+
+
+ {{ l.name }}
+ {{ $t('subscribers.status.'+ l.subscriptionStatus) }}
-
-
+
+
+
+
+
+
+
+ {{ props.row.name }}
+
+
-
-
- {{ props.row.email }}
-
-
-
-
-
- {{ l.name }}
- {{ $t('subscribers.status.'+ l.subscriptionStatus) }}
-
-
-
-
-
-
-
-
- {{ props.row.name }}
-
-
-
-
- {{ listCount(props.row.lists) }}
-
-
-
- {{ $utils.niceDate(props.row.createdAt) }}
-
-
-
- {{ $utils.niceDate(props.row.updatedAt) }}
-
-
-
-
-
-
-
+
+ {{ listCount(props.row.lists) }}
+
+
+
+ {{ $utils.niceDate(props.row.createdAt) }}
+
+
+
+ {{ $utils.niceDate(props.row.updatedAt) }}
+
+
+
+
+
+
+
diff --git a/frontend/src/views/Templates.vue b/frontend/src/views/Templates.vue
index 284eeaf1f..eaee5fd2b 100644
--- a/frontend/src/views/Templates.vue
+++ b/frontend/src/views/Templates.vue
@@ -14,70 +14,71 @@
-
-
-
- {{ props.row.name }}
-
- {{ $t('templates.default') }}
-
-
-
- {{ $utils.niceDate(props.row.createdAt) }}
-
-
-
- {{ $utils.niceDate(props.row.updatedAt) }}
-
-
-
-
-
-
-
-
-
-
+
+
+ {{ props.row.name }}
+
+ {{ $t('templates.default') }}
+
+
+
+ {{ $utils.niceDate(props.row.createdAt) }}
+
+
+
+ {{ $utils.niceDate(props.row.updatedAt) }}
+
+
+
+
+
+
+
+
+
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 3fbb722e2..0b82e61f4 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -2606,12 +2606,12 @@ browserslist@^4.14.5, browserslist@^4.16.6:
escalade "^3.1.1"
node-releases "^1.1.71"
-buefy@^0.8.20:
- version "0.8.20"
- resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.8.20.tgz#75708800548220654575903d031a81fc8575b7f3"
- integrity sha512-pg8Cn0m9cjqp2/vaKT4VIfU8KIumuX/gAT1GtearXRs56+kKqAPx3j9O8cm9W6P4jPUCHajKX6H8AqD0ram2Bg==
+buefy@^0.9.7:
+ version "0.9.7"
+ resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.9.7.tgz#694e73fe0b32632a53d94c5ba9cfa4468363badd"
+ integrity sha512-Fli0ZjNDgtFtHm0LItWmfhNJ1oLjDwPzUWccvwXXoo2mADXaH8JQxyhY+drUuUV5/GMu5PtwqQSqPgZy942VZg==
dependencies:
- bulma "0.7.5"
+ bulma "0.9.2"
buffer-crc32@~0.2.3:
version "0.2.13"
@@ -2652,10 +2652,10 @@ builtin-status-codes@^3.0.0:
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
-bulma@0.7.5:
- version "0.7.5"
- resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.7.5.tgz#35066c37f82c088b68f94450be758fc00a967208"
- integrity sha512-cX98TIn0I6sKba/DhW0FBjtaDpxTelU166pf7ICXpCCuplHWyu6C9LYZmL5PEsnePIeJaiorsTEzzNk3Tsm1hw==
+bulma@0.9.2:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.9.2.tgz#340011e119c605f19b8ca886bfea595f1deaf23c"
+ integrity sha512-e14EF+3VSZ488yL/lJH0tR8mFWiEQVCMi/BQUMi2TGMBOk+zrDg4wryuwm/+dRSHJw0gMawp2tsW7X1JYUCE3A==
bytes@3.0.0:
version "3.0.0"
|