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
diff options
context:
space:
mode:
authorRené Gieling <github@dartcafe.de>2020-01-03 20:44:58 +0300
committerGitHub <noreply@github.com>2020-01-03 20:44:58 +0300
commit33ac9bb6fe284ea5b9f26e780e191c8551f075c7 (patch)
tree81d16914eea867003d48348001f042fee9e743d4
parent6f6f21af69f23824b70cd9ce0fe1e7f3c70a4e7c (diff)
parentec848fd33eed15c3bad2267c6ae9cd247de6d3ef (diff)
Merge pull request #705 from nextcloud/fixesv1.0-beta
Fixes
-rw-r--r--.stylelintrc.js26
-rw-r--r--.travis.yml2
-rw-r--r--appinfo/info.xml2
-rw-r--r--lib/Controller/ShareController.php5
-rw-r--r--package.json24
-rw-r--r--src/js/App.vue15
-rw-r--r--src/js/assets/app.pngbin195 -> 0 bytes
-rw-r--r--src/js/components/Base/LoadingOverlay.vue42
-rw-r--r--src/js/components/Base/UserDiv.vue50
-rw-r--r--src/js/components/Create/CreateDlg.vue14
-rw-r--r--src/js/components/Navigation/Navigation.vue4
-rw-r--r--src/js/components/PollList/PollListItem.vue171
-rw-r--r--src/js/components/SideBar/CommentAdd.vue5
-rw-r--r--src/js/components/SideBar/SideBarTabConfiguration.vue30
-rw-r--r--src/js/components/SideBar/SideBarTabDateOptions.vue6
-rw-r--r--src/js/components/SideBar/SideBarTabShare.vue18
-rw-r--r--src/js/components/SideBar/SideBarTabTextOptions.vue138
-rw-r--r--src/js/components/VoteTable/VoteHeaderPublic.vue11
-rw-r--r--src/js/components/VoteTable/VoteTable.vue3
-rw-r--r--src/js/components/VoteTable/VoteTableHeader.vue6
-rw-r--r--src/js/components/VoteTable/VoteTableItem.vue3
-rw-r--r--src/js/store/index.js22
-rw-r--r--src/js/store/modules/acl.js10
-rw-r--r--src/js/store/modules/comments.js22
-rw-r--r--src/js/store/modules/index.js37
-rw-r--r--src/js/store/modules/options.js51
-rw-r--r--src/js/store/modules/poll.js23
-rw-r--r--src/js/store/modules/polls.js8
-rw-r--r--src/js/store/modules/shares.js48
-rw-r--r--src/js/store/modules/subscription.js12
-rw-r--r--src/js/store/modules/votes.js44
-rw-r--r--src/js/views/PollList.vue33
-rw-r--r--src/js/views/PublicVote.vue5
-rw-r--r--src/js/views/Vote.vue18
34 files changed, 428 insertions, 480 deletions
diff --git a/.stylelintrc.js b/.stylelintrc.js
new file mode 100644
index 00000000..b9937526
--- /dev/null
+++ b/.stylelintrc.js
@@ -0,0 +1,26 @@
+module.exports = {
+ extends: 'stylelint-config-recommended-scss',
+ rules: {
+ indentation: 'tab',
+ 'selector-type-no-unknown': null,
+ 'number-leading-zero': null,
+ 'rule-empty-line-before': [
+ 'always',
+ {
+ ignore: ['after-comment', 'inside-block']
+ }
+ ],
+ 'declaration-empty-line-before': [
+ 'never',
+ {
+ ignore: ['after-declaration']
+ }
+ ],
+ 'comment-empty-line-before': null,
+ 'selector-type-case': null,
+ 'selector-list-comma-newline-after': null,
+ 'no-descending-specificity': null,
+ 'string-quotes': 'single'
+ },
+ plugins: ['stylelint-scss']
+}
diff --git a/.travis.yml b/.travis.yml
index 702d1e5c..7b9a423a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,7 +17,7 @@ addons:
env:
global:
- - CORE_BRANCH=stable14
+ - CORE_BRANCH=stable17
- APP_NAME=polls
matrix:
- DB=mysql
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 4546f507..ae42ca66 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -23,7 +23,7 @@
<screenshot>https://raw.githubusercontent.com/nextcloud/polls/master/screenshots/vote.png</screenshot>
<screenshot>https://raw.githubusercontent.com/nextcloud/polls/master/screenshots/edit-poll.png</screenshot>
<dependencies>
- <nextcloud min-version="14" max-version="18" />
+ <nextcloud min-version="16" max-version="18" />
</dependencies>
<background-jobs>
<job>OCA\Polls\Cron\NotificationCron</job>
diff --git a/lib/Controller/ShareController.php b/lib/Controller/ShareController.php
index d81006d9..821d7423 100644
--- a/lib/Controller/ShareController.php
+++ b/lib/Controller/ShareController.php
@@ -116,9 +116,10 @@ class ShareController extends Controller {
* @return DataResponse
*/
public function getShares($pollId) {
-
+ $this->logger->alert('enter');
if ($this->acl->setPollId($pollId)->getAllowEdit()) {
try {
+ $this->logger->alert('try loading shares');
$shares = $this->mapper->findByPoll($pollId);
return new DataResponse((array) $shares, Http::STATUS_OK);
@@ -127,6 +128,8 @@ class ShareController extends Controller {
}
} else {
+ $this->logger->alert('no access');
+
return new DataResponse(null, Http::STATUS_UNAUTHORIZED);
}
diff --git a/package.json b/package.json
index d8331ee5..97cc70f3 100644
--- a/package.json
+++ b/package.json
@@ -26,13 +26,13 @@
"private": true,
"main": "src/js/main.js",
"scripts": {
- "dev": "webpack --config webpack.dev.js",
- "watch": "webpack --progress --watch --config webpack.dev.js",
- "build": "webpack --progress --env.production --hide-modules --config webpack.prod.js",
+ "dev": "cross-env NODE_ENV=development webpack --config webpack.dev.js",
+ "watch": "cross-env NODE_ENV=development webpack --progress --watch --config webpack.dev.js",
+ "build": "cross-env NODE_ENV=production webpack --progress --hide-modules --config webpack.prod.js",
"lint": "eslint --ext .js,.vue src",
"lint:fix": "eslint --ext .js,.vue src --fix",
- "test": "jest",
- "test:coverage": "jest --coverage"
+ "stylelint": "stylelint src",
+ "stylelint:fix": "stylelint src --fix"
},
"dependencies": {
"@babel/runtime": "^7.7.7",
@@ -47,8 +47,6 @@
"fibers": "^4.0.2",
"lodash": "^4.17.15",
"moment": "^2.23.0",
- "sass": "^1.23.7",
- "stylelint-scss": "^3.13.0",
"v-click-outside": "^3.0.0",
"v-tooltip": "^3.0.0-alpha.11",
"vue": "^2.6.10",
@@ -72,28 +70,28 @@
"babel-eslint": "^10.0.2",
"babel-loader": "^8.0.6",
"babel-preset-env": "^1.7.0",
+ "cross-env": "^6.0.3",
"css-loader": "^3.4.0",
- "eslint": "^6.7.2",
+ "eslint": "^6.8.0",
"eslint-config-standard": "^14.1.0",
- "eslint-friendly-formatter": "^4.0.1",
"eslint-loader": "^3.0.3",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-node": "^11.0.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
- "eslint-plugin-vue": "^6.0.1",
+ "eslint-plugin-vue": "^6.1.2",
"file-loader": "^5.0.2",
- "mini-css-extract-plugin": "^0.9.0",
"node-sass": "^4.13.0",
"prettier-eslint": "^9.0.1",
"raw-loader": "^4.0.0",
"sass-loader": "^8.0.0",
- "stylelint": "^12.0.0",
+ "stylelint": "^12.0.1",
"stylelint-config-recommended-scss": "^4.0.0",
+ "stylelint-scss": "^3.13.0",
"vue-loader": "^15.7.2",
"vue-style-loader": "^4.1.1",
"vue-template-compiler": "^2.6.10",
- "webpack": "^4.41.4",
+ "webpack": "^4.41.5",
"webpack-cli": "^3.3.10",
"webpack-merge": "^4.1.5"
}
diff --git a/src/js/App.vue b/src/js/App.vue
index 59c8611a..ec588070 100644
--- a/src/js/App.vue
+++ b/src/js/App.vue
@@ -49,7 +49,7 @@ export default {
},
watch: {
- '$route'(to, from) {
+ $route() {
this.loadNavigation = (this.$route.name !== 'publicVote')
}
}
@@ -61,23 +61,24 @@ export default {
.list-enter-active,
.list-leave-active {
- transition: all 0.5s ease;
+ transition: all 0.5s ease;
}
.list-enter,
.list-leave-to {
- opacity: 0;
+ opacity: 0;
}
.list-move {
- transition: transform 0.5s;
+ transition: transform 0.5s;
}
.fade-leave-active {
- transition: opacity 2.5s;
+ transition: opacity 2.5s;
}
+
.fade-enter, .fade-leave-to {
- opacity: 0;
+ opacity: 0;
}
#app-polls {
@@ -86,7 +87,7 @@ export default {
}
#app-content {
- display: flex;
+ display: flex;
width: auto;
input {
diff --git a/src/js/assets/app.png b/src/js/assets/app.png
deleted file mode 100644
index 84a879bb..00000000
--- a/src/js/assets/app.png
+++ /dev/null
Binary files differ
diff --git a/src/js/components/Base/LoadingOverlay.vue b/src/js/components/Base/LoadingOverlay.vue
index c8148854..48fab117 100644
--- a/src/js/components/Base/LoadingOverlay.vue
+++ b/src/js/components/Base/LoadingOverlay.vue
@@ -34,26 +34,26 @@ export default {
<style lang="scss">
.loading-overlay {
- position: absolute;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
- background: #fff;
- opacity: 0.9;
- z-index: 1001;
- .icon-loading {
- position: fixed;
- left: 50%;
- top: 50%;
- margin-left: -35px;
- margin-top: -10px;
- &::after {
- border: 10px solid var(--color-loading-light);
- border-top-color: var(--color-primary-element);
- height: 70px;
- width: 70px;
- }
- }
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ opacity: 0.9;
+ z-index: 1001;
+ .icon-loading {
+ position: fixed;
+ left: 50%;
+ top: 50%;
+ margin-left: -35px;
+ margin-top: -10px;
+ &::after {
+ border: 10px solid var(--color-loading-light);
+ border-top-color: var(--color-primary-element);
+ height: 70px;
+ width: 70px;
+ }
+ }
}
</style>
diff --git a/src/js/components/Base/UserDiv.vue b/src/js/components/Base/UserDiv.vue
index a4f8625e..af1ca5eb 100644
--- a/src/js/components/Base/UserDiv.vue
+++ b/src/js/components/Base/UserDiv.vue
@@ -125,30 +125,30 @@ export default {
<style lang="scss">
.user-row {
- display: flex;
- flex: 1;
- align-items: center;
- margin-left: 0;
- margin-top: 0;
-
- > div {
- margin: 2px 4px;
- }
-
- .description {
- opacity: 0.7;
- flex: 0;
- }
-
- .avatar {
- height: 32px;
- width: 32px;
- flex: 0;
- }
-
- .user-name {
- opacity: 0.5;
- flex: 1;
- }
+ display: flex;
+ flex: 1;
+ align-items: center;
+ margin-left: 0;
+ margin-top: 0;
+
+ > div {
+ margin: 2px 4px;
+ }
+
+ .description {
+ opacity: 0.7;
+ flex: 0;
+ }
+
+ .avatar {
+ height: 32px;
+ width: 32px;
+ flex: 0;
+ }
+
+ .user-name {
+ opacity: 0.5;
+ flex: 1;
+ }
}
</style>
diff --git a/src/js/components/Create/CreateDlg.vue b/src/js/components/Create/CreateDlg.vue
index 16888af4..3f95febe 100644
--- a/src/js/components/Create/CreateDlg.vue
+++ b/src/js/components/Create/CreateDlg.vue
@@ -31,12 +31,12 @@
{{ t('polls', 'Poll type') }}
</label>
<input id="datePoll" v-model="type" value="datePoll"
- :disabled="protect" type="radio" class="radio">
+ type="radio" class="radio">
<label for="datePoll">
{{ t('polls', 'Poll schedule') }}
</label>
<input id="textPoll" v-model="type" value="textPoll"
- :disabled="protect" type="radio" class="radio">
+ type="radio" class="radio">
<label for="textPoll">
{{ t('polls', 'Text based') }}
</label>
@@ -77,7 +77,7 @@ export default {
},
methods: {
- ...mapMutations([ 'setPollProperty', 'resetPoll', 'reset' ]),
+ ...mapMutations(['setPollProperty', 'resetPoll', 'reset']),
cancel() {
this.title = ''
@@ -88,11 +88,11 @@ export default {
confirm() {
this.resetPoll()
this.reset()
- this.setPollProperty({ 'id': 0 })
- this.setPollProperty({ 'title': this.title })
- this.setPollProperty({ 'type': this.type })
+ this.setPollProperty({ id: 0 })
+ this.setPollProperty({ title: this.title })
+ this.setPollProperty({ type: this.type })
this.$store.dispatch('writePollPromise')
- .then((response) => {
+ .then(() => {
this.cancel()
OC.Notification.showTemporary(t('polls', 'Poll "%n" added', 1, this.poll.title), { type: 'success' })
this.$router.push({ name: 'vote', params: { id: this.poll.id } })
diff --git a/src/js/components/Navigation/Navigation.vue b/src/js/components/Navigation/Navigation.vue
index 85e3dc88..71dcd386 100644
--- a/src/js/components/Navigation/Navigation.vue
+++ b/src/js/components/Navigation/Navigation.vue
@@ -144,7 +144,7 @@ export default {
this.loading = true
this.$store
.dispatch('loadPolls')
- .then(response => {
+ .then(() => {
this.loading = false
})
.catch(error => {
@@ -182,7 +182,7 @@ export default {
this.loading = true
this.$store
.dispatch('loadPolls')
- .then(response => {
+ .then(() => {
this.loading = false
})
.catch(error => {
diff --git a/src/js/components/PollList/PollListItem.vue b/src/js/components/PollList/PollListItem.vue
index 9b3d014e..b144b37c 100644
--- a/src/js/components/PollList/PollListItem.vue
+++ b/src/js/components/PollList/PollListItem.vue
@@ -49,8 +49,6 @@
{{ pollType }}
</div>
- <!-- <div v-if="votedBycurrentUser" class="symbol icon-voted" /> -->
-
<router-link :to="{name: 'vote', params: {id: poll.id}}" class="title">
<div class="name">
{{ poll.title }}
@@ -60,10 +58,6 @@
</div>
</router-link>
- <!-- <div v-if="countComments" v-tooltip.auto="countCommentsHint" class="app-navigation-entry-utils-counter highlighted">
- <span>{{ countComments }}</span>
- </div> -->
-
<div class="actions">
<div class="toggleUserActions">
<div v-click-outside="hideMenu" class="icon-more" @click="toggleMenu" />
@@ -146,7 +140,7 @@ export default {
},
menuItems() {
- let items = [
+ const items = [
{
key: 'clonePoll',
icon: 'icon-confirm',
@@ -215,10 +209,6 @@ export default {
}
}
-.thumbnail {
- flex: 0 0 auto;
-}
-
.icon-more {
right: 14px;
opacity: 0.3;
@@ -245,15 +235,8 @@ export default {
}
}
-.thumbnail.access, .owner {
- flex: 0 0 auto;
-}
-
-.thumbnail.access {
- width: 75px;
-}
-
.owner {
+ flex: 0 0 auto;
width: 130px;
overflow: hidden;
white-space: nowrap;
@@ -280,122 +263,64 @@ export default {
}
}
- .thumbnail {
- width: 44px;
- height: 44px;
- padding-right: 4px;
- font-size: 0;
- background-color: var(--color-text-light);
- &.datePoll {
- mask-image: var(--icon-calendar-000) no-repeat 50% 50%;
- -webkit-mask: var(--icon-calendar-000) no-repeat 50% 50%;
- mask-size: 16px;
- }
- &.textPoll {
- mask-image: var(--icon-organization-000) no-repeat 50% 50%;
- -webkit-mask: var(--icon-organization-000) no-repeat 50% 50%;
- mask-size: 16px;
- }
- &.expired {
- background-color: var(--color-background-darker);
- }
- &.access {
- display: inherit;
- &.hidden {
- mask-image: var(--icon-password-000) no-repeat 50% 50%;
- -webkit-mask: var(--icon-password-000) no-repeat 50% 50%;
- mask-size: 16px;
- }
- &.public {
- mask-image: var(--icon-link-000) no-repeat 50% 50%;
- -webkit-mask: var(--icon-link-000) no-repeat 50% 50%;
- mask-size: 16px;
- }
- &.select {
- mask-image: var(--icon-share-000) no-repeat 50% 50%;
- -webkit-mask: var(--icon-share-000) no-repeat 50% 50%;
- mask-size: 16px;
- }
- &.registered {
- mask-image: var(--icon-group-000) no-repeat 50% 50%;
- -webkit-mask: var(--icon-group-000) no-repeat 50% 50%;
- mask-size: 16px;
- }
- }
+.thumbnail {
+ flex: 0 0 auto;
+ width: 44px;
+ height: 44px;
+ padding-right: 4px;
+ font-size: 0;
+ background-color: var(--color-text-light);
+ &.datePoll {
+ mask-image: var(--icon-calendar-000) no-repeat 50% 50%;
+ -webkit-mask: var(--icon-calendar-000) no-repeat 50% 50%;
+ mask-size: 16px;
}
-
- .icon-voted {
- background-image: var(--icon-checkmark-fff);
+ &.textPoll {
+ mask-image: var(--icon-organization-000) no-repeat 50% 50%;
+ -webkit-mask: var(--icon-organization-000) no-repeat 50% 50%;
+ mask-size: 16px;
}
-
- .comment-badge {
- position: absolute;
- top: 0;
- width: 26px;
- line-height: 26px;
- text-align: center;
- font-size: 0.7rem;
- color: white;
- background-image: var(--icon-comment-49bc49);
- background-repeat: no-repeat;
- background-size: 26px;
- z-index: 1;
+ &.expired {
+ background-color: var(--color-background-darker);
}
-
- .app-navigation-entry-utils-counter {
- padding-right: 0 !important;
- overflow: hidden;
- text-align: right;
- font-size: 9pt;
- line-height: 44px;
- padding: 0 12px;
- // min-width: 25px;
- &.highlighted {
- padding: 0;
- text-align: center;
- span {
- padding: 2px 5px;
- border-radius: 10px;
- background-color: var(--color-primary);
- color: var(--color-primary-text);
- }
+ &.access {
+ display: inherit;
+ &.hidden {
+ mask-image: var(--icon-password-000) no-repeat 50% 50%;
+ -webkit-mask: var(--icon-password-000) no-repeat 50% 50%;
+ mask-size: 16px;
+ }
+ &.public {
+ mask-image: var(--icon-link-000) no-repeat 50% 50%;
+ -webkit-mask: var(--icon-link-000) no-repeat 50% 50%;
+ mask-size: 16px;
}
}
+}
- .symbol.icon-voted {
- position: absolute;
- left: 11px;
- top: 16px;
- background-size: 0;
- min-width: 8px;
- min-height: 8px;
- background-color: var(--color-success);
- border-radius: 50%;
- }
-
- @media all and (max-width: (740px)) {
- .dates {
- flex-direction: column;
- }
+@media all and (max-width: (740px)) {
+ .dates {
+ flex-direction: column;
}
+}
- @media all and (max-width: (620px)) {
- .owner {
- display: none;
- }
+@media all and (max-width: (620px)) {
+ .owner {
+ display: none;
}
+}
- @media all and (max-width: (490px)) {
- .dates {
- display: none;
- }
+@media all and (max-width: (490px)) {
+ .dates {
+ display: none;
}
+}
- @media all and (max-width: (380px)) {
- .thumbnail.access, .access {
- width: 140px;
- display: none;
- }
+@media all and (max-width: (380px)) {
+ .thumbnail.access, .access {
+ width: 140px;
+ display: none;
}
+}
</style>
diff --git a/src/js/components/SideBar/CommentAdd.vue b/src/js/components/SideBar/CommentAdd.vue
index 02e2285a..db058158 100644
--- a/src/js/components/SideBar/CommentAdd.vue
+++ b/src/js/components/SideBar/CommentAdd.vue
@@ -34,7 +34,7 @@
<script>
export default {
- name: 'AddComment',
+ name: 'CommentAdd',
data() {
return {
comment: ''
@@ -50,7 +50,7 @@ export default {
methods: {
writeComment() {
this.$store.dispatch('setCommentAsync', { message: this.comment })
- .then(response => {
+ .then(() => {
OC.Notification.showTemporary(t('polls', 'Your comment was added'), { type: 'success' })
})
.catch(error => {
@@ -81,6 +81,7 @@ export default {
color: grey;
}
}
+
.submitComment {
align-self: last baseline;
width: 30px;
diff --git a/src/js/components/SideBar/SideBarTabConfiguration.vue b/src/js/components/SideBar/SideBarTabConfiguration.vue
index 69781ce2..13ba6f84 100644
--- a/src/js/components/SideBar/SideBarTabConfiguration.vue
+++ b/src/js/components/SideBar/SideBarTabConfiguration.vue
@@ -84,7 +84,7 @@ import debounce from 'lodash/debounce'
import { mapState, mapMutations, mapActions } from 'vuex'
export default {
- name: 'SideBarTab',
+ name: 'SideBarTabConfiguration',
data() {
return {
@@ -107,7 +107,7 @@ export default {
return this.poll.description
},
set(value) {
- this.writeValueDebounced({ 'description': value })
+ this.writeValueDebounced({ description: value })
}
},
@@ -116,7 +116,7 @@ export default {
return this.poll.title
},
set(value) {
- this.writeValueDebounced({ 'title': value })
+ this.writeValueDebounced({ title: value })
}
},
@@ -125,7 +125,7 @@ export default {
return this.poll.access
},
set(value) {
- this.writeValue({ 'access': value })
+ this.writeValue({ access: value })
}
},
@@ -135,7 +135,7 @@ export default {
},
set(value) {
- this.writeValue({ 'expire': moment(value).unix() })
+ this.writeValue({ expire: moment(value).unix() })
}
},
@@ -145,9 +145,9 @@ export default {
},
set(value) {
if (value) {
- this.writeValue({ 'expire': moment().unix() })
+ this.writeValue({ expire: moment().unix() })
} else {
- this.writeValue({ 'expire': 0 })
+ this.writeValue({ expire: 0 })
}
}
@@ -158,7 +158,7 @@ export default {
return (this.poll.Fullanonymous > 0)
},
set(value) {
- this.writeValue({ 'fullAnonymous': value })
+ this.writeValue({ fullAnonymous: value })
}
},
@@ -167,7 +167,7 @@ export default {
return (this.poll.anonymous > 0)
},
set(value) {
- this.writeValue({ 'anonymous': value })
+ this.writeValue({ anonymous: value })
}
},
@@ -176,9 +176,9 @@ export default {
return this.poll.allowMaybe
},
set(value) {
- this.writeValue({ 'allowMaybe': value })
+ this.writeValue({ allowMaybe: value })
if (value) {
- this.writeValue({ 'options': ['yes', 'no', 'maybe'] })
+ this.writeValue({ options: ['yes', 'no', 'maybe'] })
}
}
},
@@ -237,8 +237,8 @@ export default {
},
methods: {
- ...mapMutations([ 'setPollProperty' ]),
- ...mapActions([ 'writePollPromise' ]),
+ ...mapMutations(['setPollProperty']),
+ ...mapActions(['writePollPromise']),
writeValueDebounced: debounce(function(e) {
this.writeValue(e)
@@ -252,9 +252,9 @@ export default {
switchDeleted() {
if (this.poll.deleted) {
- this.writeValue({ 'deleted': 0 })
+ this.writeValue({ deleted: 0 })
} else {
- this.writeValue({ 'deleted': moment.utc().unix() })
+ this.writeValue({ deleted: moment.utc().unix() })
}
},
diff --git a/src/js/components/SideBar/SideBarTabDateOptions.vue b/src/js/components/SideBar/SideBarTabDateOptions.vue
index 63c4b79c..1595adc8 100644
--- a/src/js/components/SideBar/SideBarTabDateOptions.vue
+++ b/src/js/components/SideBar/SideBarTabDateOptions.vue
@@ -91,7 +91,7 @@ export default {
options: state => state.options
}),
- ...mapGetters([ 'sortedOptions' ]),
+ ...mapGetters(['sortedOptions']),
optionDatePicker() {
return {
@@ -131,9 +131,9 @@ export default {
},
shiftDates(payload) {
- let store = this.$store
+ const store = this.$store
this.options.list.forEach(function(existingOption) {
- let option = Object.assign({}, existingOption)
+ const option = Object.assign({}, existingOption)
option.pollOptionText = moment(option.pollOptionText).add(payload.step, payload.unit).format('YYYY-MM-DD HH:mm:ss')
option.timestamp = moment.utc(option.pollOptionText).unix()
store.dispatch('updateOptionAsync', { option: option })
diff --git a/src/js/components/SideBar/SideBarTabShare.vue b/src/js/components/SideBar/SideBarTabShare.vue
index e9f65bec..52847c9a 100644
--- a/src/js/components/SideBar/SideBarTabShare.vue
+++ b/src/js/components/SideBar/SideBarTabShare.vue
@@ -67,7 +67,7 @@
<div class="user-row user">
<div class="avatar icon-public" />
<div class="user-name">
- {{ t('polls', 'Share Link') }}
+ {{ t('polls', 'Public link (' + share.token + ')') }}
</div>
</div>
<div class="options">
@@ -134,10 +134,10 @@ export default {
copyLink(payload) {
this.$copyText(window.location.origin + payload.url).then(
- function(e) {
+ function() {
OC.Notification.showTemporary(t('polls', 'Link copied to clipboard'), { type: 'success' })
},
- function(e) {
+ function() {
OC.Notification.showTemporary(t('polls', 'Error while copying link to clipboard'), { type: 'error' })
}
)
@@ -184,12 +184,12 @@ export default {
addShare(payload) {
this.$store.dispatch('writeSharePromise', {
- 'share': {
- 'type': payload.type,
- 'userId': payload.user,
- 'pollId': '0',
- 'userEmail': payload.emailAddress,
- 'token': ''
+ share: {
+ type: payload.type,
+ userId: payload.user,
+ pollId: '0',
+ userEmail: payload.emailAddress,
+ token: ''
}
})
// .then(response => {
diff --git a/src/js/components/SideBar/SideBarTabTextOptions.vue b/src/js/components/SideBar/SideBarTabTextOptions.vue
index ce141432..60b96551 100644
--- a/src/js/components/SideBar/SideBarTabTextOptions.vue
+++ b/src/js/components/SideBar/SideBarTabTextOptions.vue
@@ -87,78 +87,78 @@ export default {
<style lang="scss">
.configBox {
- display: flex;
- flex-direction: column;
- padding: 8px;
- & > * {
- padding-left: 21px;
- }
-
- & > input {
- margin-left: 24px;
- width: auto;
-
- }
-
- & > textarea {
- margin-left: 24px;
- width: auto;
- padding: 7px 6px;
- }
-
- & > .title {
- display: flex;
- background-position: 0 2px;
- padding-left: 24px;
- opacity: 0.7;
- font-weight: bold;
- margin-bottom: 4px;
- & > span {
- padding-left: 4px;
- }
- }
-
- &.poll-table > li {
- border-bottom-color: rgb(72, 72, 72);
- margin-left: 18px;
- }
+ display: flex;
+ flex-direction: column;
+ padding: 8px;
+ & > * {
+ padding-left: 21px;
+ }
+
+ & > input {
+ margin-left: 24px;
+ width: auto;
+
+ }
+
+ & > textarea {
+ margin-left: 24px;
+ width: auto;
+ padding: 7px 6px;
+ }
+
+ & > .title {
+ display: flex;
+ background-position: 0 2px;
+ padding-left: 24px;
+ opacity: 0.7;
+ font-weight: bold;
+ margin-bottom: 4px;
+ & > span {
+ padding-left: 4px;
+ }
+ }
+
+ &.poll-table > li {
+ border-bottom-color: rgb(72, 72, 72);
+ margin-left: 18px;
+ }
}
.poll-table {
- > li {
- display: flex;
- align-items: center;
- padding-left: 8px;
- padding-right: 8px;
- line-height: 2em;
- min-height: 4em;
- border-bottom: 1px solid var(--color-border);
- overflow: hidden;
- white-space: nowrap;
-
- &:active,
- &:hover {
- transition: var(--background-dark) 0.3s ease;
- background-color: var(--color-background-dark); //$hover-color;
- }
-
- > div {
- display: flex;
- flex: 1;
- font-size: 1.2em;
- opacity: 0.7;
- white-space: normal;
- padding-right: 4px;
- &.avatar {
- flex: 0;
- }
- }
-
- > div:nth-last-child(1) {
- justify-content: center;
- flex: 0 0;
- }
- }
+ > li {
+ display: flex;
+ align-items: center;
+ padding-left: 8px;
+ padding-right: 8px;
+ line-height: 2em;
+ min-height: 4em;
+ border-bottom: 1px solid var(--color-border);
+ overflow: hidden;
+ white-space: nowrap;
+
+ &:active,
+ &:hover {
+ transition: var(--background-dark) 0.3s ease;
+ background-color: var(--color-background-dark); //$hover-color;
+ }
+
+ > div {
+ display: flex;
+ flex: 1;
+ font-size: 1.2em;
+ opacity: 0.7;
+ white-space: normal;
+ padding-right: 4px;
+ &.avatar {
+ flex: 0;
+ }
+ }
+
+ > div:nth-last-child(1) {
+ justify-content: center;
+ flex: 0 0;
+ }
+ }
}
</style>
diff --git a/src/js/components/VoteTable/VoteHeaderPublic.vue b/src/js/components/VoteTable/VoteHeaderPublic.vue
index fe6f1989..b4e23261 100644
--- a/src/js/components/VoteTable/VoteHeaderPublic.vue
+++ b/src/js/components/VoteTable/VoteHeaderPublic.vue
@@ -105,10 +105,10 @@ export default {
methods: {
copyLink(payload) {
this.$copyText(window.location.origin + payload.url).then(
- function(e) {
+ function() {
OC.Notification.showTemporary(t('polls', 'Link copied to clipboard'), { type: 'success' })
},
- function(e) {
+ function() {
OC.Notification.showTemporary(t('polls', 'Error while copying link to clipboard'), { type: 'error' })
}
)
@@ -118,7 +118,7 @@ export default {
if (this.userName.length > 2) {
this.checkingUserName = true
return axios.post(OC.generateUrl('apps/polls/check/username'), { pollId: this.poll.id, userName: this.userName, token: this.$route.params.token })
- .then((response) => {
+ .then(() => {
this.checkingUserName = false
this.isValidName = true
this.invalidUserNameMessage = 'User name is OK.'
@@ -144,7 +144,7 @@ export default {
.then((response) => {
this.token = response.token
this.redirecting = true
- this.$router.replace({ name: 'publicVote', params: { 'token': response.token } })
+ this.$router.replace({ name: 'publicVote', params: { token: response.token } })
})
.catch(() => {
OC.Notification.showTemporary(t('polls', 'Error saving user name', 1, this.poll.title), { type: 'error' })
@@ -178,7 +178,6 @@ export default {
& > label {
margin-right: 12px;
}
-
margin: 0 12px 12px 24px;
border:2px solid var(--color-border-dark);
font-size: 1.2em;
@@ -204,7 +203,7 @@ export default {
top: 0px;
}
- input[type="text"] + .icon-confirm, input[type="text"] + .icon-loading-small {
+ input[type='text'] + .icon-confirm, input[type='text'] + .icon-loading-small {
flex: 0;
margin-left: -8px !important;
border-left-color: transparent !important;
diff --git a/src/js/components/VoteTable/VoteTable.vue b/src/js/components/VoteTable/VoteTable.vue
index a2dba197..010c5ec2 100644
--- a/src/js/components/VoteTable/VoteTable.vue
+++ b/src/js/components/VoteTable/VoteTable.vue
@@ -109,13 +109,16 @@ export default {
width: 170px;
flex: 0 0 auto;
}
+
.header {
height: 150px;
}
+
.user {
height: 44px;
padding: 0 17px;
}
+
.vote-table {
display: flex;
flex: 0;
diff --git a/src/js/components/VoteTable/VoteTableHeader.vue b/src/js/components/VoteTable/VoteTableHeader.vue
index 4a1b9957..45f181bb 100644
--- a/src/js/components/VoteTable/VoteTableHeader.vue
+++ b/src/js/components/VoteTable/VoteTableHeader.vue
@@ -88,21 +88,21 @@ export default {
]),
yesVotes() {
- let pollOptionText = this.option.pollOptionText
+ const pollOptionText = this.option.pollOptionText
return this.votesRank.find(rank => {
return rank.pollOptionText === pollOptionText
}).yes
},
maybeVotes() {
- let pollOptionText = this.option.pollOptionText
+ const pollOptionText = this.option.pollOptionText
return this.votesRank.find(rank => {
return rank.pollOptionText === pollOptionText
}).maybe
},
isWinner() {
- let pollOptionText = this.option.pollOptionText
+ const pollOptionText = this.option.pollOptionText
return (
this.votesRank.find(rank => {
return rank.pollOptionText === pollOptionText
diff --git a/src/js/components/VoteTable/VoteTableItem.vue b/src/js/components/VoteTable/VoteTableItem.vue
index c90b5f18..e1647fdd 100644
--- a/src/js/components/VoteTable/VoteTableItem.vue
+++ b/src/js/components/VoteTable/VoteTableItem.vue
@@ -105,7 +105,6 @@ export default {
margin: auto;
background-position: center;
background-repeat: no-repeat;
- background-size: 32px;
background-image: var(--icon-close-000);
min-width: 40px;
min-height: 40px;
@@ -138,7 +137,7 @@ export default {
color: $fg-maybe;
// background-image: var(--icon-polls-maybe-vote-variant-f0db98);
> .icon {
- background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgaWQ9InN2ZzQiCiAgIHZlcnNpb249IjEuMSIKICAgd2lkdGg9IjE2IgogICBoZWlnaHQ9IjE2IgogICBzb2RpcG9kaTpkb2NuYW1lPSJtYXliZS12b3RlLXZhcmlhbnQuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjIgKDVjM2U4MGQsIDIwMTctMDgtMDYpIj4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAxNyIKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6em9vbT0iMTQuNzUiCiAgICAgaW5rc2NhcGU6Y3g9IjgiCiAgICAgaW5rc2NhcGU6Y3k9IjE0Ljg2NTIwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNCI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ4MzYiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4IiAvPgogIDx0ZXh0CiAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToxNS4wMDY0OTA3MXB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmMxMDc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDIzMTY5NzYiCiAgICAgeD0iLTAuODAzNjg5NDgiCiAgICAgeT0iMTIuNTU5MzEyIgogICAgIGlkPSJ0ZXh0ODE4IgogICAgIHRyYW5zZm9ybT0ic2NhbGUoMS4wOTAxOSwwLjkxNzI3MTMpIj48dHNwYW4KICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICBpZD0idHNwYW44MTYiCiAgICAgICB4PSItMC44MDM2ODk0OCIKICAgICAgIHk9IjEyLjU1OTMxMiIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MTQuNjY2NjY2OThweDtmaWxsOiNmZmMxMDc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjEuMDIzMTY5NzYiPig8L3RzcGFuPjwvdGV4dD4KICA8dGV4dAogICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXNpemU6NDAuOTI3MTQzMXB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmMxMDc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDIzMTc4NDYiCiAgICAgeD0iOS45NjMwNDQyIgogICAgIHk9IjEyLjQ3ODk0NSIKICAgICBpZD0idGV4dDgyOCIKICAgICB0cmFuc2Zvcm09InNjYWxlKDEuMDkwMTk5MywwLjkxNzI2MzQ4KSI+PHRzcGFuCiAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgaWQ9InRzcGFuODI2IgogICAgICAgeD0iOS45NjMwNDQyIgogICAgICAgeT0iMTIuNDc4OTQ1IgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZToxNC42NjY2NjY5OHB4O2ZpbGw6I2ZmYzEwNztmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4wMjMxNzg0NiI+KTwvdHNwYW4+PC90ZXh0PgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBkPSJtIDExLjkyNCw0LjA2NTk5OTIgLTQuOTMyMDAwMSw0Ljk3IC0yLjgyOCwtMi44MyBMIDIuNzUsNy42MTc5OTkyIDYuOTkxOTk5OSwxMS44NjEgMTMuMzU3LDUuNDk1OTk5MiBsIC0xLjQzMywtMS40MzIgeiIKICAgICBpZD0icGF0aDgxNiIKICAgICBzdHlsZT0iZmlsbDojZmZjMTA3O2ZpbGwtb3BhY2l0eToxIiAvPgo8L3N2Zz4K);
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgaWQ9InN2ZzQiCiAgIHZlcnNpb249IjEuMSIKICAgd2lkdGg9IjE2IgogICBoZWlnaHQ9IjE2IgogICBzb2RpcG9kaTpkb2NuYW1lPSJtYXliZS12b3RlLXZhcmlhbnQuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjIgKDVjM2U4MGQsIDIwMTctMDgtMDYpIj4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAxNyIKICAgICBpZD0ibmFtZWR2aWV3NiIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6em9vbT0iMTQuNzUiCiAgICAgaW5rc2NhcGU6Y3g9IjgiCiAgICAgaW5rc2NhcGU6Y3k9IjE0Ljg2NTIwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNCI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ4MzYiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4IiAvPgogIDx0ZXh0CiAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToxNS4wMDY0OTA3MXB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmMxMDc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDIzMTY5NzYiCiAgICAgeD0iLTAuODAzNjg5NDgiCiAgICAgeT0iMTIuNTU5MzEyIgogICAgIGlkPSJ0ZXh0ODE4IgogICAgIHRyYW5zZm9ybT0ic2NhbGUoMS4wOTAxOSwwLjkxNzI3MTMpIj48dHNwYW4KICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICBpZD0idHNwYW44MTYiCiAgICAgICB4PSItMC44MDM2ODk0OCIKICAgICAgIHk9IjEyLjU1OTMxMiIKICAgICAgIHN0eWxlPSJmb250LXNpemU6MTQuNjY2NjY2OThweDtmaWxsOiNmZmMxMDc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjEuMDIzMTY5NzYiPig8L3RzcGFuPjwvdGV4dD4KICA8dGV4dAogICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXNpemU6NDAuOTI3MTQzMXB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZmMxMDc7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjEuMDIzMTc4NDYiCiAgICAgeD0iOS45NjMwNDQyIgogICAgIHk9IjEyLjQ3ODk0NSIKICAgICBpZD0idGV4dDgyOCIKICAgICB0cmFuc2Zvcm09InNjYWxlKDEuMDkwMTk5MywwLjkxNzI2MzQ4KSI+PHRzcGFuCiAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgaWQ9InRzcGFuODI2IgogICAgICAgeD0iOS45NjMwNDQyIgogICAgICAgeT0iMTIuNDc4OTQ1IgogICAgICAgc3R5bGU9ImZvbnQtc2l6ZToxNC42NjY2NjY5OHB4O2ZpbGw6I2ZmYzEwNztmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4wMjMxNzg0NiI+KTwvdHNwYW4+PC90ZXh0PgogIDxwYXRoCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBkPSJtIDExLjkyNCw0LjA2NTk5OTIgLTQuOTMyMDAwMSw0Ljk3IC0yLjgyOCwtMi44MyBMIDIuNzUsNy42MTc5OTkyIDYuOTkxOTk5OSwxMS44NjEgMTMuMzU3LDUuNDk1OTk5MiBsIC0xLjQzMywtMS40MzIgeiIKICAgICBpZD0icGF0aDgxNiIKICAgICBzdHlsZT0iZmlsbDojZmZjMTA3O2ZpbGwtb3BhY2l0eToxIiAvPgo8L3N2Zz4K);
}
}
diff --git a/src/js/store/index.js b/src/js/store/index.js
index 471b3127..f83cfe14 100644
--- a/src/js/store/index.js
+++ b/src/js/store/index.js
@@ -24,14 +24,7 @@
import Vue from 'vue'
import Vuex from 'vuex'
-import acl from './modules/acl'
-import comments from './modules/comments'
-import poll from './modules/poll'
-import polls from './modules/polls'
-import subscription from './modules/subscription'
-import votes from './modules/votes'
-import options from './modules/options'
-import shares from './modules/shares'
+import modules from './modules'
Vue.use(Vuex)
@@ -39,17 +32,6 @@ Vue.use(Vuex)
const debug = process.env.NODE_ENV !== 'production'
export default new Vuex.Store({
-
- modules: {
- acl,
- comments,
- poll,
- polls,
- subscription,
- votes,
- options,
- shares
- },
-
+ modules,
strict: process.env.NODE_ENV !== 'production'
})
diff --git a/src/js/store/modules/acl.js b/src/js/store/modules/acl.js
index 173dc90e..928943f9 100644
--- a/src/js/store/modules/acl.js
+++ b/src/js/store/modules/acl.js
@@ -49,7 +49,7 @@ const mutations = {
Object.assign(state, payload.acl)
},
- reset(state) {
+ resetAcl(state) {
Object.assign(state, defaultAcl())
}
@@ -57,8 +57,7 @@ const mutations = {
const actions = {
- loadPoll({ commit, rootState }, payload) {
- commit('reset')
+ loadAcl(context, payload) {
let endPoint = 'apps/polls/acl/get/'
if (payload.token !== undefined) {
@@ -66,14 +65,15 @@ const actions = {
} else if (payload.pollId !== undefined) {
endPoint = endPoint.concat(payload.pollId)
} else {
+ context.commit('resetAcl')
return
}
return axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('setAcl', { 'acl': response.data })
+ context.commit('setAcl', { acl: response.data })
}, (error) => {
- console.error('Error loading comments', { 'error': error.response }, { 'payload': payload })
+ console.error('Error loading comments', { error: error.response }, { payload: payload })
throw error
})
}
diff --git a/src/js/store/modules/comments.js b/src/js/store/modules/comments.js
index 03b4b2d4..7d76cb5d 100644
--- a/src/js/store/modules/comments.js
+++ b/src/js/store/modules/comments.js
@@ -60,8 +60,7 @@ const getters = {
const actions = {
- loadPoll({ commit, rootState }, payload) {
- commit('reset')
+ loadPoll(context, payload) {
let endPoint = 'apps/polls/comments/get/'
if (payload.token !== undefined) {
@@ -69,36 +68,37 @@ const actions = {
} else if (payload.pollId !== undefined) {
endPoint = endPoint.concat(payload.pollId)
} else {
+ context.commit('reset')
return
}
return axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('setComments', { 'list': response.data })
+ context.commit('setComments', { list: response.data })
}, (error) => {
- console.error('Error loading comments', { 'error': error.response }, { 'payload': payload })
+ console.error('Error loading comments', { error: error.response }, { payload: payload })
throw error
})
},
- setCommentAsync({ commit, rootState }, payload) {
+ setCommentAsync(context, payload) {
let endPoint = 'apps/polls/comment/write/'
- if (rootState.acl.foundByToken) {
+ if (context.rootState.acl.foundByToken) {
endPoint = endPoint.concat('s/')
}
return axios.post(OC.generateUrl(endPoint), {
- pollId: rootState.poll.id,
- token: rootState.acl.token,
+ pollId: context.rootState.poll.id,
+ token: context.rootState.acl.token,
message: payload.message,
- userId: rootState.acl.userId
+ userId: context.rootState.acl.userId
})
.then((response) => {
- commit('addComment', response.data)
+ context.commit('addComment', response.data)
return response.data
}, (error) => {
- console.error('Error writing comment', { 'error': error.response }, { 'payload': payload })
+ console.error('Error writing comment', { error: error.response }, { payload: payload })
throw error
})
}
diff --git a/src/js/store/modules/index.js b/src/js/store/modules/index.js
new file mode 100644
index 00000000..339f6211
--- /dev/null
+++ b/src/js/store/modules/index.js
@@ -0,0 +1,37 @@
+/*
+ * @copyright Copyright (c) 2019 Rene Gieling <github@dartcafe.de>
+ *
+ * @author Rene Gieling <github@dartcafe.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+import camelCase from 'lodash/camelCase'
+const requireModule = require.context('.', false, /\.js$/)
+const modules = {}
+
+requireModule.keys().forEach(fileName => {
+ if (fileName === './index.js') return
+ const moduleName = camelCase(
+ fileName.replace(/(\.\/|\.js)/g, '')
+ )
+ modules[moduleName] = {
+ namespaced: false,
+ ...requireModule(fileName).default
+ }
+})
+export default modules
diff --git a/src/js/store/modules/options.js b/src/js/store/modules/options.js
index e917e137..938c44b0 100644
--- a/src/js/store/modules/options.js
+++ b/src/js/store/modules/options.js
@@ -47,7 +47,7 @@ const mutations = {
},
setOption(state, payload) {
- let index = state.list.findIndex((option) => {
+ const index = state.list.findIndex((option) => {
return option.id === payload.option.id
})
@@ -61,7 +61,9 @@ const mutations = {
const getters = {
lastOptionId: state => {
- return Math.max.apply(Math, state.list.map(function(option) { return option.id }))
+ return Math.max.apply(Math, state.list.map(function(option) {
+ return option.id
+ }))
},
sortedOptions: state => {
@@ -71,8 +73,7 @@ const getters = {
const actions = {
- loadPoll({ commit, rootState }, payload) {
- commit('reset')
+ loadPoll(context, payload) {
let endPoint = 'apps/polls/options/get/'
if (payload.token !== undefined) {
@@ -80,63 +81,65 @@ const actions = {
} else if (payload.pollId !== undefined) {
endPoint = endPoint.concat(payload.pollId)
} else {
+ context.commit('reset')
return
}
return axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('optionsSet', { 'list': response.data })
+ context.commit('optionsSet', { list: response.data })
}, (error) => {
- console.error('Error loading options', { 'error': error.response }, { 'payload': payload })
+ context.commit('reset')
+ console.error('Error loading options', { error: error.response }, { payload: payload })
throw error
})
},
- updateOptionAsync({ commit, getters, dispatch, rootState }, payload) {
- let endPoint = 'apps/polls/option/update'
+ updateOptionAsync(context, payload) {
+ const endPoint = 'apps/polls/option/update'
return axios.post(OC.generateUrl(endPoint), { option: payload.option })
- .then((response) => {
- commit('setOption', { 'option': payload.option })
+ .then(() => {
+ context.commit('setOption', { option: payload.option })
}, (error) => {
- console.error('Error updating option', { 'error': error.response }, { 'payload': payload })
+ console.error('Error updating option', { error: error.response }, { payload: payload })
throw error
})
},
- addOptionAsync({ commit, getters, dispatch, rootState }, payload) {
- let endPoint = 'apps/polls/option/add/'
- let option = {}
+ addOptionAsync(context, payload) {
+ const endPoint = 'apps/polls/option/add/'
+ const option = {}
option.id = 0
- option.pollId = rootState.poll.id
+ option.pollId = context.rootState.poll.id
- if (rootState.poll.type === 'datePoll') {
+ if (context.rootState.poll.type === 'datePoll') {
option.timestamp = moment(payload.pollOptionText).unix()
option.pollOptionText = moment.utc(payload.pollOptionText).format()
- } else if (rootState.poll.type === 'textPoll') {
+ } else if (context.rootState.poll.type === 'textPoll') {
option.timestamp = 0
option.pollOptionText = payload.pollOptionText
}
return axios.post(OC.generateUrl(endPoint), { option: option })
.then((response) => {
- commit('setOption', { 'option': response.data })
+ context.commit('setOption', { option: response.data })
}, (error) => {
- console.error('Error adding option', { 'error': error.response }, { 'payload': payload })
+ console.error('Error adding option', { error: error.response }, { payload: payload })
throw error
})
},
- removeOptionAsync({ commit, getters, dispatch, rootState }, payload) {
- let endPoint = 'apps/polls/option/remove/'
+ removeOptionAsync(context, payload) {
+ const endPoint = 'apps/polls/option/remove/'
return axios.post(OC.generateUrl(endPoint), { option: payload.option })
- .then((response) => {
- commit('optionRemove', { 'option': payload.option })
+ .then(() => {
+ context.commit('optionRemove', { option: payload.option })
}, (error) => {
- console.error('Error removing option', { 'error': error.response }, { 'payload': payload })
+ console.error('Error removing option', { error: error.response }, { payload: payload })
throw error
})
}
diff --git a/src/js/store/modules/poll.js b/src/js/store/modules/poll.js
index b7be1637..5732152c 100644
--- a/src/js/store/modules/poll.js
+++ b/src/js/store/modules/poll.js
@@ -64,7 +64,7 @@ const mutations = {
const getters = {
- expired: (state, getters) => {
+ expired: (state) => {
return (state.expire > 0 && moment.unix(state.expire).diff() < 0)
},
@@ -86,7 +86,7 @@ const getters = {
const actions = {
- loadPollMain({ commit }, payload) {
+ loadPollMain(context, payload) {
let endPoint = 'apps/polls/poll/get/'
if (payload.token !== undefined) {
@@ -94,40 +94,41 @@ const actions = {
} else if (payload.pollId !== undefined) {
endPoint = endPoint.concat(payload.pollId)
} else {
+ context.commit('resetPoll')
return
}
return axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('setPoll', { 'poll': response.data })
+ context.commit('setPoll', { poll: response.data })
}, (error) => {
if (error.response.status !== '404') {
- console.error('Error loading poll', { 'error': error.response }, { 'payload': payload })
+ console.error('Error loading poll', { error: error.response }, { payload: payload })
}
throw error
})
},
- deletePollPromise({ commit }, payload) {
- let endPoint = 'apps/polls/poll/delete/'
+ deletePollPromise(context, payload) {
+ const endPoint = 'apps/polls/poll/delete/'
return axios.post(OC.generateUrl(endPoint), { poll: payload.id })
.then((response) => {
return response
}, (error) => {
- console.error('Error deleting poll', { 'error': error.response }, { 'payload': payload })
+ console.error('Error deleting poll', { error: error.response }, { payload: payload })
throw error
})
},
- writePollPromise({ commit, rootState }) {
- let endPoint = 'apps/polls/poll/write/'
+ writePollPromise(context) {
+ const endPoint = 'apps/polls/poll/write/'
return axios.post(OC.generateUrl(endPoint), { poll: state })
.then((response) => {
- commit('setPoll', { 'poll': response.data })
+ context.commit('setPoll', { poll: response.data })
return response.poll
}, (error) => {
- console.error('Error writing poll:', { 'error': error.response }, { 'state': state })
+ console.error('Error writing poll:', { error: error.response }, { state: state })
throw error
})
diff --git a/src/js/store/modules/polls.js b/src/js/store/modules/polls.js
index 737ba516..dcb1873e 100644
--- a/src/js/store/modules/polls.js
+++ b/src/js/store/modules/polls.js
@@ -55,19 +55,19 @@ const getters = {
}
const actions = {
- loadPolls({ commit }) {
- let endPoint = 'apps/polls/polls/get/'
+ loadPolls(context) {
+ const endPoint = 'apps/polls/polls/get/'
return axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('setPolls', { list: response.data })
+ context.commit('setPolls', { list: response.data })
}, (error) => {
console.error(error.response)
})
},
deletePollPromise(context, payload) {
- let endPoint = 'apps/polls/remove/poll'
+ const endPoint = 'apps/polls/remove/poll'
return axios.post(
OC.generateUrl(endPoint),
diff --git a/src/js/store/modules/shares.js b/src/js/store/modules/shares.js
index 3d265ef9..9aff38a9 100644
--- a/src/js/store/modules/shares.js
+++ b/src/js/store/modules/shares.js
@@ -58,14 +58,14 @@ const getters = {
},
invitationShares: state => {
- let invitationTypes = ['user', 'group', 'mail', 'external', 'contact']
+ const invitationTypes = ['user', 'group', 'mail', 'external', 'contact']
return state.list.filter(function(share) {
return invitationTypes.includes(share.type)
})
},
publicShares: state => {
- let invitationTypes = ['public']
+ const invitationTypes = ['public']
return state.list.filter(function(share) {
return invitationTypes.includes(share.type)
})
@@ -77,75 +77,71 @@ const getters = {
}
const actions = {
- loadPoll({ commit, rootState }, payload) {
- commit('reset')
+ loadPoll(context, payload) {
let endPoint = 'apps/polls/shares/get/'
- if (payload.token !== undefined) {
- return
- } else if (!rootState.acl.allowEdit) {
- return
- } else if (payload.pollId !== undefined) {
+ if (payload.pollId && context.rootState.acl.allowEdit) {
endPoint = endPoint.concat(payload.pollId)
} else {
+ context.commit('reset')
return
}
return axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('setShares', { 'list': response.data })
+ context.commit('setShares', { list: response.data })
}, (error) => {
- console.error('Error loading shares', { 'error': error.response }, { 'payload': payload })
+ console.error('Error loading shares', { error: error.response }, { payload: payload })
throw error
})
},
- getShareAsync({ commit }, payload) {
+ getShareAsync(context, payload) {
- let endPoint = 'apps/polls/share/get/'
+ const endPoint = 'apps/polls/share/get/'
return axios.get(OC.generateUrl(endPoint + payload.token))
.then((response) => {
- return { 'share': response.data }
+ return { share: response.data }
}, (error) => {
- console.error('Error loading share', { 'error': error.response }, { 'payload': payload })
+ console.error('Error loading share', { error: error.response }, { payload: payload })
throw error
})
},
- addShareFromUser({ commit }, payload) {
- let endPoint = 'apps/polls/share/write/s/'
+ addShareFromUser(context, payload) {
+ const endPoint = 'apps/polls/share/write/s/'
return axios.post(OC.generateUrl(endPoint), { token: payload.token, userName: payload.userName })
.then((response) => {
- return { 'token': response.data.token }
+ return { token: response.data.token }
}, (error) => {
- console.error('Error writing share', { 'error': error.response }, { 'payload': payload })
+ console.error('Error writing share', { error: error.response }, { payload: payload })
throw error
})
},
writeSharePromise({ commit, rootState }, payload) {
- let endPoint = 'apps/polls/share/write/'
+ const endPoint = 'apps/polls/share/write/'
payload.share.pollId = rootState.poll.id
return axios.post(OC.generateUrl(endPoint), { pollId: rootState.poll.id, share: payload.share })
.then((response) => {
commit('addShare', response.data)
}, (error) => {
- console.error('Error writing share', { 'error': error.response }, { 'payload': payload })
+ console.error('Error writing share', { error: error.response }, { payload: payload })
throw error
})
},
- removeShareAsync({ commit, getters, dispatch, rootState }, payload) {
- let endPoint = 'apps/polls/share/remove/'
+ removeShareAsync({ commit }, payload) {
+ const endPoint = 'apps/polls/share/remove/'
return axios.post(OC.generateUrl(endPoint), { share: payload.share })
- .then((response) => {
- commit('removeShare', { 'share': payload.share })
+ .then(() => {
+ commit('removeShare', { share: payload.share })
}, (error) => {
- console.error('Error removing share', { 'error': error.response }, { 'payload': payload })
+ console.error('Error removing share', { error: error.response }, { payload: payload })
throw error
})
}
diff --git a/src/js/store/modules/subscription.js b/src/js/store/modules/subscription.js
index e5db59f6..23903b0d 100644
--- a/src/js/store/modules/subscription.js
+++ b/src/js/store/modules/subscription.js
@@ -40,19 +40,19 @@ const mutations = {
}
const actions = {
- getSubscription({ commit }, payload) {
+ getSubscription(context, payload) {
axios.get(OC.generateUrl('apps/polls/subscription/get/' + payload.pollId))
- .then((response) => {
- commit('setSubscription', true)
+ .then(() => {
+ context.commit('setSubscription', true)
})
.catch(() => {
- commit('setSubscription', false)
+ context.commit('setSubscription', false)
})
},
- writeSubscriptionPromise({ commit }, payload) {
+ writeSubscriptionPromise(context, payload) {
return axios.post(OC.generateUrl('apps/polls/subscription/set/'), { pollId: payload.pollId, subscribed: state.subscribed })
- .then((response) => {
+ .then(() => {
}, (error) => {
console.error(error.response)
})
diff --git a/src/js/store/modules/votes.js b/src/js/store/modules/votes.js
index 63fa5cca..a5a01284 100644
--- a/src/js/store/modules/votes.js
+++ b/src/js/store/modules/votes.js
@@ -41,7 +41,7 @@ const mutations = {
},
setVote(state, payload) {
- let index = state.list.findIndex(vote =>
+ const index = state.list.findIndex(vote =>
parseInt(vote.pollId) === payload.pollId
&& vote.userId === payload.vote.userId
&& vote.voteOptionText === payload.option.pollOptionText)
@@ -64,7 +64,7 @@ const getters = {
},
participants: (state, getters, rootState) => {
- let list = []
+ const list = []
state.list.forEach(function(vote) {
if (!list.includes(vote.userId)) {
list.push(vote.userId)
@@ -79,17 +79,17 @@ const getters = {
},
votesRank: (state, getters, rootGetters) => {
- let rank = []
+ const rank = []
rootGetters.options.list.forEach(function(option) {
- let countYes = state.list.filter(vote => vote.voteOptionText === option.pollOptionText && vote.voteAnswer === 'yes').length
- let countMaybe = state.list.filter(vote => vote.voteOptionText === option.pollOptionText && vote.voteAnswer === 'maybe').length
- let countNo = state.list.filter(vote => vote.voteOptionText === option.pollOptionText && vote.voteAnswer === 'no').length
+ const countYes = state.list.filter(vote => vote.voteOptionText === option.pollOptionText && vote.voteAnswer === 'yes').length
+ const countMaybe = state.list.filter(vote => vote.voteOptionText === option.pollOptionText && vote.voteAnswer === 'maybe').length
+ const countNo = state.list.filter(vote => vote.voteOptionText === option.pollOptionText && vote.voteAnswer === 'no').length
rank.push({
- 'rank': 0,
- 'pollOptionText': option.pollOptionText,
- 'yes': countYes,
- 'no': countNo,
- 'maybe': countMaybe
+ rank: 0,
+ pollOptionText: option.pollOptionText,
+ yes: countYes,
+ no: countNo,
+ maybe: countMaybe
})
})
return orderBy(rank, ['yes', 'maybe'], ['desc', 'desc'])
@@ -99,7 +99,7 @@ const getters = {
return getters.votesRank[0]
},
- getVote: (state, getters) => (payload) => {
+ getVote: (state) => (payload) => {
return state.list.find(vote => {
return (vote.userId === payload.userId
&& vote.voteOptionText === payload.option.pollOptionText)
@@ -119,46 +119,46 @@ const getters = {
const actions = {
- loadPoll({ commit, rootState }, payload) {
- commit('reset')
+ loadPoll(context, payload) {
let endPoint = 'apps/polls/votes/get/'
if (payload.token !== undefined) {
endPoint = endPoint.concat('s/', payload.token)
} else if (payload.pollId !== undefined) {
endPoint = endPoint.concat(payload.pollId)
} else {
+ context.commit('reset')
return
}
axios.get(OC.generateUrl(endPoint))
.then((response) => {
- commit('setVotes', { 'list': response.data })
+ context.commit('setVotes', { list: response.data })
}, (error) => {
- console.error('Error loading votes', { 'error': error.response }, { 'payload': payload })
+ console.error('Error loading votes', { error: error.response }, { payload: payload })
throw error
})
},
- setVoteAsync({ commit, getters, rootState }, payload) {
+ setVoteAsync(context, payload) {
let endPoint = 'apps/polls/vote/set/'
- if (rootState.acl.foundByToken) {
+ if (context.rootState.acl.foundByToken) {
endPoint = endPoint.concat('s/')
}
return axios.post(OC.generateUrl(endPoint), {
- pollId: rootState.poll.id,
- token: rootState.acl.token,
+ pollId: context.rootState.poll.id,
+ token: context.rootState.acl.token,
option: payload.option,
userId: payload.userId,
setTo: payload.setTo
})
.then((response) => {
- commit('setVote', { option: payload.option, pollId: rootState.poll.id, vote: response.data })
+ context.commit('setVote', { option: payload.option, pollId: context.rootState.poll.id, vote: response.data })
return response.data
}, (error) => {
- console.error('Error setting vote', { 'error': error.response }, { 'payload': payload })
+ console.error('Error setting vote', { error: error.response }, { payload: payload })
throw error
})
}
diff --git a/src/js/views/PollList.vue b/src/js/views/PollList.vue
index 87ead742..c4eb15d9 100644
--- a/src/js/views/PollList.vue
+++ b/src/js/views/PollList.vue
@@ -107,7 +107,7 @@ export default {
this.loading = true
this.$store
.dispatch('loadPolls')
- .then(response => {
+ .then(() => {
this.loading = false
})
.catch(error => {
@@ -116,35 +116,6 @@ export default {
OC.Notification.showTemporary(t('polls', 'Error loading polls', 1, this.poll.title), { type: 'error' })
})
}
-
- // removePoll(index, poll) {
- // const params = {
- // title: t('polls', 'Delete poll'),
- // text: t('polls', 'Do you want to delete "%n"?', 1, poll.title),
- // buttonHideText: t('polls', 'No, keep poll.'),
- // buttonConfirmText: t('polls', 'Yes, delete poll.'),
- // // Call store action here
- // onConfirm: () => {
- // this.loading = true
- // this.$store
- // .dispatch({
- // type: 'deletePollPromise',
- // poll: poll
- // })
- // .then(response => {
- // this.loading = false
- // this.refreshPolls()
- // OC.Notification.showTemporary(t('polls', 'Poll "%n" deleted', 1, poll.title), { type: 'success' })
- // })
- // .catch(error => {
- // this.loading = false
- // console.error('remove poll: ', error.response)
- // OC.Notification.showTemporary(t('polls', 'Error while deleting Poll "%n"', 1, poll.title), { type: 'error' })
- // })
- // }
- // }
- //
- // }
}
}
</script>
@@ -153,9 +124,11 @@ export default {
#app-content {
// flex-direction: column;
}
+
.main-container {
flex: 1;
}
+
.table {
width: 100%;
// margin-top: 45px;
diff --git a/src/js/views/PublicVote.vue b/src/js/views/PublicVote.vue
index c120f782..22c4f841 100644
--- a/src/js/views/PublicVote.vue
+++ b/src/js/views/PublicVote.vue
@@ -77,7 +77,7 @@ export default {
},
watch: {
- '$route'(to, from) {
+ $route() {
this.loadPoll()
}
},
@@ -90,7 +90,7 @@ export default {
loadPoll() {
this.loading = false
this.$store.dispatch('loadPollMain', { token: this.$route.params.token })
- .then((response) => {
+ .then(() => {
this.$store.dispatch('loadPoll', { token: this.$route.params.token })
.then(() => {
this.loading = false
@@ -115,7 +115,6 @@ export default {
flex: 1;
margin: 0;
flex-direction: column;
- flex: 1;
flex-wrap: nowrap;
overflow-x: scroll;
h1, h2, h3, h4 {
diff --git a/src/js/views/Vote.vue b/src/js/views/Vote.vue
index 2e28b2c6..021cc947 100644
--- a/src/js/views/Vote.vue
+++ b/src/js/views/Vote.vue
@@ -86,17 +86,20 @@ export default {
},
watch: {
- '$route'(to, from) {
+ $route() {
this.loadPoll()
},
- 'poll.id'(to, from) {
- this.$store.dispatch({ type: 'loadPoll', pollId: this.$route.params.id })
+ 'poll.id': function() {
+ this.$store.dispatch({ type: 'loadAcl', pollId: this.$route.params.id })
.then(() => {
- if (this.acl.allowEdit && moment.unix(this.poll.created).diff() > -10000) {
- this.sideBarOpen = true
- }
- this.loading = false
+ this.$store.dispatch({ type: 'loadPoll', pollId: this.$route.params.id })
+ .then(() => {
+ if (this.acl.allowEdit && moment.unix(this.poll.created).diff() > -10000) {
+ this.sideBarOpen = true
+ }
+ this.loading = false
+ })
})
}
},
@@ -126,7 +129,6 @@ export default {
flex: 1;
margin: 0;
flex-direction: column;
- flex: 1;
flex-wrap: nowrap;
overflow-x: scroll;
h1, h2, h3, h4 {