- 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 have a change folder icon values set the folder icon
if ($request->type === 'folder' && $request->filled('icon')) { if ($request->type === 'folder' && $request->filled('emoji')) {
Editor::set_folder_icon($request, $id);
Editor::set_folder_icon($request->folder_icon, $id);
} }
// Rename Item // Rename Item

View File

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

View File

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

View File

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