]> _ Git - psq.git/commitdiff
poll answers
authorLouis Jeckel <louis.jeckel@outlook.cm>
Sat, 15 Aug 2020 18:04:46 +0000 (20:04 +0200)
committerLouis Jeckel <louis.jeckel@outlook.cm>
Sat, 15 Aug 2020 18:04:46 +0000 (20:04 +0200)
app/Http/Controllers/Admin/PollController.php
app/Models/Poll.php
config/twill-navigation.php
public/admin/js/admin.js
public/js/app.js
resources/js/components/PollAnswers/PollAnswers.vue [new file with mode: 0644]
resources/views/admin/polls/answers.blade.php [new file with mode: 0644]
resources/views/site/blocks/poll_check.blade.php
routes/admin.php
routes/web.php

index beb95c31a257bd8e7fe992cbb957a7869487a516..dfe6567e808494c9ddcd5483359cdc8898a0cd0c 100644 (file)
@@ -3,6 +3,7 @@
 namespace App\Http\Controllers\Admin;
 
 use A17\Twill\Http\Controllers\Admin\ModuleController;
+use App\Models\Poll;
 
 class PollController extends ModuleController
 {
@@ -10,4 +11,25 @@ class PollController extends ModuleController
 
     protected $permalinkBase = 'sondages';
 
+
+    public function answers()
+    {
+        return view('admin.polls.answers');
+    }
+
+    public function getPollList()
+    {
+        return response()->json(Poll::query()->select('id', 'title')->get());
+    }
+
+    public function getPollAnswers(Poll $poll)
+    {
+        return response()->json([
+            'poll' => $poll->getQuestions(),
+            'answsers' => $poll->entries()->get()
+        ]);
+    }
+
 }
+
+
index f8ea39370eec4e26fb7ce21ae7b6b3785fc41283..2a7019ce095e4502e643a5d565a30198e5c660e3 100644 (file)
@@ -5,8 +5,10 @@ namespace App\Models;
 use A17\Twill\Models\Behaviors\HasBlocks;
 use A17\Twill\Models\Behaviors\HasSlug;
 use A17\Twill\Models\Behaviors\HasMedias;
+use A17\Twill\Models\Block;
 use A17\Twill\Models\Model;
 use App\PollEntry;
+use Illuminate\Support\Str;
 
 class Poll extends Model
 {
@@ -32,4 +34,28 @@ class Poll extends Model
     }
 
 
+    public function getQuestions()
+    {
+        $questions = $this->blocks()->whereNull('parent_id')->get();
+
+        return $questions->map(function(Block $q) {
+            $q->options = $q->children;
+
+            return [
+                'type' => $q->type,
+                'sub_type' => $q->input('type'),
+                'question' => $question = $q->input('question'),
+                'slug' => Str::slug($question),
+                'position' => $q->position,
+                'choices' => $q->children->map(function(Block $choice) {
+                    return [
+                        'position' => $choice->position,
+                        'option' => $choice->input('option'),
+                        'slug' => Str::slug($choice->input('option')),
+                    ];
+                })
+            ];
+        });
+
+    }
 }
index cbbbc0f385cdf4f19a6aa9f5358ed7d57fd34984..3197feb5b09f3cf27c9cf7216952917a1014edc1 100644 (file)
@@ -88,6 +88,10 @@ return [
             'polls' => [
                 'title' => 'Sondages',
                 'module' => true,
+            ],
+            'pollAnswers' => [
+                'title' => 'Réponses aux sondages',
+                'route' => 'admin.otherContent.pollAnswers'
             ]
 
         ]
index b1f95b61bfa9b514964f3a7210ad734482096dc1..ae0d05ccf218e9fbec2d6fcc92fbce21c04395d9 100644 (file)
@@ -2528,6 +2528,84 @@ __webpack_require__.r(__webpack_exports__);
 
 /***/ }),
 
