From: Louis Jeckel Date: Fri, 14 Aug 2020 11:18:23 +0000 (+0200) Subject: envoi newsletter X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=b6fb35b13127217fff174d98897cf0479f592e95;p=psq.git envoi newsletter --- diff --git a/app/Http/Controllers/Admin/PublishController.php b/app/Http/Controllers/Admin/PublishController.php index 19a8070..2566814 100644 --- a/app/Http/Controllers/Admin/PublishController.php +++ b/app/Http/Controllers/Admin/PublishController.php @@ -9,6 +9,7 @@ use App\Jobs\ProcessEmailBatch; use App\Jobs\ProcessPdfFile; use App\Mail\BatchMail; use App\PdfFile; +use App\User; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\ResourceCollection; @@ -35,6 +36,9 @@ class PublishController extends Controller { $batch = new EmailBatch(); $data = $request->input('data'); + $type = Arr::get($data, 'email.type', 0); + $recipientGroup = Arr::get($data, 'recipient_group'); + $batch->subject = Arr::get($data, 'email.subject'); $batch->content = ['body' => Arr::get($data, 'email.content')]; $batch->file_id = Arr::get($data, 'file.id'); @@ -42,7 +46,7 @@ class PublishController extends Controller $batch->save(); - dispatch(new ProcessEmailBatch($batch)); + dispatch(new ProcessEmailBatch($batch, $type, $recipientGroup)); return ['data' => $batch->id]; } @@ -86,9 +90,18 @@ class PublishController extends Controller /** * @return \Illuminate\View\View */ - public function index() + public function letter() + { + return view('admin.publish.publish-letter'); + } + + + /** + * @return \Illuminate\View\View + */ + public function newsletter() { - return view('admin.publish.publish'); + return view('admin.publish.publish-newsletter'); } public function live() @@ -110,11 +123,56 @@ class PublishController extends Controller return (new BatchMail( $request->input('content'), $request->input('subject'), + $request->input('type'), $request->input('link') ))->render(); } + /** + * @return array + */ + public static function sendGroups(): array + { + return [ + 'all' => [ + 'slug' => 'all', + 'builder' => User::query(), + 'text' => "Tout le monde", + ], + 'prospects' => [ + 'slug' => 'prospects', + 'builder' => User::prospect(), + 'text' => 'Prospects', + ], + 'registered_user' => [ + 'slug' => 'registered_user', + 'builder' => User::registeredUser(), + 'text' => 'Utilisateurs de la plateforme', + ], + 'admin' => [ + 'slug' => 'admin', + 'builder' => User::where('email', 'louis.jeckel@outlook.com'), + 'text' => 'Administrateur', + ], + + ]; + } + + /** + * @return \Illuminate\Http\JsonResponse + */ + public function sendGroupList() + { + return response()->json(array_map(function($group) { + $group['count'] = $group['builder']->count(); + unset($group['builder']); + $group['text'] .= " ({$group['count']})"; + return $group; + }, self::sendGroups())); + + } + diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index fee95d8..91a573b 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -15,7 +15,7 @@ class HomeController extends Controller */ public function index() { - \View::share('last_pdf', PdfFile::query()->orderByDesc('id')->take(7)->get()); + \View::share('last_pdf', PdfFile::query()->orderByDesc('id')->published()->take(7)->get()); return view('home.index'); } diff --git a/app/Http/Controllers/NewsletterController.php b/app/Http/Controllers/NewsletterController.php new file mode 100644 index 0000000..ecd4691 --- /dev/null +++ b/app/Http/Controllers/NewsletterController.php @@ -0,0 +1,10 @@ +batch = $batch; + $this->type = $type; + $this->users = $recipientGroup === null ? + User::recievesEmails()->get() : + PublishController::sendGroups()[$recipientGroup['slug']]['builder']->get(); } /** @@ -53,32 +66,42 @@ class ProcessEmailBatch implements ShouldQueue public function handle() { /** @var Collection $users */ - $users = User::recievesEmails()->get(); - $size = env('MAILGUN_CHUNK_SIZE', 200); - $chunks = $users->chunk($size); + $size = config('mail.mailgun.chunk_size'); + $chunks = $this->users->chunk($size); $this->processUpdate([ 'status' => 'processing', - 'total' => $count = $users->count(), + 'total' => $count = $this->users->count(), 'current' => 0 ]); $i = 0; - $this->batch->file->publish(); + + if($this->batch->file !== null) { + $this->batch->file->publish(); + } foreach($chunks as $chunk) { $variables = json_encode($chunk->mapWithKeys(function (User $user) { - return [$user->email => [ + + $fileVar = $this->batch->file === null ? + [] : + ['file_url' => $this->batch->file->getUrlWithToken($user)]; + + + return [ + $user->email => array_merge([ 'id' => $user->id, 'name' => $user->name, - 'file_url' => $this->batch->file->getUrlWithToken($user), - ]]; + ], $fileVar) + ]; }), JSON_THROW_ON_ERROR, 512); $view = (new BatchMail( $this->batch->content['body'], $this->batch->subject, + $this->type ))->render(); @@ -108,7 +131,7 @@ class ProcessEmailBatch implements ShouldQueue 'current' => $count ]); - $this->batch->update(['sent_to' => $users->pluck('email')]); + $this->batch->update(['sent_to' => $this->users->pluck('email')]); } } diff --git a/app/Mail/BatchMail.php b/app/Mail/BatchMail.php index 6636574..64697d1 100644 --- a/app/Mail/BatchMail.php +++ b/app/Mail/BatchMail.php @@ -3,6 +3,7 @@ namespace App\Mail; use App\Facades\Html2Markdown; +use Arr; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; @@ -17,20 +18,41 @@ class BatchMail extends Mailable public $content; public $link; + + public const MAIL_TYPE_PDF_FILE = 1; + + public const MAIL_TYPE_NEWSLETTER = 2; + + protected array $viewMap = [ + self::MAIL_TYPE_PDF_FILE => 'batch-pdf', + self::MAIL_TYPE_NEWSLETTER => 'newsletter' + ]; + + + /** + * @var string + */ + public $emailView; + /** * Create a new message instance.² * * @param string $content * @param string $subject + * @param $type * @param string|null $link - * @param HtmlConverter $converter */ - public function __construct($content, $subject, $link = null) + public function __construct($content, $subject, $type, $link = null) { // $this->content = Html2Markdown::convert($content); $this->subject = $subject; $this->link = $link; + + $this->emailView = Arr::get($this->viewMap, $type ?? 0); + if($this->emailView === null) { + throw new \InvalidArgumentException('Invalid email type !'); + } } /** @@ -40,6 +62,6 @@ class BatchMail extends Mailable */ public function build() { - return $this->markdown('emails.batch')->with(['subject' => $this->subject]); + return $this->markdown("emails.{$this->emailView}")->with(['subject' => $this->subject]); } } diff --git a/config/mail.php b/config/mail.php index 3fa2a06..f71b11d 100644 --- a/config/mail.php +++ b/config/mail.php @@ -107,7 +107,8 @@ return [ ], 'mailgun' => [ - 'api_key' => env('MAILGUN_API_KEY') + 'api_key' => env('MAILGUN_API_KEY'), + 'chunk_size' => env('MAILGUN_CHUNK_SIZE', 200) ] ]; diff --git a/config/twill-navigation.php b/config/twill-navigation.php index 5e954f2..a39fee1 100644 --- a/config/twill-navigation.php +++ b/config/twill-navigation.php @@ -8,8 +8,19 @@ return [ 'raw' => true, ], 'publish' => [ - 'title' => 'Publier une lettre', - 'route' => 'admin.publish', + 'title' => 'Publier', + 'route' => 'admin.publish.letter', + 'primary_navigation' => [ + 'letter' => [ + 'title' => 'Publier une lettre', + 'route' => 'admin.publish.letter' + ], + 'newsletter' => [ + 'title' => 'Envoyer une newsletter', + 'route' => 'admin.publish.newsletter' + ] + + ] ], 'content' => [ 'title' => 'Contenu du site', diff --git a/database/migrations/2020_08_14_090953_file_not_required_in_email_batches_table.php b/database/migrations/2020_08_14_090953_file_not_required_in_email_batches_table.php new file mode 100644 index 0000000..12cf9b1 --- /dev/null +++ b/database/migrations/2020_08_14_090953_file_not_required_in_email_batches_table.php @@ -0,0 +1,32 @@ +unsignedBigInteger('file_id')->change()->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('email_batches', function (Blueprint $table) { + $table->unsignedBigInteger('file_id')->change()->nullable(false); + }); + } +} diff --git a/public/admin/js/admin.js b/public/admin/js/admin.js index 0b9da0d..b1f95b6 100644 --- a/public/admin/js/admin.js +++ b/public/admin/js/admin.js @@ -2581,10 +2581,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.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/Publish.vue?vue&type=script&lang=js& ***! - \**************************************************************************************************************************************************************************/ +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.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/PublishLetter.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -2694,6 +2694,110 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.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/PublishNewsletter.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 vue_stepper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-stepper */ "./node_modules/vue-stepper/src/index.js"); +/* harmony import */ var vue_stepper__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_stepper__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _Step1WriteNewsletter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Step1WriteNewsletter */ "./resources/js/components/Publish/Step1WriteNewsletter.vue"); +/* harmony import */ var _Step3Send__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Step3Send */ "./resources/js/components/Publish/Step3Send.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/** + * Step 1 : Upload PDF and preview (add title, tags) + * Step 2 : Add email subject and content + * Step 3 : Review, send and track + */ + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + HorizontalStepper: vue_stepper__WEBPACK_IMPORTED_MODULE_0___default.a + }, + data: function data() { + return { + steps: [{ + icon: 'mail', + name: 'email', + title: 'Mise en forme du message', + subtitle: '', + component: _Step1WriteNewsletter__WEBPACK_IMPORTED_MODULE_1__["default"], + completed: false + }, { + icon: 'send', + name: 'review', + title: 'Récapitulatif et envoi', + subtitle: 'Suivi des envois', + component: _Step3Send__WEBPACK_IMPORTED_MODULE_2__["default"], + completed: false + }] + }; + }, + mounted: function mounted() {}, + methods: { + // Executed when @completed-step event is triggered + completeStep: function completeStep(payload) { + this.steps.forEach(function (step) { + if (step.name === payload.name) { + step.completed = true; + } + }); + }, + // Executed when @active-step event is triggered + isStepActive: function isStepActive(payload) { + this.steps.forEach(function (step) { + if (step.name === payload.name) { + if (step.completed === true) { + step.completed = false; + } + } + }); + }, + // Executed when @stepper-finished event is triggered + alert: function (_alert) { + function alert(_x) { + return _alert.apply(this, arguments); + } + + alert.toString = function () { + return _alert.toString(); + }; + + return alert; + }(function (payload) { + alert('end'); + }) + } +}); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1UploadFile.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/Step1UploadFile.vue?vue&type=script&lang=js& ***! @@ -2960,6 +3064,131 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.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/Step1WriteNewsletter.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 _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ckeditor/ckeditor5-build-classic */ "./node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js"); +/* harmony import */ var _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: {}, + data: function data() { + return { + file: this.$root.publishState.file, + editor: _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0___default.a, + recipient_group: null, + recipient_groups: [], + email: { + content: "\n

Bonjour %recipient.name%,

\n ", + subject: '', + type: 2, + link: "" + }, + csrf: document.querySelectorAll('meta[name="csrf-token"]')[0].content, + editorConfig: {} + }; + }, + watch: { + email: { + deep: true, + handler: function handler(val, old) { + if (val.editorData !== '' && val.subject !== '') { + this.$root.publishState.email = val; + this.$emit('can-continue', { + value: true + }); + } else { + this.$emit('can-continue', { + value: false + }); + } + }, + immediate: true + }, + recipient_group: function recipient_group(val, old) { + this.$root.publishState.recipient_group = val; + } + }, + methods: {}, + mounted: function mounted() { + var _this = this; + + this.$emit('can-continue', { + value: true + }); + axios.get('/publish/recipient-groups').then(function (d) { + return _this.recipient_groups = d.data; + }); + } +}); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step2PrepareMail.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/Step2PrepareMail.vue?vue&type=script&lang=js& ***! @@ -3026,6 +3255,7 @@ __webpack_require__.r(__webpack_exports__); // // // +// /* harmony default export */ __webpack_exports__["default"] = ({ components: {}, @@ -3035,7 +3265,8 @@ __webpack_require__.r(__webpack_exports__); editor: _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0___default.a, email: { content: "\n

Bonjour %recipient.name%,

\n

Voici la nouvelle \xE9dition du jour !

\n ", - subject: "[".concat(this.$root.publishState.file.title, "] ") + subject: "[".concat(this.$root.publishState.file.title, "] "), + type: 1 }, csrf: document.querySelectorAll('meta[name="csrf-token"]')[0].content, editorConfig: {} @@ -3164,7 +3395,7 @@ __webpack_require__.r(__webpack_exports__); }, data: function data() { return { - file: this.$root.publishState.file, + email: this.$root.publishState.email, recipients_count: 0, status: 'En attente', counters: { @@ -3235,9 +3466,13 @@ __webpack_require__.r(__webpack_exports__); mounted: function mounted() { var _this2 = this; - axios.get('publish/recipients').then(function (d) { - return _this2.recipients_count = d.data.data; - }); + if (this.$root.publishState.recipient_group === undefined) { + axios.get('publish/recipients').then(function (d) { + return _this2.recipients_count = d.data.data; + }); + } else { + this.recipients_count = this.$root.publishState.recipient_group.count; + } } }); @@ -10048,6 +10283,24 @@ exports.push([module.i, "\n.repeater[data-v-26de7527] {\n margin-left: -18px; module.exports = exports; +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--7-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.i, "\n.ck-editor__editable {\n min-height: 500px;\n}\n\n", ""]); +// Exports +module.exports = exports; + + /***/ }), /***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step2PrepareMail.vue?vue&type=style&index=0&lang=css&": @@ -48723,6 +48976,37 @@ var exported = content.locals ? content.locals : {}; +module.exports = exported; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js??ref--7-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var api = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); + var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& */ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&"); + + content = content.__esModule ? content.default : content; + + if (typeof content === 'string') { + content = [[module.i, content, '']]; + } + +var options = {}; + +options.insert = "head"; +options.singleton = false; + +var update = api(content, options); + +var exported = content.locals ? content.locals : {}; + + + module.exports = exported; /***/ }), @@ -50227,10 +50511,10 @@ render._withStripped = true /***/ }), -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&": -/*!******************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4& ***! - \******************************************************************************************************************************************************************************************************************/ +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a& ***! + \************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -50264,6 +50548,45 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! 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", + [ + _c("h1", { staticClass: "mb-6" }, [_vm._v("Envoyer une newsletter")]), + _vm._v(" "), + _c("horizontal-stepper", { + attrs: { steps: _vm.steps }, + on: { + "completed-step": _vm.completeStep, + "active-step": _vm.isStepActive, + "stepper-finished": _vm.alert + } + }) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1UploadFile.vue?vue&type=template&id=26de7527&scoped=true&": @@ -50437,7 +50760,7 @@ var render = function() { "post-action": "/publish/upload-file", multiple: false, drop: true, - "drop-directory": true, + "drop-directory": false, headers: { "X-CSRF-TOKEN": _vm.csrf }, @@ -50645,6 +50968,211 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& ***! + \*******************************************************************************************************************************************************************************************************************************/ +/*! 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", { staticClass: "stepper-step" }, [ + _c("div", [ + _c("div", [ + _c("div", { staticClass: "form-group" }, [ + _c("label", { attrs: { for: "recipients" } }, [ + _vm._v("Destinataires") + ]), + _vm._v(" "), + _c( + "select", + { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.recipient_group, + expression: "recipient_group" + } + ], + staticClass: "form-control", + attrs: { name: "recipients", id: "recipients" }, + 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.recipient_group = $event.target.multiple + ? $$selectedVal + : $$selectedVal[0] + } + } + }, + [ + _vm.recipient_groups.count === 0 + ? _c( + "option", + { attrs: { value: "-1", selected: "seleted" } }, + [_vm._v("Chargement en cours...")] + ) + : _vm._e(), + _vm._v(" "), + _vm._l(_vm.recipient_groups, function(recipient) { + return _c("option", { domProps: { value: recipient } }, [ + _vm._v(_vm._s(recipient.text)) + ]) + }) + ], + 2 + ) + ]), + _vm._v(" "), + _c("div", { staticClass: "form-group" }, [ + _c("label", { attrs: { for: "subject" } }, [_vm._v("Sujet")]), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.email.subject, + expression: "email.subject" + } + ], + staticClass: "form-control", + attrs: { + type: "text", + id: "subject", + placeholder: "Découvrez notre nouveau podcast !" + }, + domProps: { value: _vm.email.subject }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.$set(_vm.email, "subject", $event.target.value) + } + } + }) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "form-group" }, + [ + _c("label", { attrs: { for: "content" } }, [_vm._v("Contenu")]), + _vm._v(" "), + _c("ckeditor", { + attrs: { + editor: _vm.editor, + config: _vm.editorConfig, + id: "content" + }, + model: { + value: _vm.email.content, + callback: function($$v) { + _vm.$set(_vm.email, "content", $$v) + }, + expression: "email.content" + } + }) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "form-group" }, [ + _c("label", { attrs: { for: "subject" } }, [ + _vm._v("Lien principal") + ]), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.email.link, + expression: "email.link" + } + ], + staticClass: "form-control", + attrs: { + type: "text", + id: "link", + placeholder: "https://exemple.fr" + }, + domProps: { value: _vm.email.link }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.$set(_vm.email, "link", $event.target.value) + } + } + }) + ]) + ]) + ]), + _vm._v(" "), + _c( + "form", + { + attrs: { method: "post", action: "/publish/preview", target: "_blank" } + }, + [ + _c("input", { + attrs: { type: "hidden", name: "_token" }, + domProps: { value: _vm.csrf } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "subject" }, + domProps: { value: _vm.email.subject } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "type" }, + domProps: { value: _vm.email.type } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "content" }, + domProps: { value: _vm.email.content } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "link" }, + domProps: { value: _vm.email.link } + }), + _vm._v(" "), + _c("input", { + staticClass: "btn btn-primary", + attrs: { type: "submit", value: "Prévisualiser l'email" } + }) + ] + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step2PrepareMail.vue?vue&type=template&id=5a14ddba&": @@ -50756,6 +51284,11 @@ var render = function() { domProps: { value: _vm.email.subject } }), _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "type" }, + domProps: { value: _vm.email.type } + }), + _vm._v(" "), _c("input", { attrs: { type: "hidden", name: "content" }, domProps: { value: _vm.email.content } @@ -50799,7 +51332,7 @@ var render = function() { return _c("div", { staticClass: "stepper-step" }, [ _c("div", { staticClass: "mb-3" }, [ _c("h3", { staticClass: "text-center" }, [ - _vm._v("\n " + _vm._s(_vm.file.title) + "\n ") + _vm._v("\n " + _vm._s(_vm.email.subject) + "\n ") ]) ]), _vm._v(" "), @@ -85409,8 +85942,10 @@ var map = { "./components/Home/cover.vue": "./resources/js/components/Home/cover.vue", "./components/LiveStats.vue": "./resources/js/components/LiveStats.vue", "./components/Publish/HeadlineRepeater.vue": "./resources/js/components/Publish/HeadlineRepeater.vue", - "./components/Publish/Publish.vue": "./resources/js/components/Publish/Publish.vue", + "./components/Publish/PublishLetter.vue": "./resources/js/components/Publish/PublishLetter.vue", + "./components/Publish/PublishNewsletter.vue": "./resources/js/components/Publish/PublishNewsletter.vue", "./components/Publish/Step1UploadFile.vue": "./resources/js/components/Publish/Step1UploadFile.vue", + "./components/Publish/Step1WriteNewsletter.vue": "./resources/js/components/Publish/Step1WriteNewsletter.vue", "./components/Publish/Step2PrepareMail.vue": "./resources/js/components/Publish/Step2PrepareMail.vue", "./components/Publish/Step3Send.vue": "./resources/js/components/Publish/Step3Send.vue", "./components/Stats/EmailStatistics.vue": "./resources/js/components/Stats/EmailStatistics.vue", @@ -86117,17 +86652,17 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/***/ "./resources/js/components/Publish/Publish.vue": -/*!*****************************************************!*\ - !*** ./resources/js/components/Publish/Publish.vue ***! - \*****************************************************/ +/***/ "./resources/js/components/Publish/PublishLetter.vue": +/*!***********************************************************!*\ + !*** ./resources/js/components/Publish/PublishLetter.vue ***! + \***********************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Publish.vue?vue&type=template&id=6a7b0cd4& */ "./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&"); -/* harmony import */ var _Publish_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Publish.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/Publish.vue?vue&type=script&lang=js&"); +/* harmony import */ var _PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PublishLetter.vue?vue&type=template&id=280ded1a& */ "./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&"); +/* harmony import */ var _PublishLetter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PublishLetter.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/PublishLetter.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"); @@ -86137,9 +86672,9 @@ __webpack_require__.r(__webpack_exports__); /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _Publish_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["render"], - _Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + _PublishLetter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__["render"], + _PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], false, null, null, @@ -86149,38 +86684,107 @@ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_ /* hot reload */ if (false) { var api; } -component.options.__file = "resources/js/components/Publish/Publish.vue" +component.options.__file = "resources/js/components/Publish/PublishLetter.vue" /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), -/***/ "./resources/js/components/Publish/Publish.vue?vue&type=script&lang=js&": -/*!******************************************************************************!*\ - !*** ./resources/js/components/Publish/Publish.vue?vue&type=script&lang=js& ***! - \******************************************************************************/ +/***/ "./resources/js/components/Publish/PublishLetter.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishLetter.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_Publish_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!./Publish.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.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_Publish_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PublishLetter_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!./PublishLetter.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.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_PublishLetter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); /***/ }), -/***/ "./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&": -/*!************************************************************************************!*\ - !*** ./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4& ***! - \************************************************************************************/ +/***/ "./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&": +/*!******************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a& ***! + \******************************************************************************************/ +/*! 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_PublishLetter_vue_vue_type_template_id_280ded1a___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!./PublishLetter.vue?vue&type=template&id=280ded1a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&"); +/* 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_PublishLetter_vue_vue_type_template_id_280ded1a___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_PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./resources/js/components/Publish/PublishNewsletter.vue": +/*!***************************************************************!*\ + !*** ./resources/js/components/Publish/PublishNewsletter.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PublishNewsletter.vue?vue&type=template&id=930f83a6& */ "./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&"); +/* harmony import */ var _PublishNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PublishNewsletter.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/PublishNewsletter.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"])( + _PublishNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__["render"], + _PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/components/Publish/PublishNewsletter.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./resources/js/components/Publish/PublishNewsletter.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishNewsletter.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_PublishNewsletter_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!./PublishNewsletter.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.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_PublishNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&": +/*!**********************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6& ***! + \**********************************************************************************************/ /*! 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_Publish_vue_vue_type_template_id_6a7b0cd4___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!./Publish.vue?vue&type=template&id=6a7b0cd4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&"); -/* 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_Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PublishNewsletter_vue_vue_type_template_id_930f83a6___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!./PublishNewsletter.vue?vue&type=template&id=930f83a6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&"); +/* 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_PublishNewsletter_vue_vue_type_template_id_930f83a6___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_Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); +/* 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_PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); @@ -86271,6 +86875,93 @@ __webpack_require__.r(__webpack_exports__); +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue": +/*!******************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.vue ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& */ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&"); +/* harmony import */ var _Step1WriteNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Step1WriteNewsletter.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& */ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3__["default"])( + _Step1WriteNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__["render"], + _Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/components/Publish/Step1WriteNewsletter.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.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_Step1WriteNewsletter_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!./Step1WriteNewsletter.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.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_Step1WriteNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&": +/*!***************************************************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&"); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&": +/*!*************************************************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& ***! + \*************************************************************************************************/ +/*! 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_Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___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!./Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&"); +/* 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_Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___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_Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + /***/ }), /***/ "./resources/js/components/Publish/Step2PrepareMail.vue": diff --git a/public/js/app.js b/public/js/app.js index 27a4e1c..ab5e9d4 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -7776,10 +7776,10 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.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/Publish.vue?vue&type=script&lang=js& ***! - \**************************************************************************************************************************************************************************/ +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.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/PublishLetter.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -7889,6 +7889,110 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.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/PublishNewsletter.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 vue_stepper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-stepper */ "./node_modules/vue-stepper/src/index.js"); +/* harmony import */ var vue_stepper__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_stepper__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _Step1WriteNewsletter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Step1WriteNewsletter */ "./resources/js/components/Publish/Step1WriteNewsletter.vue"); +/* harmony import */ var _Step3Send__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Step3Send */ "./resources/js/components/Publish/Step3Send.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/** + * Step 1 : Upload PDF and preview (add title, tags) + * Step 2 : Add email subject and content + * Step 3 : Review, send and track + */ + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + HorizontalStepper: vue_stepper__WEBPACK_IMPORTED_MODULE_0___default.a + }, + data: function data() { + return { + steps: [{ + icon: 'mail', + name: 'email', + title: 'Mise en forme du message', + subtitle: '', + component: _Step1WriteNewsletter__WEBPACK_IMPORTED_MODULE_1__["default"], + completed: false + }, { + icon: 'send', + name: 'review', + title: 'Récapitulatif et envoi', + subtitle: 'Suivi des envois', + component: _Step3Send__WEBPACK_IMPORTED_MODULE_2__["default"], + completed: false + }] + }; + }, + mounted: function mounted() {}, + methods: { + // Executed when @completed-step event is triggered + completeStep: function completeStep(payload) { + this.steps.forEach(function (step) { + if (step.name === payload.name) { + step.completed = true; + } + }); + }, + // Executed when @active-step event is triggered + isStepActive: function isStepActive(payload) { + this.steps.forEach(function (step) { + if (step.name === payload.name) { + if (step.completed === true) { + step.completed = false; + } + } + }); + }, + // Executed when @stepper-finished event is triggered + alert: function (_alert) { + function alert(_x) { + return _alert.apply(this, arguments); + } + + alert.toString = function () { + return _alert.toString(); + }; + + return alert; + }(function (payload) { + alert('end'); + }) + } +}); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1UploadFile.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/Step1UploadFile.vue?vue&type=script&lang=js& ***! @@ -8155,6 +8259,131 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.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/Step1WriteNewsletter.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 _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ckeditor/ckeditor5-build-classic */ "./node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js"); +/* harmony import */ var _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: {}, + data: function data() { + return { + file: this.$root.publishState.file, + editor: _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0___default.a, + recipient_group: null, + recipient_groups: [], + email: { + content: "\n

