Commit 9e533b12e79fb12f6df40df12a942a5801337202

Authored by Conrad Vermeulen
1 parent f8a06109

Fix for dashlet state on dashboard.

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@6132 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 52 additions and 0 deletions
lib/users/User.inc
... ... @@ -175,6 +175,58 @@ class User extends KTEntity {
175 175 KTUtil::setSystemSetting($this->_getDashboardStateKey(), $mValue);
176 176 }
177 177  
  178 + function refreshDashboadState()
  179 + {
  180 + require_once(KT_DIR . "/thirdparty/pear/JSON.php");
  181 +
  182 + $dashletRegistry = & KTDashletRegistry::getSingleton();
  183 +
  184 + $aDashlets = $dashletRegistry->getDashlets($this);
  185 +
  186 + $oJSON = new Services_JSON();
  187 +
  188 + $state = $this->getDashboardState();
  189 + $dashlets = $oJSON->decode($state);
  190 + $mergedlist = array_merge($dashlets->left,$dashlets->right);
  191 +
  192 +
  193 + $knownlist = array();
  194 + foreach($mergedlist as $dashlet)
  195 + {
  196 + array_push($knownlist,$dashlet->id);
  197 + }
  198 + $update=false;
  199 +
  200 + if (!isset($dashlets->left)) $dashlets->left=array();
  201 + if (!isset($dashlets->right)) $dashlets->right=array();
  202 +
  203 + $column=1;
  204 + foreach($aDashlets as $dashlet)
  205 + {
  206 + $class = get_class($dashlet);
  207 + $column=($column + 1) %2;
  208 + if (!in_array($class,$knownlist))
  209 + {
  210 + $obj = new stdClass();
  211 + $obj->id=$class;
  212 + $obj->state=0;
  213 +
  214 + if ($column == 0)
  215 + array_push($dashlets->left,$obj);
  216 + else
  217 + array_push($dashlets->right,$obj);
  218 + $update=true;
  219 + }
  220 + }
  221 +
  222 + if ($update)
  223 + {
  224 + $state = $oJSON->encode($dashlets);
  225 + $this->setDashboardState($state);
  226 + }
  227 + }
  228 +
  229 +
178 230 function &get($iId) {
179 231 return KTEntityUtil::get('User', $iId);
180 232 }
... ...