Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[5.x] Separate globals config and content #411

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open
Next Next commit
Drop origin column from global_set_variables column
  • Loading branch information
duncanmcclean committed Mar 18, 2025
commit 9e54292348412c811a14be4db947cbe2bec55b62
Original file line number Diff line number Diff line change
@@ -12,7 +12,6 @@ public function up()
$table->id();
$table->string('handle')->index();
$table->string('locale')->nullable();
$table->string('origin')->nullable();
$table->jsonb('data');
$table->timestamps();
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Statamic\Eloquent\Database\BaseMigration as Migration;

return new class extends Migration {
public function up()
{
Schema::table($this->prefix('global_set_variables'), function (Blueprint $table) {
$table->dropColumn('origin');
});
}

public function down()
{
Schema::table($this->prefix('global_set_variables'), function (Blueprint $table) {
$table->string('origin')->nullable();
});
}
};
11 changes: 0 additions & 11 deletions src/Globals/Variables.php
Original file line number Diff line number Diff line change
@@ -16,7 +16,6 @@ public static function fromModel(Model $model)
->globalSet($model->handle)
->locale($model->locale)
->data($model->data)
->origin($model->origin ?? null)
->model($model);
}

@@ -31,24 +30,14 @@ public static function makeModelFromContract(Contract $source)

$data = $source->data();

if ($source->hasOrigin()) {
$data = $source->origin()->data()->merge($data);
}

return $class::firstOrNew([
'handle' => $source->globalSet()->handle(),
'locale' => $source->locale,
])->fill([
'data' => $data,
'origin' => $source->hasOrigin() ? $source->origin()->locale() : null,
]);
}

protected function getOriginByString($origin)
{
return $this->globalSet()->in($origin);
}

public function save()
{
$this->toModel()->save();
1 change: 1 addition & 0 deletions src/ServiceProvider.php
Original file line number Diff line number Diff line change
@@ -57,6 +57,7 @@ class ServiceProvider extends AddonServiceProvider
\Statamic\Eloquent\Updates\RelateFormSubmissionsByHandle::class,
\Statamic\Eloquent\Updates\DropStatusOnEntries::class,
\Statamic\Eloquent\Updates\ChangeFormSubmissionsIdType::class,
\Statamic\Eloquent\Updates\DropOriginOnGlobalSetVariables::class,
];

public function boot()
24 changes: 24 additions & 0 deletions src/Updates/DropOriginOnGlobalSetVariables.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace Statamic\Eloquent\Updates;

use Statamic\UpdateScripts\UpdateScript;

class DropOriginOnGlobalSetVariables extends UpdateScript
{
public function shouldUpdate($newVersion, $oldVersion)
{
return $this->isUpdatingTo('5.0.0');
}

public function update()
{
$source = __DIR__.'/../../database/migrations/updates/drop_origin_on_global_set_variables.php.stub';
$dest = database_path('migrations/'.date('Y_m_d_His').'_drop_origin_on_global_set_variables.php');

$this->files->copy($source, $dest);

$this->console()->info('Migrations created');
$this->console()->comment('Remember to run `php artisan migrate` to apply it to your database.');
}
}