| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2018-04-07 15:55:28 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-26 14:47:03 -07:00
										 |  |  | header('Content-type: application/json'); | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-05 14:16:05 -05:00
										 |  |  | if (!Auth::check()) { | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |     $response = array( | 
					
						
							|  |  |  |         'status'  => 'error', | 
					
						
							|  |  |  |         'message' => 'Unauthenticated', | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |     echo _json_encode($response); | 
					
						
							|  |  |  |     exit; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  | $status  = 'error'; | 
					
						
							|  |  |  | $message = 'Error updating user dashboard config'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  | $data = json_decode($vars['data'], true); | 
					
						
							|  |  |  | $sub_type = $vars['sub_type']; | 
					
						
							|  |  |  | $widget_id = $vars['widget_id']; | 
					
						
							|  |  |  | $dasboard_id = $vars['dashboard_id']; | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-23 17:09:18 +01:00
										 |  |  | if ($sub_type == 'remove' && is_numeric($widget_id)) { | 
					
						
							| 
									
										
										
										
											2019-08-05 14:16:05 -05:00
										 |  |  |     if (dbFetchCell('select 1 from dashboards where (user_id = ? || access = 2) && dashboard_id = ?', array(Auth::id(),$dasboard_id)) == 1) { | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |         if ($widget_id == 0 || dbDelete('users_widgets', '`user_widget_id`=? AND `dashboard_id`=?', array($widget_id,$dasboard_id))) { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |             $status = 'ok'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |             $message = 'Widget ' . $widget_id . ' removed'; | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         $status = 'error'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |         $message = 'ERROR: You don\'t have write access.'; | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  | } elseif ($sub_type == 'remove-all') { | 
					
						
							| 
									
										
										
										
											2019-08-05 14:16:05 -05:00
										 |  |  |     if (dbFetchCell('select 1 from dashboards where (user_id = ? || access = 2) && dashboard_id = ?', array(Auth::id(),$dasboard_id)) == 1) { | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |         if (dbDelete('users_widgets', '`dashboard_id`=?', array($dasboard_id))) { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |             $status = 'ok'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |             $message = 'All widgets removed'; | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         $status = 'error'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |         $message = 'ERROR: You don\'t have write access.'; | 
					
						
							| 
									
										
										
										
											2015-07-23 21:27:33 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  | } elseif ($sub_type == 'add' && is_numeric($widget_id)) { | 
					
						
							| 
									
										
										
										
											2019-08-05 14:16:05 -05:00
										 |  |  |     if (dbFetchCell('select 1 from dashboards where (user_id = ? || access = 2) && dashboard_id = ?', array(Auth::id(),$dasboard_id)) == 1) { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         $widget = dbFetchRow('SELECT * FROM `widgets` WHERE `widget_id`=?', array($widget_id)); | 
					
						
							|  |  |  |         if (is_array($widget)) { | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |             list($x,$y) = explode(',', $widget['base_dimensions']); | 
					
						
							| 
									
										
										
										
											2019-08-05 14:16:05 -05:00
										 |  |  |             $item_id = dbInsert(array('user_id'=>Auth::id(),'widget_id'=>$widget_id, 'col'=>1,'row'=>1,'refresh'=>60,'title'=>$widget['widget_title'],'size_x'=>$x,'size_y'=>$y,'settings'=>'','dashboard_id'=>$dasboard_id), 'users_widgets'); | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |             if (is_numeric($item_id)) { | 
					
						
							|  |  |  |                 $extra = array('user_widget_id'=>$item_id,'widget_id'=>$item_id,'title'=>$widget['widget_title'],'widget'=>$widget['widget'],'refresh'=>60,'size_x'=>$x,'size_y'=>$y); | 
					
						
							|  |  |  |                 $status = 'ok'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |                 $message = 'Widget ' . $widget['widget_title'] . ' added'; | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         $status = 'error'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |         $message = 'ERROR: You don\'t have write access.'; | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  | } else { | 
					
						
							| 
									
										
										
										
											2019-08-05 14:16:05 -05:00
										 |  |  |     if (dbFetchCell('select 1 from dashboards where (user_id = ? || access = 2) && dashboard_id = ?', array(Auth::id(),$dasboard_id)) == 1) { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         $status = 'ok'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |         $message = 'Widgets updated'; | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         foreach ($data as $line) { | 
					
						
							|  |  |  |             if (is_array($line)) { | 
					
						
							|  |  |  |                 $update = array('col'=>$line['col'],'row'=>$line['row'],'size_x'=>$line['size_x'],'size_y'=>$line['size_y']); | 
					
						
							|  |  |  |                 dbUpdate($update, 'users_widgets', '`user_widget_id`=? AND `dashboard_id`=?', array($line['id'],$dasboard_id)); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-08-18 20:28:22 -05:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |         $status = 'error'; | 
					
						
							| 
									
										
										
										
											2018-09-20 19:21:38 +02:00
										 |  |  |         $message = 'ERROR: You don\'t have write access.'; | 
					
						
							| 
									
										
										
										
											2015-09-11 20:14:37 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-07-21 23:01:57 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $response = array( | 
					
						
							|  |  |  |     'status'        => $status, | 
					
						
							|  |  |  |     'message'       => $message, | 
					
						
							|  |  |  |     'extra'         => $extra, | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | echo _json_encode($response); |