Commit 9e533b12e79fb12f6df40df12a942a5801337202
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,6 +175,58 @@ class User extends KTEntity { | ||
| 175 | KTUtil::setSystemSetting($this->_getDashboardStateKey(), $mValue); | 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 | function &get($iId) { | 230 | function &get($iId) { |
| 179 | return KTEntityUtil::get('User', $iId); | 231 | return KTEntityUtil::get('User', $iId); |
| 180 | } | 232 | } |