+/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&":
+/*!**********************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js& ***!
+  \**********************************************************************************************************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ __webpack_exports__["default"] = ({
+  name: "PollAnswers",
+  data: function data() {
+    return {
+      polls: [],
+      selected_poll: null,
+      answers: null,
+      loaded: false
+    };
+  },
+  watch: {
+    selected_poll: function selected_poll(value) {
+      var _this = this;
+
+      axios.get('/otherContent/pollAnswers/' + value.id).then(function (d) {
+        return _this.answers = d.data;
+      });
+    }
+  },
+  mounted: function mounted() {
+    var _this2 = this;
+
+    axios.get('/otherContent/pollAnswers/list').then(function (d) {
+      _this2.polls = d.data;
+      _this2.loaded = true;
+    });
+  }
+});
+
+/***/ }),
+
 /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/HeadlineRepeater.vue?vue&type=script&lang=js&":
 /*!***********************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/HeadlineRepeater.vue?vue&type=script&lang=js& ***!
@@ -50441,6 +50519,111 @@ render._withStripped = true
 
 
 
+/***/ }),
+
+/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&":
+/*!**************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& ***!
+  \**************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c("div", [
+    _vm.polls.length > 0
+      ? _c(
+          "div",
+          [
+            _c("div", { staticClass: "form-group" }, [
+              _c("label", { attrs: { for: "polls" } }),
+              _vm._v(" "),
+              _c(
+                "select",
+                {
+                  directives: [
+                    {
+                      name: "model",
+                      rawName: "v-model",
+                      value: _vm.selected_poll,
+                      expression: "selected_poll"
+                    }
+                  ],
+                  staticClass: "form-control",
+                  attrs: { name: "polls", id: "polls" },
+                  on: {
+                    change: function($event) {
+                      var $$selectedVal = Array.prototype.filter
+                        .call($event.target.options, function(o) {
+                          return o.selected
+                        })
+                        .map(function(o) {
+                          var val = "_value" in o ? o._value : o.value
+                          return val
+                        })
+                      _vm.selected_poll = $event.target.multiple
+                        ? $$selectedVal
+                        : $$selectedVal[0]
+                    }
+                  }
+                },
+                _vm._l(_vm.polls, function(poll) {
+                  return _c("option", { domProps: { value: poll } }, [
+                    _vm._v(_vm._s(poll.title))
+                  ])
+                }),
+                0
+              )
+            ]),
+            _vm._v(" "),
+            !!_vm.selected_poll
+              ? [
+                  _vm.answers === null
+                    ? _c("div", { staticClass: "alert alert-info" }, [
+                        _vm._v(
+                          "\n                Chargement en cours...\n            "
+                        )
+                      ])
+                    : !!_vm.answers && _vm.answers.length === 0
+                    ? _c("div", { staticClass: "alert alert-warning" }, [
+                        _vm._v(
+                          "\n                Aucune réponse pour le moment !\n            "
+                        )
+                      ])
+                    : _c("div", [
+                        _c("pre", [
+                          _vm._v(
+                            "                    " +
+                              _vm._s(_vm.answers) +
+                              "\n                "
+                          )
+                        ])
+                      ])
+                ]
+              : _vm._e()
+          ],
+          2
+        )
+      : _vm.loaded
+      ? _c("div", { staticClass: "alert alert-warning" }, [
+          _vm._v("\n        Aucun sondage trouvé\n    ")
+        ])
+      : _c("div", { staticClass: "alert alert-info" }, [
+          _vm._v("\n        Chargement en cours...\n    ")
+        ])
+  ])
+}
+var staticRenderFns = []
+render._withStripped = true
+
+
+
 /***/ }),
 
 /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/HeadlineRepeater.vue?vue&type=template&id=4bb06ff2&scoped=true&":
