예제 #1
0
 public function getSelectableDashboard()
 {
     global $log;
     $log->debug("Entering Settings_WidgetsManagement_Module_Model::getSelectableDashboard() method ...");
     $db = PearDatabase::getInstance();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $sql = 'SELECT * FROM vtiger_links WHERE linktype = ?';
     $params = array('DASHBOARDWIDGET');
     $result = $db->pquery($sql, $params);
     $widgets = array();
     for ($i = 0; $i < $db->num_rows($result); $i++) {
         $row = $db->query_result_rowdata($result, $i);
         $moduleName = Vtiger_Functions::getModuleName($row['tabid']);
         if ($moduleName != 'Home' && ($row['linklabel'] == 'Mini List' || $row['linklabel'] == 'Notebook')) {
             continue;
         }
         if ($row['linklabel'] == 'Tag Cloud') {
             $isTagCloudExists = getTagCloudView($currentUser->getId());
             if ($isTagCloudExists == 'false') {
                 continue;
             }
         }
         $moduleName = Vtiger_Functions::getModuleName($row['tabid']);
         $widgets[$moduleName][] = Vtiger_Widget_Model::getInstanceFromValues($row);
     }
     $log->debug("Exiting Settings_WidgetsManagement_Module_Model::getSelectableDashboard() method ...");
     return $widgets;
 }
예제 #2
0
 /**
  * Function returns List of User's selected Dashboard Widgets
  * @return <Array of Vtiger_Widget_Model>
  */
 public function getDashboards()
 {
     $db = PearDatabase::getInstance();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $moduleModel = $this->getModule();
     $sql = " SELECT vtiger_links.*, vtiger_module_dashboard_widgets.userid, vtiger_module_dashboard_widgets.id as widgetid, vtiger_module_dashboard_widgets.position as position, vtiger_links.linkid as id FROM vtiger_links " . " INNER JOIN vtiger_module_dashboard_widgets ON vtiger_links.linkid=vtiger_module_dashboard_widgets.linkid" . " WHERE (vtiger_module_dashboard_widgets.userid = ? AND linktype = ? AND tabid = ?)";
     $params = array($currentUser->getId(), 'DASHBOARDWIDGET', $moduleModel->getId());
     $result = $db->pquery($sql, $params);
     $widgets = array();
     for ($i = 0, $len = $db->num_rows($result); $i < $len; $i++) {
         $row = $db->query_result_rowdata($result, $i);
         $row['linkid'] = $row['id'];
         $widgets[] = Vtiger_Widget_Model::getInstanceFromValues($row);
     }
     foreach ($widgets as $index => $widget) {
         $label = $widget->get('linklabel');
         if ($label == 'Tag Cloud') {
             $isTagCloudExists = getTagCloudView($currentUser->getId());
             if ($isTagCloudExists === 'false') {
                 unset($widgets[$index]);
             }
         }
     }
     return $widgets;
 }
예제 #3
0
 /**
  * Function to get the default widgets
  * @return <array> - array of Widget models
  */
 public function getDefaultWidgets()
 {
     $moduleModel = $this->getModule();
     $parentWidgets = parent::getDefaultWidgets();
     $widgets[] = array('contentType' => 'json', 'title' => 'Countries to be verified', 'mode' => 'open', 'url' => 'module=' . $moduleModel->getName() . '&view=ShowWidget&mode=getTbvCountries');
     foreach ($widgets as $widget) {
         $widgetList[] = Vtiger_Widget_Model::getInstanceFromValues($widget);
     }
     return $widgetList;
 }
예제 #4
0
 /**
  * Function to get the default widgets
  * @return <array> - array of Widget models
  */
 public function getDefaultWidgets()
 {
     $moduleModel = $this->getModule();
     $parentWidgets = parent::getDefaultWidgets();
     $widgets[] = array('contentType' => 'json', 'title' => 'Opportunity By Sales Stage', 'mode' => 'open', 'url' => 'module=' . $moduleModel->getName() . '&view=ShowWidget&mode=getPotentialsCountBySalesStage');
     foreach ($widgets as $widget) {
         $widgetList[] = Vtiger_Widget_Model::getInstanceFromValues($widget);
     }
     return $widgetList;
 }
