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:
-rw-r--r--appinfo/routes.php4
-rw-r--r--lib/Controller/OptionController.php33
-rw-r--r--src/js/mixins/optionMixins.js2
-rw-r--r--src/js/store/modules/subModules/options.js50
4 files changed, 60 insertions, 29 deletions
diff --git a/appinfo/routes.php b/appinfo/routes.php
index 24078de3..d5659af7 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -44,8 +44,8 @@ return [
['name' => 'option#update', 'url' => '/option/{optionId}', 'verb' => 'PUT'],
['name' => 'option#delete', 'url' => '/option/{optionId}', 'verb' => 'DELETE'],
['name' => 'option#confirm', 'url' => '/option/{optionId}/confirm', 'verb' => 'PUT'],
- ['name' => 'option#reorder', 'url' => '/option/reorder', 'verb' => 'POST'],
- // ['name' => 'option#list', 'url' => '/options/get/{pollId}', 'verb' => 'GET'],
+ ['name' => 'option#reorder', 'url' => '/options/reorder', 'verb' => 'POST'],
+ ['name' => 'option#list', 'url' => '/polls/{pollId}/options', 'verb' => 'GET'],
// ['name' => 'option#listByToken', 'url' => '/options/get/s/{token}', 'verb' => 'GET'],
['name' => 'vote#set', 'url' => '/vote/set', 'verb' => 'POST'],
diff --git a/lib/Controller/OptionController.php b/lib/Controller/OptionController.php
index ea58c79c..9fc74889 100644
--- a/lib/Controller/OptionController.php
+++ b/lib/Controller/OptionController.php
@@ -53,16 +53,16 @@ class OptionController extends Controller {
$this->optionService = $optionService;
}
- // /**
- // * Get all options of given poll
- // * @NoAdminRequired
- // * @param int $pollId
- // * @return DataResponse
- // */
- // public function list($pollId) {
- // return new DataResponse($this->optionService->list($pollId), Http::STATUS_OK);
- // }
- //
+ /**
+ * Get all options of given poll
+ * @NoAdminRequired
+ * @param int $pollId
+ * @return DataResponse
+ */
+ public function list($pollId) {
+ return new DataResponse(['options' => $this->optionService->list($pollId)], Http::STATUS_OK);
+ }
+
//
// /**
// * Get all options specified by token
@@ -76,6 +76,9 @@ class OptionController extends Controller {
// return new DataResponse($this->optionService->list(0, $token), Http::STATUS_OK);
// }
+
+
+
/**
* Add a new option
* @NoAdminRequired
@@ -83,7 +86,7 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function add($pollId, $timestamp = 0, $pollOptionText = '') {
- return new DataResponse($this->optionService->add($pollId, $timestamp, $pollOptionText), Http::STATUS_OK);
+ return new DataResponse(['option' => $this->optionService->add($pollId, $timestamp, $pollOptionText)], Http::STATUS_OK);
}
/**
@@ -93,7 +96,7 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function update($optionId, $timestamp, $pollOptionText) {
- return new DataResponse($this->optionService->update($optionId, $timestamp, $pollOptionText), Http::STATUS_OK);
+ return new DataResponse(['option' => $this->optionService->update($optionId, $timestamp, $pollOptionText)], Http::STATUS_OK);
}
/**
@@ -103,7 +106,7 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function delete($optionId) {
- return new DataResponse($this->optionService->delete($optionId), Http::STATUS_OK);
+ return new DataResponse(['option' => $this->optionService->delete($optionId)], Http::STATUS_OK);
}
/**
@@ -113,7 +116,7 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function confirm($optionId) {
- return new DataResponse($this->optionService->confirm($optionId), Http::STATUS_OK);
+ return new DataResponse(['option' => $this->optionService->confirm($optionId)], Http::STATUS_OK);
}
/**
@@ -124,6 +127,6 @@ class OptionController extends Controller {
* @return DataResponse
*/
public function reorder($pollId, $options) {
- return new DataResponse($this->optionService->reorder($pollId, $options), Http::STATUS_OK);
+ return new DataResponse(['options' => $this->optionService->reorder($pollId, $options)], Http::STATUS_OK);
}
}
diff --git a/src/js/mixins/optionMixins.js b/src/js/mixins/optionMixins.js
index 7a0b1a8e..58fc6eb6 100644
--- a/src/js/mixins/optionMixins.js
+++ b/src/js/mixins/optionMixins.js
@@ -1,7 +1,7 @@
export const confirmOption = {
methods: {
confirmOption(option) {
- this.$store.dispatch('poll/options/update', { option: { ...option, confirmed: !option.confirmed } })
+ this.$store.dispatch('poll/options/confirm', { option: option })
},
},
}
diff --git a/src/js/store/modules/subModules/options.js b/src/js/store/modules/subModules/options.js
index 9d01d930..e2536710 100644
--- a/src/js/store/modules/subModules/options.js
+++ b/src/js/store/modules/subModules/options.js
@@ -49,6 +49,14 @@ const mutations = {
})
},
+ confirm(state, payload) {
+ const index = state.list.findIndex((option) => {
+ return option.id === payload.option.id
+ })
+
+ state.list[index].confirmed = !state.list[index].confirmed
+ },
+
setItem(state, payload) {
const index = state.list.findIndex((option) => {
return option.id === payload.option.id
@@ -99,6 +107,20 @@ const getters = {
}
const actions = {
+
+ reload(context) {
+ const endPoint = 'apps/polls/polls'
+ console.error('Reloading options')
+ return axios.get(generateUrl(endPoint.concat('/', context.rootState.poll.id, '/options')))
+ .then((response) => {
+ context.commit('set', { options: response.data.options })
+ })
+ .catch((error) => {
+ console.error('Error loding options', { error: error.response }, { pollId: context.rootState.poll.id })
+ throw error
+ })
+ },
+
add(context, payload) {
const endPoint = 'apps/polls/option'
return axios.post(generateUrl(endPoint), {
@@ -107,10 +129,11 @@ const actions = {
pollOptionText: payload.pollOptionText,
})
.then((response) => {
- context.commit('setItem', { option: response.data })
+ context.commit('setItem', { option: response.data.option })
})
.catch((error) => {
console.error('Error adding option', { error: error.response }, { payload: payload })
+ context.dispatch('reload')
throw error
})
},
@@ -122,10 +145,11 @@ const actions = {
pollOptionText: payload.option.timeStamp,
})
.then((response) => {
- context.commit('setItem', { option: response.data })
+ context.commit('setItem', { option: response.data.option })
})
.catch((error) => {
console.error('Error updating option', { error: error.response }, { payload: payload })
+ context.dispatch('reload')
throw error
})
},
@@ -134,39 +158,43 @@ const actions = {
const endPoint = 'apps/polls/option'
return axios.delete(generateUrl(endPoint.concat('/', payload.option.id)))
- .then(() => {
- context.commit('delete', { option: payload.option })
+ .then((response) => {
+ context.commit('delete', { option: response.data.option })
})
.catch((error) => {
- console.error('Error removing option', { error: error.response }, { payload: payload })
+ console.error('Error deleting option', { error: error.response }, { payload: payload })
+ context.dispatch('reload')
throw error
})
},
confirm(context, payload) {
- const endPoint = 'apps/polls/option'
+ context.commit('confirm', { option: payload.option })
+ const endPoint = 'apps/polls/option'
return axios.put(generateUrl(endPoint.concat('/', payload.option.id, '/confirm')))
- .then(() => {
- context.commit('delete', { option: payload.option })
+ .then((response) => {
+ context.commit('setItem', { option: response.data.option })
})
.catch((error) => {
- console.error('Error removing option', { error: error.response }, { payload: payload })
+ console.error('Error confirming option', { error: error.response }, { payload: payload })
+ context.dispatch('reload')
throw error
})
},
reorder(context, payload) {
- const endPoint = 'apps/polls/option/reorder'
+ const endPoint = 'apps/polls/options/reorder'
return axios.post(generateUrl(endPoint), {
pollId: context.rootState.poll.id,
options: payload,
})
.then((response) => {
- context.commit('set', { options: response.data })
+ context.commit('set', { options: response.data.options })
})
.catch((error) => {
console.error('Error reordering option', { error: error.response }, { payload: payload })
+ context.dispatch('reload')
throw error
})
},