- emoji refactoring

This commit is contained in:
Peter Papp
2021-02-27 09:44:43 +01:00
parent f38b265ba7
commit 92962aac17
5 changed files with 59 additions and 30 deletions

View File

@@ -116,9 +116,8 @@ class EditItemsController extends Controller
}
// If request have a change folder icon values set the folder icon
if ($request->type === 'folder' && $request->filled('icon')) {
Editor::set_folder_icon($request->folder_icon, $id);
if ($request->type === 'folder' && $request->filled('emoji')) {
Editor::set_folder_icon($request, $id);
}
// Rename Item

View File

@@ -29,40 +29,37 @@ class Editor
/**
* Store folder icon
*
* @param $icon
* @param $unique_id
* @param $shared
* @param $request
* @param $id
*/
public static function set_folder_icon($icon, $unique_id, $shared = null)
public static function set_folder_icon($request, $id)
{
$user_id = is_null($shared) ? Auth::id() : $shared->user_id;
// Get folder
$folder = Folder::where('user_id', $user_id)
->where('unique_id', $unique_id)
->first();
$folder = Folder::find($id);
// Set default folder icon
if ($icon === 'default') {
$folder->icon_emoji = null;
$folder->icon_color = null;
if ($request->emoji === 'default') {
$folder->update([
'emoji' => null,
'color' => null,
]);
}
// If request have emoji set folder icon emoji
if (isset($icon['emoji'])) {
$folder->icon_emoji = $icon['emoji'];
$folder->icon_color = null;
// Set emoji
if ($request->filled('emoji')) {
$folder->update([
'emoji' => $request->emoji,
'color' => null,
]);
}
// If request have color set folder icon color
if (isset($icon['color'])) {
$folder->icon_emoji = null;
$folder->icon_color = $icon['color'];
// Set color
if ($request->filled('color')) {
$folder->update([
'emoji' => null,
'color' => $request->color,
]);
}
// Save changes
$folder->save();
}
/**

View File

@@ -23,7 +23,7 @@ class Folder extends Model
];
protected $casts = [
'icon_emoji' => 'object',
'emoji' => 'array',
];
/**

View File

@@ -19,7 +19,7 @@ class CreateFileManagerFolders extends Migration
$table->uuid('parent_id')->nullable();
$table->text('name');
$table->string('color')->nullable();
$table->string('emoji')->nullable();
$table->longText('emoji')->nullable();
$table->enum('user_scope', ['master', 'editor', 'visitor'])->default('master');
$table->softDeletes();
$table->timestamps();

View File

@@ -78,9 +78,42 @@ class FolderTest extends TestCase
]);
}
public function it_set_folder_emoji()
/**
* @test
*/
public function it_set_folder_icon()
{
$folder = Folder::factory(Folder::class)
->create();
$user = User::factory(User::class)
->create();
Sanctum::actingAs($user);
// TODO: pridat do api skupiny
$this->patchJson("/api/rename/{$folder->id}", [
'name' => 'Renamed Folder',
'type' => 'folder',
'emoji' => [
'category' => 'Smileys & Emotion (face-smiling)',
'char' => '😁',
'name' => 'beaming face with smiling eyes',
]
])
->assertStatus(200)
->assertJsonFragment([
'name' => 'Renamed Folder',
'emoji' => [
'category' => 'Smileys & Emotion (face-smiling)',
'char' => '😁',
'name' => 'beaming face with smiling eyes',
]
]);
$this->assertDatabaseMissing('folders', [
'emoji' => null
]);
}
public function it_set_folder_color()