use App\Http\Middleware\CheckIfAdmin;
use App\Http\Middleware\VerifyCsrfToken;
+use App\Jobs\WebflowPublish;
use App\Models\ToolWebflow;
use App\Services\Webflow;
use Illuminate\Support\Facades\Route;
+use Prologue\Alerts\Facades\Alert;
trait WebflowOperation
{
Webflow::setToken($wf->webflow_api_token);
return response()->json($wf->getEditableData());
});
+
+ Route::match(['get'], 'webflow/{id}/deploytoprod', function ($id) {
+ if (!can('webflow:write')) {
+ abort(401);
+ }
+ WebflowPublish::dispatch($id, 'production');
+ Alert::add('success', __('Le déploiement en production a été lancé. Vous recevrez une notification lorsqu\'il sera terminé.'))->flash();
+ return redirect(backpack_url('tool-webflow/' . $id . '/edit'));
+ });
}
}
use App\SubForms\Webflow\SEOPage;
use Cubist\Azure\Translate\Api;
use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple;
+use Cubist\Backpack\Magic\Fields\Button;
use Cubist\Backpack\Magic\Fields\Checkbox;
use Cubist\Backpack\Magic\Fields\Code;
use Cubist\Backpack\Magic\Fields\Hidden;
$sites[$k] = $item['label'];
}
$this->addField('upload', SelectFromArray::class, __('Uploader sur'), ['translatable' => false, 'options' => $sites, 'tab' => __('Paramètres')]);
+ $this->addField('action_deploy_prod', LinkButton::class, __('Déployer en production'), ['value' => backpack_url('webflow/$id/deploytoprod'), 'translatable' => false, 'tab' => __('Paramètres')]);
$this->addField('js', Code::class, __('Javascript complémentaire'), ['translatable' => false, 'language' => 'js', 'tab' => __('Code'), 'hint' => __('Code ajouté à toutes les pages')]);
$this->addField('css', Code::class, __('CSS complémentaire'), ['translatable' => false, 'language' => 'css', 'tab' => __('Code'), 'hint' => __('Code ajouté à toutes les pages')]);
$this->addField('texts', WebflowTexts::class, '', ['tab' => __('Textes'), 'translatable' => true, 'hint' => __('Modifier un texte ici ne produira aucun changement sur webflow')]);