/** * Store and retrieve user custom dashboards * * @copyright Copyright (C) 2010-2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 */ require_once(APPROOT.'/core/dbobject.class.php'); /** * This class is used to store, in a persistent manner, a dashboard edited by a user */ class UserDashboard extends DBObject { public static function Init() { $aParams = [ "category" => "gui", "key_type" => "autoincrement", "name_attcode" => ['user_id', 'menu_code'], "state_attcode" => "", "reconc_keys" => [], "db_table" => "priv_app_dashboards", "db_key_field" => "id", "db_finalclass_field" => "", ]; MetaModel::Init_Params($aParams); MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", ["targetclass" => "User", "allowed_values" => null, "sql" => "user_id", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeString("menu_code", ["allowed_values" => null, "sql" => "menu_code", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); MetaModel::Init_AddAttribute(new AttributeText("contents", ["allowed_values" => null, "sql" => "contents", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); MetaModel::Init_SetZListItems('default_search', [ 0 => 'user_id', 1 => 'menu_code', ]); MetaModel::Init_SetZListItems('list', [ 0 => 'user_id', 1 => 'menu_code', ]); } /** * Overloading this function here to secure a fix done right before the release * The real fix should be to implement this verb in DBObject */ public function DBDeleteTracked(CMDBChange $oChange, $bSkipStrongSecurity = null, &$oDeletionPlan = null) { $this->DBDelete($oDeletionPlan); } }