@@ -85941,6 +86124,7 @@ var map = {
        "./components/FileSearch/FileInstantSearch.vue": "./resources/js/components/FileSearch/FileInstantSearch.vue",
        "./components/Home/cover.vue": "./resources/js/components/Home/cover.vue",
        "./components/LiveStats.vue": "./resources/js/components/LiveStats.vue",
+       "./components/PollAnswers/PollAnswers.vue": "./resources/js/components/PollAnswers/PollAnswers.vue",
        "./components/Publish/HeadlineRepeater.vue": "./resources/js/components/Publish/HeadlineRepeater.vue",
        "./components/Publish/PublishLetter.vue": "./resources/js/components/Publish/PublishLetter.vue",
        "./components/Publish/PublishNewsletter.vue": "./resources/js/components/Publish/PublishNewsletter.vue",
@@ -86581,6 +86765,75 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+/***/ }),
+
+/***/ "./resources/js/components/PollAnswers/PollAnswers.vue":
+/*!*************************************************************!*\
+  !*** ./resources/js/components/PollAnswers/PollAnswers.vue ***!
+  \*************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& */ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&");
+/* harmony import */ var _PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PollAnswers.vue?vue&type=script&lang=js& */ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&");
+/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+  _PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "55b013a2",
+  null
+  
+)
+
+/* hot reload */
+if (false) { var api; }
+component.options.__file = "resources/js/components/PollAnswers/PollAnswers.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&":
+/*!**************************************************************************************!*\
+  !*** ./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./PollAnswers.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&");
+/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 
+
+/***/ }),
+
+/***/ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&":
+/*!********************************************************************************************************!*\
+  !*** ./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& ***!
+  \********************************************************************************************************/
+/*! exports provided: render, staticRenderFns */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+
+
 /***/ }),
 
 /***/ "./resources/js/components/Publish/HeadlineRepeater.vue":
index ab5e9d4d19c2af94c7472fd20fb60e67fcc4cbc9..6b9b84507909511138e85f2be041ec267aca4636 100644 (file)
@@ -7723,6 +7723,84 @@ __webpack_require__.r(__webpack_exports__);
 
 /***/ }),
 
+/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&":
+/*!**********************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js& ***!
+  \**********************************************************************************************************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ __webpack_exports__["default"] = ({
+  name: "PollAnswers",
+  data: function data() {
+    return {
+      polls: [],
+      selected_poll: null,
+      answers: null,
+      loaded: false
+    };
+  },
+  watch: {
+    selected_poll: function selected_poll(value) {
+      var _this = this;
+
+      axios.get('/otherContent/pollAnswers/' + value.id).then(function (d) {
+        return _this.answers = d.data;
+      });
+    }
+  },
+  mounted: function mounted() {
+    var _this2 = this;
+
+    axios.get('/otherContent/pollAnswers/list').then(function (d) {
+      _this2.polls = d.data;
+      _this2.loaded = true;
+    });
+  }
+});
+
+/***/ }),
+
 /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/HeadlineRepeater.vue?vue&type=script&lang=js&":
 /*!***********************************************************************************************************************************************************************************!*\
   !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/HeadlineRepeater.vue?vue&type=script&lang=js& ***!
@@ -79921,6 +79999,111 @@ render._withStripped = true
 
 
 
+/***/ }),
+
+/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&":
+/*!**************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& ***!
+  \**************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+  return _c("div", [
+    _vm.polls.length > 0
+      ? _c(
+          "div",
+          [
+            _c("div", { staticClass: "form-group" }, [
+              _c("label", { attrs: { for: "polls" } }),
+              _vm._v(" "),
+              _c(
+                "select",
+                {
+                  directives: [
+                    {
+                      name: "model",
+                      rawName: "v-model",
+                      value: _vm.selected_poll,
+                      expression: "selected_poll"
+                    }
+                  ],
+                  staticClass: "form-control",
+                  attrs: { name: "polls", id: "polls" },
+                  on: {
+                    change: function($event) {
+                      var $$selectedVal = Array.prototype.filter
+                        .call($event.target.options, function(o) {
+                          return o.selected
+                        })
+                        .map(function(o) {
+                          var val = "_value" in o ? o._value : o.value
+                          return val
+                        })
+                      _vm.selected_poll = $event.target.multiple
+                        ? $$selectedVal
+                        : $$selectedVal[0]
+                    }
+                  }
+                },
+                _vm._l(_vm.polls, function(poll) {
+                  return _c("option", { domProps: { value: poll } }, [
+                    _vm._v(_vm._s(poll.title))
+                  ])
+                }),
+                0
+              )
+            ]),
+            _vm._v(" "),
+            !!_vm.selected_poll
+              ? [
+                  _vm.answers === null
+                    ? _c("div", { staticClass: "alert alert-info" }, [
+                        _vm._v(
+                          "\n                Chargement en cours...\n            "
+                        )
+                      ])
+                    : !!_vm.answers && _vm.answers.length === 0
+                    ? _c("div", { staticClass: "alert alert-warning" }, [
+                        _vm._v(
+                          "\n                Aucune réponse pour le moment !\n            "
+                        )
+                      ])
+                    : _c("div", [
+                        _c("pre", [
+                          _vm._v(
+                            "                    " +
+                              _vm._s(_vm.answers) +
+                              "\n                "
+                          )
+                        ])
+                      ])
+                ]
+              : _vm._e()
+          ],
+          2
+        )
+      : _vm.loaded
+      ? _c("div", { staticClass: "alert alert-warning" }, [
+          _vm._v("\n        Aucun sondage trouvé\n    ")
+        ])
+      : _c("div", { staticClass: "alert alert-info" }, [
+          _vm._v("\n        Chargement en cours...\n    ")
+        ])
+  ])
+}
+var staticRenderFns = []
+render._withStripped = true
+
+
+
 /***/ }),
 
 /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/HeadlineRepeater.vue?vue&type=template&id=4bb06ff2&scoped=true&":
