first commit
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled

This commit is contained in:
2025-04-23 00:14:33 +06:00
commit 356f56eebd
197 changed files with 21536 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Livewire\Actions;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
class Logout
{
/**
* Log the current user out of the application.
*/
public function __invoke()
{
Auth::guard('web')->logout();
Session::invalidate();
Session::regenerateToken();
return redirect('/');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Livewire;
use Livewire\Component;
class ApprovalWorkflow extends Component
{
public function render()
{
return view('livewire.approval-workflow');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Livewire;
use Livewire\Component;
class CommentSystem extends Component
{
public function render()
{
return view('livewire.comment-system');
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Livewire;
use Livewire\Component;
class DocumentBrowser extends Component
{
public function render()
{
return view('livewire.document-browser');
}
}

View File

@@ -0,0 +1,55 @@
<?php
namespace App\Livewire\Folder;
use Livewire\Component;
use App\Models\Folder;
class CreateModal extends Component
{
public $project;
public $parentFolder;
public $folderName = '';
public $showModal = false;
protected $listeners = [
'openCreateFolderModal' => 'openForRoot',
'openCreateSubfolderModal' => 'openForParent'
];
public function openForRoot($projectId)
{
$this->project = Project::find($projectId);
$this->parentFolder = null;
$this->showModal = true;
}
public function openForParent($parentFolderId)
{
$this->parentFolder = Folder::find($parentFolderId);
$this->project = $this->parentFolder->project;
$this->showModal = true;
}
public function createFolder()
{
$this->validate([
'folderName' => 'required|max:255|unique:folders,name'
]);
Folder::create([
'name' => $this->folderName,
'project_id' => $this->project->id,
'parent_id' => $this->parentFolder?->id
]);
$this->reset(['folderName', 'showModal']);
$this->emit('folderCreated');
}
public function render()
{
return view('livewire.folder.create-modal');
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Livewire;
use Livewire\Component;
use App\Models\Project;
use App\Models\Folder;
use App\Models\Document;
class ProjectShow extends Component
{
public Project $project;
public $selectedFolderId = null;
public $expandedFolders = [];
public function mount(Project $project)
{
$this->project = $project->load('rootFolders');
}
public function selectFolder($folderId)
{
$this->selectedFolderId = $folderId;
}
public function toggleFolder($folderId)
{
if (in_array($folderId, $this->expandedFolders)) {
$this->expandedFolders = array_diff($this->expandedFolders, [$folderId]);
} else {
$this->expandedFolders[] = $folderId;
}
}
public function getDocumentsProperty()
{
return Document::where('folder_id', $this->selectedFolderId)
->where('project_id', $this->project->id)
->with('versions')
->get();
}
public function render()
{
return view('livewire.project-show', [
'rootFolders' => $this->project->rootFolders
]);
}
}