Bonjour %recipient.name%,

\n ", + subject: '', + type: 2, + link: "" + }, + csrf: document.querySelectorAll('meta[name="csrf-token"]')[0].content, + editorConfig: {} + }; + }, + watch: { + email: { + deep: true, + handler: function handler(val, old) { + if (val.editorData !== '' && val.subject !== '') { + this.$root.publishState.email = val; + this.$emit('can-continue', { + value: true + }); + } else { + this.$emit('can-continue', { + value: false + }); + } + }, + immediate: true + }, + recipient_group: function recipient_group(val, old) { + this.$root.publishState.recipient_group = val; + } + }, + methods: {}, + mounted: function mounted() { + var _this = this; + + this.$emit('can-continue', { + value: true + }); + axios.get('/publish/recipient-groups').then(function (d) { + return _this.recipient_groups = d.data; + }); + } +}); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step2PrepareMail.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/Step2PrepareMail.vue?vue&type=script&lang=js& ***! @@ -8221,6 +8450,7 @@ __webpack_require__.r(__webpack_exports__); // // // +// /* harmony default export */ __webpack_exports__["default"] = ({ components: {}, @@ -8230,7 +8460,8 @@ __webpack_require__.r(__webpack_exports__); editor: _ckeditor_ckeditor5_build_classic__WEBPACK_IMPORTED_MODULE_0___default.a, email: { content: "\n