@@ -96127,6 +96310,7 @@ var map = {
        "./components/FileSearch/FileInstantSearch.vue": "./resources/js/components/FileSearch/FileInstantSearch.vue",
        "./components/Home/cover.vue": "./resources/js/components/Home/cover.vue",
        "./components/LiveStats.vue": "./resources/js/components/LiveStats.vue",
+       "./components/PollAnswers/PollAnswers.vue": "./resources/js/components/PollAnswers/PollAnswers.vue",
        "./components/Publish/HeadlineRepeater.vue": "./resources/js/components/Publish/HeadlineRepeater.vue",
        "./components/Publish/PublishLetter.vue": "./resources/js/components/Publish/PublishLetter.vue",
        "./components/Publish/PublishNewsletter.vue": "./resources/js/components/Publish/PublishNewsletter.vue",
@@ -96743,6 +96927,75 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+/***/ }),
+
+/***/ "./resources/js/components/PollAnswers/PollAnswers.vue":
+/*!*************************************************************!*\
+  !*** ./resources/js/components/PollAnswers/PollAnswers.vue ***!
+  \*************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& */ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&");
+/* harmony import */ var _PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PollAnswers.vue?vue&type=script&lang=js& */ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&");
+/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js");
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+  _PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  "55b013a2",
+  null
+  
+)
+
+/* hot reload */
+if (false) { var api; }
+component.options.__file = "resources/js/components/PollAnswers/PollAnswers.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&":
+/*!**************************************************************************************!*\
+  !*** ./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js& ***!
+  \**************************************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./PollAnswers.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=script&lang=js&");
+/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); 
+
+/***/ }),
+
+/***/ "./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&":
+/*!********************************************************************************************************!*\
+  !*** ./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& ***!
+  \********************************************************************************************************/
+/*! exports provided: render, staticRenderFns */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/PollAnswers/PollAnswers.vue?vue&type=template&id=55b013a2&scoped=true&");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PollAnswers_vue_vue_type_template_id_55b013a2_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+
+
 /***/ }),
 
 /***/ "./resources/js/components/Publish/HeadlineRepeater.vue":