예제 #5
0
 /**
  * Function returns List of User's selected Dashboard Widgets
  * @return <Array of Vtiger_Widget_Model>
  */
 public function getDashboards($action = 1)
 {
     $db = PearDatabase::getInstance();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $moduleModel = $this->getModule();
     if ($action == 'Header') {
         $action = 0;
     }
     $sql = " SELECT vtiger_links.*, mdw.userid, mdw.data, mdw.active,  mdw.title, mdw.filterid, mdw.id as widgetid, mdw.position as position, vtiger_links.linkid as id \n\t\t\tFROM vtiger_links \n\t\t\tINNER JOIN vtiger_module_dashboard_widgets mdw ON vtiger_links.linkid = mdw.linkid\n\t\t\tWHERE mdw.userid = ? AND linktype = ? AND tabid = ? AND `active` = ?";
     $params = array($currentUser->getId(), 'DASHBOARDWIDGET', $moduleModel->getId(), $action);
     $result = $db->pquery($sql, $params);
     $widgets = array();
     for ($i = 0, $len = $db->num_rows($result); $i < $len; $i++) {
         $row = $db->query_result_rowdata($result, $i);
         $row['linkid'] = $row['id'];
         if ($row['linklabel'] == 'Mini List') {
             $minilistWidget = Vtiger_Widget_Model::getInstanceFromValues($row);
             $minilistWidgetModel = new Vtiger_MiniList_Model();
             $minilistWidgetModel->setWidgetModel($minilistWidget);
             $minilistWidget->set('title', $minilistWidgetModel->getTitle());
             $widgets[] = $minilistWidget;
         } else {
             $widgets[] = Vtiger_Widget_Model::getInstanceFromValues($row);
         }
     }
     foreach ($widgets as $index => $widget) {
         $label = $widget->get('linklabel');
         $url = $widget->get('linkurl');
         $redex = '/module=(.+?)&+/';
         preg_match($redex, $url, $match);
         if (isPermitted($match[1], 'Index') == 'no') {
             unset($widgets[$index]);
         }
         if ($label == 'Tag Cloud') {
             $isTagCloudExists = getTagCloudView($currentUser->getId());
             if ($isTagCloudExists === 'false') {
                 unset($widgets[$index]);
             }
         }
     }
     return $widgets;
 }
예제 #6
0
 /**
  * Function returns List of User's selected Dashboard Widgets
  * @return <Array of Vtiger_Widget_Model>
  */
 public function getDashboards($action = 1)
 {
     $db = PearDatabase::getInstance();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $currentUserPrivilegeModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
     $moduleModel = $this->getModule();
     if ($action == 'Header') {
         $action = 0;
     }
     $sql = " SELECT vtiger_links.*, mdw.userid, mdw.data, mdw.active, mdw.title, mdw.size, mdw.filterid, mdw.id as widgetid, mdw.position as position, vtiger_links.linkid as id, mdw.limit, mdw.owners \n\t\t\tFROM vtiger_links \n\t\t\tINNER JOIN vtiger_module_dashboard_widgets mdw ON vtiger_links.linkid = mdw.linkid\n\t\t\tWHERE mdw.userid = ? AND linktype = ? AND tabid = ? AND `active` = ?";
     $params = array($currentUser->getId(), 'DASHBOARDWIDGET', $moduleModel->getId(), $action);
     $result = $db->pquery($sql, $params);
     $widgets = array();
     for ($i = 0, $len = $db->num_rows($result); $i < $len; $i++) {
         $row = $db->query_result_rowdata($result, $i);
         $row['linkid'] = $row['id'];
         if ($row['linklabel'] == 'Mini List') {
             $minilistWidget = Vtiger_Widget_Model::getInstanceFromValues($row);
             $minilistWidgetModel = new Vtiger_MiniList_Model();
             $minilistWidgetModel->setWidgetModel($minilistWidget);
             $minilistWidget->set('title', $minilistWidgetModel->getTitle());
             $widgets[] = $minilistWidget;
         } else {
             $widgets[] = Vtiger_Widget_Model::getInstanceFromValues($row);
         }
     }
     foreach ($widgets as $index => $widget) {
         $label = $widget->get('linklabel');
         $url = $widget->get('linkurl');
         $data = $widget->get('data');
         $filterid = $widget->get('filterid');
         $module = $this->getModuleNameFromLink($url, $label);
         if ($module == 'Home' && !empty($filterid) && !empty($data)) {
             $filterData = Zend_Json::decode(htmlspecialchars_decode($data));
             $module = $filterData['module'];
         }
         if (!$currentUserPrivilegeModel->hasModulePermission(getTabid($module))) {
             unset($widgets[$index]);
         }
     }
     return $widgets;
 }