Bonjour %recipient.name%,

\n

Voici la nouvelle \xE9dition du jour !

\n ", - subject: "[".concat(this.$root.publishState.file.title, "] ") + subject: "[".concat(this.$root.publishState.file.title, "] "), + type: 1 }, csrf: document.querySelectorAll('meta[name="csrf-token"]')[0].content, editorConfig: {} @@ -8359,7 +8590,7 @@ __webpack_require__.r(__webpack_exports__); }, data: function data() { return { - file: this.$root.publishState.file, + email: this.$root.publishState.email, recipients_count: 0, status: 'En attente', counters: { @@ -8430,9 +8661,13 @@ __webpack_require__.r(__webpack_exports__); mounted: function mounted() { var _this2 = this; - axios.get('publish/recipients').then(function (d) { - return _this2.recipients_count = d.data.data; - }); + if (this.$root.publishState.recipient_group === undefined) { + axios.get('publish/recipients').then(function (d) { + return _this2.recipients_count = d.data.data; + }); + } else { + this.recipients_count = this.$root.publishState.recipient_group.count; + } } }); @@ -15243,6 +15478,24 @@ exports.push([module.i, "\n.repeater[data-v-26de7527] {\n margin-left: -18px; module.exports = exports; +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--7-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Imports +var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +exports = ___CSS_LOADER_API_IMPORT___(false); +// Module +exports.push([module.i, "\n.ck-editor__editable {\n min-height: 500px;\n}\n\n", ""]); +// Exports +module.exports = exports; + + /***/ }), /***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step2PrepareMail.vue?vue&type=style&index=0&lang=css&": @@ -78149,6 +78402,37 @@ var exported = content.locals ? content.locals : {}; +module.exports = exported; + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js??ref--7-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var api = __webpack_require__(/*! ../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); + var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& */ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&"); + + content = content.__esModule ? content.default : content; + + if (typeof content === 'string') { + content = [[module.i, content, '']]; + } + +var options = {}; + +options.insert = "head"; +options.singleton = false; + +var update = api(content, options); + +var exported = content.locals ? content.locals : {}; + + + module.exports = exported; /***/ }), @@ -79707,10 +79991,10 @@ render._withStripped = true /***/ }), -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&": -/*!******************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4& ***! - \******************************************************************************************************************************************************************************************************************/ +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a& ***! + \************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -79744,6 +80028,45 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! 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", + [ + _c("h1", { staticClass: "mb-6" }, [_vm._v("Envoyer une newsletter")]), + _vm._v(" "), + _c("horizontal-stepper", { + attrs: { steps: _vm.steps }, + on: { + "completed-step": _vm.completeStep, + "active-step": _vm.isStepActive, + "stepper-finished": _vm.alert + } + }) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1UploadFile.vue?vue&type=template&id=26de7527&scoped=true&": @@ -79917,7 +80240,7 @@ var render = function() { "post-action": "/publish/upload-file", multiple: false, drop: true, - "drop-directory": true, + "drop-directory": false, headers: { "X-CSRF-TOKEN": _vm.csrf }, @@ -80125,6 +80448,211 @@ render._withStripped = true +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& ***! + \*******************************************************************************************************************************************************************************************************************************/ +/*! 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", { staticClass: "stepper-step" }, [ + _c("div", [ + _c("div", [ + _c("div", { staticClass: "form-group" }, [ + _c("label", { attrs: { for: "recipients" } }, [ + _vm._v("Destinataires") + ]), + _vm._v(" "), + _c( + "select", + { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.recipient_group, + expression: "recipient_group" + } + ], + staticClass: "form-control", + attrs: { name: "recipients", id: "recipients" }, + 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.recipient_group = $event.target.multiple + ? $$selectedVal + : $$selectedVal[0] + } + } + }, + [ + _vm.recipient_groups.count === 0 + ? _c( + "option", + { attrs: { value: "-1", selected: "seleted" } }, + [_vm._v("Chargement en cours...")] + ) + : _vm._e(), + _vm._v(" "), + _vm._l(_vm.recipient_groups, function(recipient) { + return _c("option", { domProps: { value: recipient } }, [ + _vm._v(_vm._s(recipient.text)) + ]) + }) + ], + 2 + ) + ]), + _vm._v(" "), + _c("div", { staticClass: "form-group" }, [ + _c("label", { attrs: { for: "subject" } }, [_vm._v("Sujet")]), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.email.subject, + expression: "email.subject" + } + ], + staticClass: "form-control", + attrs: { + type: "text", + id: "subject", + placeholder: "Découvrez notre nouveau podcast !" + }, + domProps: { value: _vm.email.subject }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.$set(_vm.email, "subject", $event.target.value) + } + } + }) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "form-group" }, + [ + _c("label", { attrs: { for: "content" } }, [_vm._v("Contenu")]), + _vm._v(" "), + _c("ckeditor", { + attrs: { + editor: _vm.editor, + config: _vm.editorConfig, + id: "content" + }, + model: { + value: _vm.email.content, + callback: function($$v) { + _vm.$set(_vm.email, "content", $$v) + }, + expression: "email.content" + } + }) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "form-group" }, [ + _c("label", { attrs: { for: "subject" } }, [ + _vm._v("Lien principal") + ]), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.email.link, + expression: "email.link" + } + ], + staticClass: "form-control", + attrs: { + type: "text", + id: "link", + placeholder: "https://exemple.fr" + }, + domProps: { value: _vm.email.link }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.$set(_vm.email, "link", $event.target.value) + } + } + }) + ]) + ]) + ]), + _vm._v(" "), + _c( + "form", + { + attrs: { method: "post", action: "/publish/preview", target: "_blank" } + }, + [ + _c("input", { + attrs: { type: "hidden", name: "_token" }, + domProps: { value: _vm.csrf } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "subject" }, + domProps: { value: _vm.email.subject } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "type" }, + domProps: { value: _vm.email.type } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "content" }, + domProps: { value: _vm.email.content } + }), + _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "link" }, + domProps: { value: _vm.email.link } + }), + _vm._v(" "), + _c("input", { + staticClass: "btn btn-primary", + attrs: { type: "submit", value: "Prévisualiser l'email" } + }) + ] + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + /***/ }), /***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step2PrepareMail.vue?vue&type=template&id=5a14ddba&": @@ -80236,6 +80764,11 @@ var render = function() { domProps: { value: _vm.email.subject } }), _vm._v(" "), + _c("input", { + attrs: { type: "hidden", name: "type" }, + domProps: { value: _vm.email.type } + }), + _vm._v(" "), _c("input", { attrs: { type: "hidden", name: "content" }, domProps: { value: _vm.email.content } @@ -80279,7 +80812,7 @@ var render = function() { return _c("div", { staticClass: "stepper-step" }, [ _c("div", { staticClass: "mb-3" }, [ _c("h3", { staticClass: "text-center" }, [ - _vm._v("\n " + _vm._s(_vm.file.title) + "\n ") + _vm._v("\n " + _vm._s(_vm.email.subject) + "\n ") ]) ]), _vm._v(" "), @@ -95595,8 +96128,10 @@ var map = { "./components/Home/cover.vue": "./resources/js/components/Home/cover.vue", "./components/LiveStats.vue": "./resources/js/components/LiveStats.vue", "./components/Publish/HeadlineRepeater.vue": "./resources/js/components/Publish/HeadlineRepeater.vue", - "./components/Publish/Publish.vue": "./resources/js/components/Publish/Publish.vue", + "./components/Publish/PublishLetter.vue": "./resources/js/components/Publish/PublishLetter.vue", + "./components/Publish/PublishNewsletter.vue": "./resources/js/components/Publish/PublishNewsletter.vue", "./components/Publish/Step1UploadFile.vue": "./resources/js/components/Publish/Step1UploadFile.vue", + "./components/Publish/Step1WriteNewsletter.vue": "./resources/js/components/Publish/Step1WriteNewsletter.vue", "./components/Publish/Step2PrepareMail.vue": "./resources/js/components/Publish/Step2PrepareMail.vue", "./components/Publish/Step3Send.vue": "./resources/js/components/Publish/Step3Send.vue", "./components/Stats/EmailStatistics.vue": "./resources/js/components/Stats/EmailStatistics.vue", @@ -95697,7 +96232,9 @@ var app = new Vue({ }, email: { subject: "", - content: "" + content: "", + link: "", + type: 0 } } } @@ -96277,17 +96814,17 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/***/ "./resources/js/components/Publish/Publish.vue": -/*!*****************************************************!*\ - !*** ./resources/js/components/Publish/Publish.vue ***! - \*****************************************************/ +/***/ "./resources/js/components/Publish/PublishLetter.vue": +/*!***********************************************************!*\ + !*** ./resources/js/components/Publish/PublishLetter.vue ***! + \***********************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Publish.vue?vue&type=template&id=6a7b0cd4& */ "./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&"); -/* harmony import */ var _Publish_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Publish.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/Publish.vue?vue&type=script&lang=js&"); +/* harmony import */ var _PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PublishLetter.vue?vue&type=template&id=280ded1a& */ "./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&"); +/* harmony import */ var _PublishLetter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PublishLetter.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/PublishLetter.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"); @@ -96297,9 +96834,9 @@ __webpack_require__.r(__webpack_exports__); /* normalize component */ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _Publish_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["render"], - _Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + _PublishLetter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__["render"], + _PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], false, null, null, @@ -96309,38 +96846,107 @@ var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_ /* hot reload */ if (false) { var api; } -component.options.__file = "resources/js/components/Publish/Publish.vue" +component.options.__file = "resources/js/components/Publish/PublishLetter.vue" /* harmony default export */ __webpack_exports__["default"] = (component.exports); /***/ }), -/***/ "./resources/js/components/Publish/Publish.vue?vue&type=script&lang=js&": -/*!******************************************************************************!*\ - !*** ./resources/js/components/Publish/Publish.vue?vue&type=script&lang=js& ***! - \******************************************************************************/ +/***/ "./resources/js/components/Publish/PublishLetter.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishLetter.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_Publish_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!./Publish.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.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_Publish_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_PublishLetter_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!./PublishLetter.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.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_PublishLetter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); /***/ }), -/***/ "./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&": -/*!************************************************************************************!*\ - !*** ./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4& ***! - \************************************************************************************/ +/***/ "./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&": +/*!******************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a& ***! + \******************************************************************************************/ +/*! 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_PublishLetter_vue_vue_type_template_id_280ded1a___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!./PublishLetter.vue?vue&type=template&id=280ded1a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishLetter.vue?vue&type=template&id=280ded1a&"); +/* 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_PublishLetter_vue_vue_type_template_id_280ded1a___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_PublishLetter_vue_vue_type_template_id_280ded1a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./resources/js/components/Publish/PublishNewsletter.vue": +/*!***************************************************************!*\ + !*** ./resources/js/components/Publish/PublishNewsletter.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PublishNewsletter.vue?vue&type=template&id=930f83a6& */ "./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&"); +/* harmony import */ var _PublishNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PublishNewsletter.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/PublishNewsletter.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"])( + _PublishNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__["render"], + _PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/components/Publish/PublishNewsletter.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./resources/js/components/Publish/PublishNewsletter.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishNewsletter.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_PublishNewsletter_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!./PublishNewsletter.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.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_PublishNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&": +/*!**********************************************************************************************!*\ + !*** ./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6& ***! + \**********************************************************************************************/ /*! 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_Publish_vue_vue_type_template_id_6a7b0cd4___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!./Publish.vue?vue&type=template&id=6a7b0cd4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Publish.vue?vue&type=template&id=6a7b0cd4&"); -/* 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_Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_PublishNewsletter_vue_vue_type_template_id_930f83a6___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!./PublishNewsletter.vue?vue&type=template&id=930f83a6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/PublishNewsletter.vue?vue&type=template&id=930f83a6&"); +/* 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_PublishNewsletter_vue_vue_type_template_id_930f83a6___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_Publish_vue_vue_type_template_id_6a7b0cd4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); +/* 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_PublishNewsletter_vue_vue_type_template_id_930f83a6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); @@ -96431,6 +97037,93 @@ __webpack_require__.r(__webpack_exports__); +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue": +/*!******************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.vue ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& */ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&"); +/* harmony import */ var _Step1WriteNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Step1WriteNewsletter.vue?vue&type=script&lang=js& */ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& */ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __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_3__["default"])( + _Step1WriteNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__["render"], + _Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "resources/js/components/Publish/Step1WriteNewsletter.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.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_Step1WriteNewsletter_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!./Step1WriteNewsletter.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.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_Step1WriteNewsletter_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&": +/*!***************************************************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& ***! + \***************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js??ref--7-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-2!../../../../node_modules/vue-loader/lib??vue-loader-options!./Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css& */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=style&index=0&lang=css&"); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_ref_7_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_2_node_modules_vue_loader_lib_index_js_vue_loader_options_Step1WriteNewsletter_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&": +/*!*************************************************************************************************!*\ + !*** ./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& ***! + \*************************************************************************************************/ +/*! 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_Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___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!./Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./resources/js/components/Publish/Step1WriteNewsletter.vue?vue&type=template&id=3f3afc44&"); +/* 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_Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___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_Step1WriteNewsletter_vue_vue_type_template_id_3f3afc44___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + /***/ }), /***/ "./resources/js/components/Publish/Step2PrepareMail.vue": diff --git a/resources/js/app.js b/resources/js/app.js index 47fb0e5..c70b81e 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -54,6 +54,8 @@ const app = new Vue({ email:{ subject: "", content: "", + link: "", + type: 0, } }, } diff --git a/resources/js/components/Publish/Publish.vue b/resources/js/components/Publish/Publish.vue deleted file mode 100644 index 418a67b..0000000 --- a/resources/js/components/Publish/Publish.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - - diff --git a/resources/js/components/Publish/PublishLetter.vue b/resources/js/components/Publish/PublishLetter.vue new file mode 100644 index 0000000..418a67b --- /dev/null +++ b/resources/js/components/Publish/PublishLetter.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/resources/js/components/Publish/PublishNewsletter.vue b/resources/js/components/Publish/PublishNewsletter.vue new file mode 100644 index 0000000..87542a6 --- /dev/null +++ b/resources/js/components/Publish/PublishNewsletter.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/resources/js/components/Publish/Step1UploadFile.vue b/resources/js/components/Publish/Step1UploadFile.vue index 344c5b2..6e774b2 100644 --- a/resources/js/components/Publish/Step1UploadFile.vue +++ b/resources/js/components/Publish/Step1UploadFile.vue @@ -40,7 +40,7 @@ @input-file="inputFile" :multiple="false" :drop="true" - :drop-directory="true" + :drop-directory="false" v-model="files" :headers="{ 'X-CSRF-TOKEN': csrf diff --git a/resources/js/components/Publish/Step1WriteNewsletter.vue b/resources/js/components/Publish/Step1WriteNewsletter.vue new file mode 100644 index 0000000..a872f7a --- /dev/null +++ b/resources/js/components/Publish/Step1WriteNewsletter.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/resources/js/components/Publish/Step2PrepareMail.vue b/resources/js/components/Publish/Step2PrepareMail.vue index 2129884..6acedaf 100644 --- a/resources/js/components/Publish/Step2PrepareMail.vue +++ b/resources/js/components/Publish/Step2PrepareMail.vue @@ -33,6 +33,7 @@ target="_blank"> + @@ -70,7 +71,8 @@

Bonjour %recipient.name%,

Voici la nouvelle édition du jour !

`, - subject: `[${this.$root.publishState.file.title}] ` + subject: `[${this.$root.publishState.file.title}] `, + type: 1 }, csrf: document.querySelectorAll('meta[name="csrf-token"]')[0].content, editorConfig: { diff --git a/resources/js/components/Publish/Step3Send.vue b/resources/js/components/Publish/Step3Send.vue index 07dad6c..9ae969a 100644 --- a/resources/js/components/Publish/Step3Send.vue +++ b/resources/js/components/Publish/Step3Send.vue @@ -4,7 +4,7 @@

- {{file.title}} + {{email.subject}}

@@ -84,7 +84,7 @@ }, data() { return { - file: this.$root.publishState.file, + email: this.$root.publishState.email, recipients_count: 0, status: 'En attente', counters : { @@ -166,7 +166,11 @@ }, mounted() { - axios.get('publish/recipients').then(d => this.recipients_count = d.data.data) + if(this.$root.publishState.recipient_group === undefined){ + axios.get('publish/recipients').then(d => this.recipients_count = d.data.data) + } else { + this.recipients_count = this.$root.publishState.recipient_group.count; + } } } diff --git a/resources/views/admin/publish/publish-letter.blade.php b/resources/views/admin/publish/publish-letter.blade.php new file mode 100644 index 0000000..066064d --- /dev/null +++ b/resources/views/admin/publish/publish-letter.blade.php @@ -0,0 +1,10 @@ +@extends('admin.layouts.free') + + +@section('content') +
+
+ +
+
+@endsection diff --git a/resources/views/admin/publish/publish-newsletter.blade.php b/resources/views/admin/publish/publish-newsletter.blade.php new file mode 100644 index 0000000..81aaf26 --- /dev/null +++ b/resources/views/admin/publish/publish-newsletter.blade.php @@ -0,0 +1,10 @@ +@extends('admin.layouts.free') + + +@section('content') +
+
+ +
+
+@endsection diff --git a/resources/views/admin/publish/publish.blade.php b/resources/views/admin/publish/publish.blade.php deleted file mode 100644 index e9cedbd..0000000 --- a/resources/views/admin/publish/publish.blade.php +++ /dev/null @@ -1,10 +0,0 @@ -@extends('admin.layouts.free') - - -@section('content') -
-
- -
-
-@endsection diff --git a/resources/views/emails/batch-pdf.blade.php b/resources/views/emails/batch-pdf.blade.php new file mode 100644 index 0000000..7ef2bc1 --- /dev/null +++ b/resources/views/emails/batch-pdf.blade.php @@ -0,0 +1,15 @@ +@component('mail::message') + +# L’ÉDITION DU JOUR + +## {{$subject}} + +{!! $content !!} + +@component('mail::button', ['url' => $link ?? '%recipient.file_url%', 'color' => 'primary']) +Cliquez ici pour lire ! +@endcomponent + + +@endcomponent + diff --git a/resources/views/emails/batch.blade.php b/resources/views/emails/batch.blade.php deleted file mode 100644 index 7ef2bc1..0000000 --- a/resources/views/emails/batch.blade.php +++ /dev/null @@ -1,15 +0,0 @@ -@component('mail::message') - -# L’ÉDITION DU JOUR - -## {{$subject}} - -{!! $content !!} - -@component('mail::button', ['url' => $link ?? '%recipient.file_url%', 'color' => 'primary']) -Cliquez ici pour lire ! -@endcomponent - - -@endcomponent - diff --git a/resources/views/emails/newsletter.blade.php b/resources/views/emails/newsletter.blade.php new file mode 100644 index 0000000..ed4792e --- /dev/null +++ b/resources/views/emails/newsletter.blade.php @@ -0,0 +1,14 @@ +@component('mail::message') + + +{!! $content !!} + +@unless($link === null) +@component('mail::button', ['url' => $link , 'color' => 'primary']) +Cliquez ici +@endcomponent +@endunless + + +@endcomponent + diff --git a/resources/views/podcasts/index.blade.php b/resources/views/podcasts/index.blade.php index 6233abe..ca2768a 100644 --- a/resources/views/podcasts/index.blade.php +++ b/resources/views/podcasts/index.blade.php @@ -59,7 +59,7 @@
-
+

Nos rubriques du mois

diff --git a/routes/admin.php b/routes/admin.php index afdd22d..9c31dea 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -25,7 +25,7 @@ Route::prefix('other-content')->group(function () { /** Publishing and mass sending process */ Route::prefix('publish')->group(function() { - Route::get('', 'PublishController@index')->name('publish'); + Route::get('', 'PublishController@letter')->name('publish.letter'); Route::post('', 'PublishController@publish'); Route::post('upload-file', 'PublishController@uploadFile'); @@ -35,6 +35,15 @@ Route::prefix('publish')->group(function() { Route::get('tags', 'PublishController@tags'); Route::get('recipients', 'PublishController@recipientsCount'); + Route::get('recipient-groups', 'PublishController@sendGroupList'); + + Route::prefix('newsletter')->group(function(){ + Route::get('/', 'PublishController@newsletter')->name('publish.newsletter'); + + + + }); + }); Route::prefix('statistics')->group(function () {