Refactor project structure
This commit is contained in:
55
core/src/Projects/Admin/Api/ProjectsAdminManager.php
Normal file
55
core/src/Projects/Admin/Api/ProjectsAdminManager.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 5:56 PM
|
||||
*/
|
||||
|
||||
namespace Projects\Admin\Api;
|
||||
|
||||
use Classes\AbstractModuleManager;
|
||||
use Classes\UIManager;
|
||||
use Projects\Common\Model\Project;
|
||||
|
||||
class ProjectsAdminManager extends AbstractModuleManager
|
||||
{
|
||||
|
||||
public function initializeUserClasses()
|
||||
{
|
||||
}
|
||||
|
||||
public function initializeFieldMappings()
|
||||
{
|
||||
}
|
||||
|
||||
public function initializeDatabaseErrorMappings()
|
||||
{
|
||||
$this->addDatabaseErrorMapping("key 'EmployeeProjectsKey'", "Employee already added to this project");
|
||||
}
|
||||
|
||||
public function setupModuleClassDefinitions()
|
||||
{
|
||||
|
||||
$this->addModelClass('Client');
|
||||
$this->addModelClass('Project');
|
||||
}
|
||||
|
||||
public function getDashboardItemData()
|
||||
{
|
||||
$data = array();
|
||||
$project = new Project();
|
||||
$data['numberOfProjects'] = $project->Count("status = 'Active'");
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function initQuickAccessMenu()
|
||||
{
|
||||
UIManager::getInstance()->addQuickAccessMenuItem(
|
||||
"Manage Client/Projects",
|
||||
"fa-list-alt",
|
||||
CLIENT_BASE_URL."?g=admin&n=projects&m=admin_Admin",
|
||||
array("Admin","Manager")
|
||||
);
|
||||
}
|
||||
}
|
||||
30
core/src/Projects/Common/Model/Client.php
Normal file
30
core/src/Projects/Common/Model/Client.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 5:53 PM
|
||||
*/
|
||||
|
||||
namespace Projects\Common\Model;
|
||||
|
||||
use Model\BaseModel;
|
||||
|
||||
class Client extends BaseModel
|
||||
{
|
||||
public $table = 'Clients';
|
||||
public function getAdminAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getManagerAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getUserAccess()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
||||
53
core/src/Projects/Common/Model/EmployeeProject.php
Normal file
53
core/src/Projects/Common/Model/EmployeeProject.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 5:58 PM
|
||||
*/
|
||||
|
||||
namespace Projects\Common\Model;
|
||||
|
||||
use Classes\IceResponse;
|
||||
use Model\BaseModel;
|
||||
|
||||
class EmployeeProject extends BaseModel
|
||||
{
|
||||
public $table = 'EmployeeProjects';
|
||||
|
||||
public function getAdminAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getManagerAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getUserAccess()
|
||||
{
|
||||
return array("get");
|
||||
}
|
||||
|
||||
public function getUserOnlyMeAccess()
|
||||
{
|
||||
return array("element","save","delete");
|
||||
}
|
||||
|
||||
public function executePreSaveActions($obj)
|
||||
{
|
||||
if (empty($obj->status)) {
|
||||
$obj->status = "Current";
|
||||
}
|
||||
return new IceResponse(IceResponse::SUCCESS, $obj);
|
||||
}
|
||||
|
||||
public function executePreUpdateActions($obj)
|
||||
{
|
||||
if (empty($obj->status)) {
|
||||
$obj->status = "Current";
|
||||
}
|
||||
return new IceResponse(IceResponse::SUCCESS, $obj);
|
||||
}
|
||||
}
|
||||
85
core/src/Projects/Common/Model/Project.php
Normal file
85
core/src/Projects/Common/Model/Project.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 5:54 PM
|
||||
*/
|
||||
|
||||
namespace Projects\Common\Model;
|
||||
|
||||
use Classes\BaseService;
|
||||
use Classes\SettingsManager;
|
||||
use Model\BaseModel;
|
||||
|
||||
class Project extends BaseModel
|
||||
{
|
||||
public $table = 'Projects';
|
||||
public function getAdminAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getManagerAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getUserAccess()
|
||||
{
|
||||
return array("get","element");
|
||||
}
|
||||
|
||||
public function getAllProjects()
|
||||
{
|
||||
$employeeProjects = [];
|
||||
$project = new Project();
|
||||
$projects = $project->Find("status = ?", 'Active');
|
||||
foreach ($projects as $project) {
|
||||
$client = new Client();
|
||||
$client->Load("id = ?", array($project->client));
|
||||
|
||||
$project->name = $project->name." (".$client->name.")";
|
||||
$employeeProjects[] = $project;
|
||||
}
|
||||
return $employeeProjects;
|
||||
}
|
||||
|
||||
public function getEmployeeProjects()
|
||||
{
|
||||
$allowAllProjects = SettingsManager::getInstance()->getSetting(
|
||||
"Projects: Make All Projects Available to Employees"
|
||||
);
|
||||
$employeeProjects = array();
|
||||
if ($allowAllProjects == 0) {
|
||||
$employeeProjectsTemp = new EmployeeProject();
|
||||
$employeeProjectsTemp = $employeeProjectsTemp->Find(
|
||||
"employee = ?",
|
||||
array(BaseService::getInstance()->getCurrentProfileId())
|
||||
);
|
||||
foreach ($employeeProjectsTemp as $p) {
|
||||
$project = new Project();
|
||||
$project->Load("id = ?", array($p->project));
|
||||
if ($project->status == 'Active') {
|
||||
$client = new Client();
|
||||
$client->Load("id = ?", array($project->client));
|
||||
|
||||
$project->name = $project->name." (".$client->name.")";
|
||||
$employeeProjects[] = $project;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$project = new Project();
|
||||
$projects = $project->Find("status = ?", array('Active'));
|
||||
foreach ($projects as $project) {
|
||||
$client = new Client();
|
||||
$client->Load("id = ?", array($project->client));
|
||||
|
||||
$project->name = $project->name." (".$client->name.")";
|
||||
$employeeProjects[] = $project;
|
||||
}
|
||||
}
|
||||
|
||||
return $employeeProjects;
|
||||
}
|
||||
}
|
||||
36
core/src/Projects/User/Api/ProjectsModulesManager.php
Normal file
36
core/src/Projects/User/Api/ProjectsModulesManager.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 6:03 PM
|
||||
*/
|
||||
|
||||
namespace Projects\User\Api;
|
||||
|
||||
use Classes\AbstractModuleManager;
|
||||
|
||||
class ProjectsModulesManager extends AbstractModuleManager
|
||||
{
|
||||
|
||||
public function initializeUserClasses()
|
||||
{
|
||||
if (defined('MODULE_TYPE') && MODULE_TYPE != 'admin') {
|
||||
$this->addUserClass("EmployeeProject");
|
||||
}
|
||||
}
|
||||
|
||||
public function initializeFieldMappings()
|
||||
{
|
||||
}
|
||||
|
||||
public function initializeDatabaseErrorMappings()
|
||||
{
|
||||
}
|
||||
|
||||
public function setupModuleClassDefinitions()
|
||||
{
|
||||
|
||||
$this->addModelClass('EmployeeProject');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user