예제 #7
0
	/**
	 * Gets all id widgets for the module
	 * @param String $moduleName
	 * @return Array
	 * */
	public function getDashboardForModule($moduleName)
	{
		$log = vglobal('log');
		$log->debug("Entering Settings_WidgetsManagement_Module_Model::getDashboardForModule(" . $moduleName . ") method ...");
		$adb = PearDatabase::getInstance();
		$tabId = getTabid($moduleName);
		$data = array();

		//$data = self::getBlocksId();

		$query = 'SELECT 
				  mdw.blockid,
				  mdw.data,
				  mdw.title,
				  mdw.filterid,
				  mdw.id,
				  mdw.size,
				  mdw.limit,
				  mdw.isdefault,
				  mdw.owners,
				  `vtiger_links`.*,
				  `mdb`.`authorized`
				FROM
				  `vtiger_module_dashboard` AS mdw 
				  INNER JOIN `vtiger_links` 
					ON `mdw`.`linkid` = `vtiger_links`.`linkid` 
				  INNER JOIN `vtiger_module_dashboard_blocks` AS mdb 
					ON (`mdw`.`blockid` = `mdb`.`id` AND `vtiger_links`.`tabid` = `mdb`.`tabid`)
				WHERE `vtiger_links`.`tabid` = ?';
		$params = array($tabId);
		$result = $adb->pquery($query, $params);
		$num = $adb->num_rows($result);
		$userId = '';
		$blockId = '';
		for ($i = 0; $i < $num; $i++) {
			$row = $adb->query_result_rowdata($result, $i);
			if ($row['linklabel'] == 'Mini List') {
				$minilistWidget = Vtiger_Widget_Model::getInstanceFromValues($row);
				$minilistWidgetModel = new Vtiger_MiniList_Model();
				$minilistWidgetModel->setWidgetModel($minilistWidget);
				$minilistWidget->set('title', $minilistWidgetModel->getTitle());
				$data[$row['blockid']][$i] = $minilistWidget;
			} else
				$data[$row['blockid']][$i] = Vtiger_Widget_Model::getInstanceFromValues($row);
		}
		$log->debug("Exiting Settings_WidgetsManagement_Module_Model::getDashboardForModule() method ...");
		return $data;
	}
예제 #8
0
    public static function getInstanceWithWidgetId($widgetId, $userId)
    {
        $db = PearDatabase::getInstance();
        $result = $db->pquery('SELECT * FROM vtiger_module_dashboard_widgets
			INNER JOIN vtiger_links ON vtiger_links.linkid = vtiger_module_dashboard_widgets.linkid
			WHERE linktype = ? AND vtiger_module_dashboard_widgets.id = ? AND userid = ?', array('DASHBOARDWIDGET', $widgetId, $userId));
        $self = new self();
        if ($db->num_rows($result)) {
            $row = $db->query_result_rowdata($result, 0);
            if ($row['linklabel'] == 'Mini List') {
                $minilistWidget = Vtiger_Widget_Model::getInstanceFromValues($row);
                $minilistWidgetModel = new Vtiger_MiniList_Model();
                $minilistWidgetModel->setWidgetModel($minilistWidget);
                $row['title'] = $minilistWidgetModel->getTitle();
            }
            $self->setData($row);
        }
        return $self;
    }