diff --git a/resources/js/components/PollAnswers/PollAnswers.vue b/resources/js/components/PollAnswers/PollAnswers.vue
new file mode 100644 (file)
index 0000000..fba4697
--- /dev/null
@@ -0,0 +1,69 @@
+<template>
+    <div>
+        <div v-if="polls.length > 0">
+            <div class="form-group">
+                <label for="polls"></label>
+                <select name="polls" id="polls" class="form-control" v-model="selected_poll">
+                    <option v-for="poll in polls" :value="poll">{{poll.title}}</option>
+                </select>
+            </div>
+
+            <template v-if="!! selected_poll">
+                <div v-if="answers === null" class="alert alert-info">
+                    Chargement en cours...
+                </div>
+
+                <div v-else-if="!!answers && answers.length === 0" class="alert alert-warning">
+                    Aucune réponse pour le moment !
+                </div>
+
+                <div v-else>
+                    <pre>
+                        {{answers}}
+                    </pre>
+                </div>
+
+            </template>
+
+
+        </div>
+        <div class="alert alert-warning" v-else-if="loaded">
+            Aucun sondage trouvé
+        </div>
+        <div class="alert alert-info" v-else>
+            Chargement en cours...
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        name: "PollAnswers",
+        data() {
+            return {
+                polls: [],
+                selected_poll: null,
+                answers: null,
+                loaded: false,
+
+            }
+        },
+        watch: {
+            selected_poll: function(value) {
+                axios.get('/otherContent/pollAnswers/' + value.id).then(d => this.answers = d.data)
+            }
+        },
+
+
+        mounted() {
+            axios.get('/otherContent/pollAnswers/list').then(d => {
+                this.polls = d.data;
+                this.loaded = true;
+            })
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>
diff --git a/resources/views/admin/polls/answers.blade.php b/resources/views/admin/polls/answers.blade.php
new file mode 100644 (file)
index 0000000..7d296d9
--- /dev/null
@@ -0,0 +1,15 @@
+@extends('admin.layouts.free')
+
+@section('content')
+    <div class="bootstrap">
+        <div class="container mt-3">
+            <h1 class="text-center">Réponses aux sondages</h1>
+
+            <poll-answers></poll-answers>
+
+
+        </div>
+    </div>
+
+
+@endsection
index c56d20789fcda38af2aef4d9ad82c9c2d2be7136..72502058083fd4d40c02eeab285058fe98bb7f35 100644 (file)
@@ -13,7 +13,7 @@ $slug = Str::slug($question = $block->input('question'))
     @endphp
         @if($block->input('type') === 'radio')
             <div class="form-check">
-                <input class="form-check-input" type="radio" name="{{$slug}}" id="answer-{{$i}}-{{$slug}}" value="{{$option->input('option')}}">
+                <input class="form-check-input" type="radio" name="{{$slug}}" id="answer-{{$i}}-{{$slug}}" value="{{Str::slug($option->input('option'))}}">
                 <label class="form-check-label" for="answer-{{$i}}-{{$slug}}">
                     {{$option->input('option')}}
                 </label>
@@ -21,7 +21,7 @@ $slug = Str::slug($question = $block->input('question'))
 
         @else
             <div class="form-check">
-                <input class="form-check-input" type="checkbox" value="{{$option->input('option')}}"  name="{{$slug}}[]" id="answer-{{$i}}-{{$slug}}">
+                <input class="form-check-input" type="checkbox" value="{{Str::slug($option->input('option'))}}"  name="{{$slug}}[]" id="answer-{{$i}}-{{$slug}}">
                 <label class="form-check-label" for="answer-{{$i}}-{{$slug}}">
                     {{$option->input('option')}}
                 </label>
index c2e01d5513ceea05af3caea4482f07bfc630bee9..d1d865caa8811a2194d6a84249289a8df4199f89 100644 (file)
@@ -22,6 +22,12 @@ Route::prefix('otherContent')->group(function () {
      Route::module('socialArticles');
      Route::module('polls');
 
+     Route::prefix('pollAnswers')->group(function() {
+        Route::get('/', 'PollController@answers')->name('otherContent.pollAnswers');
+        Route::get('list', 'PollController@getPollList');
+        Route::get('{poll}', 'PollController@getPollAnswers');
+     });
+
 });
 
 
index 3322cd12f1cb4d981520972531d0f8883f692de1..143f3f2e429f7d970f70bc31b9a4bc90a1843282 100644 (file)
@@ -69,8 +69,10 @@ Route::domain(env('CLIENT_DOMAIN_NAME'))->group(function() {
 
     Route::get('article/{slug}', 'SocialArticleController@show')->name('social-article.show');
 
-    Route::get('sondages/{slug}', 'PollController@show')->name('poll.show');
-    Route::post('sondages/{slug}', 'PollController@submit')->name('poll.submit');
+    Route::prefix('sondages')->group(function() {
+        Route::get('{slug}', 'PollController@show')->name('poll.show');
+        Route::post('{slug}', 'PollController@submit')->name('poll.submit');
+    });
 
     /** Metadata */
     Route::prefix('/files/{file:slug}')->group(function () {