Commit 3ade173c by Vladislav

#19461 Страница настройки целевых аккаунтов.

1 parent 93ef4562
......@@ -83,7 +83,7 @@ class TokensController extends Controller
return Redirect::back()->with('success', 'Token updated.');
}
public function managedCampaign(Tokens $token, $campaign_id, $managed)
public function managedCampaign(Tokens $token, $campaign_id)
{
if (!$token->isMain()) {
return Redirect::back();
......@@ -96,13 +96,13 @@ class TokensController extends Controller
}
$campaign->update([
'manage' => !!request('manage'),
'manage' => !!request('managed'),
]);
return Redirect::back()->with('success', 'Campaign ' . ($managed ? 'added' : 'deleted') . '.');
return Redirect::back()->with('success', 'Campaign ' . ($campaign->manage ? 'added' : 'deleted') . '.');
}
public function enabledCampaign(Tokens $token, $campaign_id, $enabled)
public function enabledCampaign(Tokens $token, $campaign_id)
{
if (!$token->isMain()) {
return Redirect::back();
......@@ -118,7 +118,7 @@ class TokensController extends Controller
'enabled' => !!request('enabled'),
]);
return Redirect::back()->with('success', 'Campaign ' . ($enabled ? 'enabled' : 'disabled') . '.');
return Redirect::back()->with('success', 'Campaign ' . ($campaign->enabled ? 'enabled' : 'disabled') . '.');
}
public function destroy(Tokens $token)
......@@ -153,7 +153,7 @@ class TokensController extends Controller
return Redirect::back();
}
$token->cities()->syncWithoutDetaching($city);
$city->token()->associate($token->getKey());
return Redirect::route('token.edit', $token->getKey())->with('success', 'City added.');
}
......@@ -164,7 +164,13 @@ class TokensController extends Controller
return Redirect::back();
}
$token->cities()->updateExistingPivot($city, [
$city = $token->cities()->find($city);
if (!$city) {
return Redirect::back();
}
$city->update([
'updated' => !!request('updated'),
]);
......@@ -190,7 +196,7 @@ class TokensController extends Controller
return Redirect::back();
}
$token->cities()->detach($city);
$city->token()->associate(null);
return Redirect::route('token.edit', $token->getKey())->with('success', 'City deleted.');
}
......
......@@ -8,6 +8,15 @@ class Dictionary extends Model
{
CONST CITY = 'City';
protected $casts = [
'update' => 'boolean',
];
public function token()
{
return $this->belongsTo(Tokens::class, 'token_id');
}
public function scopeDefaultOrderBy(Builder $query)
{
return $query->orderBy('name');
......
<?php
namespace App\Models\Pivots;
use Illuminate\Database\Eloquent\Relations\Pivot;
class TokenDictionaryPivot extends Pivot
{
protected $casts = [
'token_id' => 'int',
'dictionary_id' => 'int',
'updated' => 'boolean',
];
}
......@@ -30,21 +30,20 @@ class Tokens extends Model
public function limits()
{
return $this->hasMany(Limits::class, 'token', 'id')->orderBy('updated_at', 'DESC');
return $this->hasMany(Limits::class, 'token', 'id')
->orderBy('updated_at', 'DESC');
}
public function campaigns()
{
return $this->hasMany(Campaigns::class, 'token', 'id')->orderBy('updated_at', 'DESC');
return $this->hasMany(Campaigns::class, 'token', 'id')
->orderBy('updated_at', 'DESC');
}
public function cities()
{
return $this->belongsToMany(Dictionary::class, 'token_dictionaries', 'token_id', 'dictionary_id')
->using(TokenDictionaryPivot::class)
->withPivot('updated')
->withTimestamps()
->orderBy('token_dictionaries.created_at', 'desc');
return $this->hasMany(Dictionary::class, 'token_id', 'id')
->orderBy('updated_at', 'DESC');
}
public function campaignsForManaged()
......
......@@ -19,7 +19,11 @@ class CreateDictionariesTable extends Migration
$table->bigInteger('parent_id')->nullable();
$table->string('name', 255);
$table->string('type', 255);
$table->bigInteger('token_id')->nullable();
$table->boolean('update')->default(1);
$table->timestamps();
$table->foreign('token_id')->references('id')->on('tokens');
});
}
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTokenDictionaries extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('token_dictionaries', function (Blueprint $table) {
$table->id();
$table->bigInteger('token_id');
$table->bigInteger('dictionary_id');
$table->boolean('updated')->default(1);
$table->timestamps();
$table->foreign('token_id')->references('id')->on('tokens');
$table->foreign('dictionary_id')->references('id')->on('dictionaries');
$table->unique(['token_id', 'dictionary_id']);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('token_dictionaries');
}
}
<template>
<div>
<h2 class="mt-12 font-bold text-2xl">Campaigns</h2>
<div class="mt-4 flex flex-wrap">
<form v-if="campaigns.length" @submit.prevent="add(campaign_id)" class="flex flex-wrap">
<div v-if="campaigns.length" class="mt-4 flex flex-wrap">
<select-input v-model="campaign_id"
:readonly="campaign_id"
class="pr-6"
......@@ -11,14 +11,15 @@
{{ campaign.name }}
</option>
</select-input>
<loading-button class="btn-indigo hover:underline pl-6"
<button class="btn-indigo hover:underline pl-6"
tabindex="-1"
type="submit"
type="button"
@click="add"
>
Add
</loading-button>
</form>
</button>
</div>
<div class="mt-4 flex flex-wrap">
</div>
<div class="mt-6 bg-white rounded shadow overflow-x-auto">
......@@ -81,14 +82,14 @@
},
methods: {
add(campaign_id) {
if (!campaign_id) {
add() {
if (!this.campaign_id) {
return;
}
this.$emit('add', campaign_id)
this.$emit('add', this.campaign_id)
},
enabled(campaign_id) {
this.$emit('enabled', campaign_id)
enabled(campaign_id, enabled) {
this.$emit('enabled', campaign_id, enabled)
},
delete(campaign_id) {
this.$emit('delete', campaign_id)
......
......@@ -127,12 +127,12 @@ export default {
},
campaignEnabled(campaign_id, enabled) {
this.$inertia.post(this.route('token.campaign.enabled', [this.token.id, campaign_id]), {
updated: enabled ? 1 : 0,
enabled: enabled ? 1 : 0,
});
},
campaignManaged(campaign_id, managed) {
this.$inertia.post(this.route('token.campaign.managed', [this.token.id, campaign_id]), {
updated: managed ? 1 : 0,
managed: managed ? 1 : 0,
});
},
campaignDelete(campaign_id) {
......
......@@ -173,7 +173,7 @@ Route::delete('token/delete/{token}', [TokensController::class, 'destroy'])
->name('token.destroy')
->middleware('auth');
Route::post('token/campaigns/managed/{token}/{campaign_id}/{managed}', [TokensController::class, 'managedCampaign'])
Route::post('token/campaigns/managed/{token}/{campaign_id}', [TokensController::class, 'managedCampaign'])
->name('token.campaign.managed')
->middleware('auth');
Route::post('token/campaigns/enabled/{token}/{campaign_id}', [TokensController::class, 'enabledCampaign'])
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!