| Server IP : 108.167.142.43 / Your IP : 216.73.216.223 Web Server : Apache System : Linux gator4174.hostgator.com 5.14.0-687.39.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Aug 18 06:09:16 EDT 2026 x86_64 User : delarice ( 2406) PHP Version : 8.3.36 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home2/delarice/public_html/wp-content/plugins/templately/modules/workspaces/ |
Upload File : |
<?php
/**
* Workspaces module (spec 030-workspaces).
*
* Collaborative workspaces: CRUD, sharing/membership, browsing, the workspace
* switcher, and workspace-scoped file operations (add/delete). Relocated
* verbatim from includes/API/WorkSpaces.php — behavior byte-identical (same
* routes, params, permission logic).
*
* SCOPE NOTE: copy/move of a personal-cloud file into a workspace, and
* delete/download of a personal-cloud file, are served by modules/my-cloud's
* (spec 028) endpoints — this module does not duplicate that surface (see
* spec.md's Ownership & Artifacts section). The genuinely-shared UI consumed
* by both this module and modules/my-cloud (CloudsLayout, Actions,
* ViewButtons, ContextMenu, CloudFileName, CloudSidebar, the multi-source
* Add-File/CopyMove/DeleteFile modals, and the mixed clouds+workspace redux
* actions/saga files) intentionally stays in react-src/ rather than being
* force-owned by either module. See this module's assets/js/CLAUDE.md and
* data-model.md's "Module Home" section for the full boundary reasoning.
*
* @package Templately
*/
namespace Templately\Modules\Workspaces;
use Templately\Core\Module_Base;
use Templately\Modules\Workspaces\REST\WorkSpaces;
class Module extends Module_Base {
public function get_name(): string {
return 'workspaces';
}
public function register_rest_routes(): void {
WorkSpaces::get_instance()->register_routes();
}
}