2013-09-23 19:30:44 +00:00
< ? php
2018-07-12 10:40:10 +00:00
if ( ! defined ( 'sugarEntry' ) || ! sugarEntry ) {
die ( 'Not A Valid Entry Point' );
}
2013-09-23 19:30:44 +00:00
2018-08-01 19:14:25 +00:00
/**
*
2013-09-23 19:30:44 +00:00
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM , Inc . Copyright ( C ) 2004 - 2013 SugarCRM Inc .
2018-08-01 19:14:25 +00:00
*
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd .
* Copyright ( C ) 2011 - 2018 SalesAgility Ltd .
2014-07-07 15:33:23 +00:00
*
2013-09-23 19:30:44 +00:00
* This program is free software ; you can redistribute it and / or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7 ( a ) : FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM , SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS .
2014-07-07 15:33:23 +00:00
*
2013-09-23 19:30:44 +00:00
* This program is distributed in the hope that it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or FITNESS
2018-08-01 19:14:25 +00:00
* FOR A PARTICULAR PURPOSE . See the GNU Affero General Public License for more
2013-09-23 19:30:44 +00:00
* details .
2014-07-07 15:33:23 +00:00
*
2013-09-23 19:30:44 +00:00
* You should have received a copy of the GNU Affero General Public License along with
* this program ; if not , see http :// www . gnu . org / licenses or write to the Free
* Software Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston , MA
* 02110 - 1301 USA .
2014-07-07 15:33:23 +00:00
*
2013-09-23 19:30:44 +00:00
* You can contact SugarCRM , Inc . headquarters at 10050 North Wolfe Road ,
* SW2 - 130 , Cupertino , CA 95014 , USA . or at email address contact @ sugarcrm . com .
2014-07-07 15:33:23 +00:00
*
2013-09-23 19:30:44 +00:00
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices , as required under
* Section 5 of the GNU Affero General Public License version 3.
2014-07-07 15:33:23 +00:00
*
2013-09-23 19:30:44 +00:00
* In accordance with Section 7 ( b ) of the GNU Affero General Public License version 3 ,
* these Appropriate Legal Notices must retain the display of the " Powered by
2014-07-07 15:33:23 +00:00
* SugarCRM " logo and " Supercharged by SuiteCRM " logo. If the display of the logos is not
2018-08-01 19:14:25 +00:00
* reasonably feasible for technical reasons , the Appropriate Legal Notices must
* display the words " Powered by SugarCRM " and " Supercharged by SuiteCRM " .
*/
2013-09-23 19:30:44 +00:00
require_once ( 'include/connectors/sources/SourceFactory.php' );
class ViewDisplayProperties extends ViewList
{
2018-07-12 10:40:10 +00:00
/**
2018-07-19 10:46:21 +00:00
* @ see SugarView :: process ()
*/
2018-07-12 10:40:10 +00:00
public function process ()
{
$this -> options [ 'show_all' ] = false ;
$this -> options [ 'show_javascript' ] = true ;
$this -> options [ 'show_footer' ] = false ;
$this -> options [ 'show_header' ] = false ;
parent :: process ();
}
2013-09-23 19:30:44 +00:00
/**
2018-07-19 10:46:21 +00:00
* @ see SugarView :: display ()
*/
2018-07-12 10:40:10 +00:00
public function display ()
{
require_once ( 'include/connectors/utils/ConnectorUtils.php' );
$source = $_REQUEST [ 'source_id' ];
2013-09-23 19:30:44 +00:00
$sources = ConnectorUtils :: getConnectors ();
$modules_sources = ConnectorUtils :: getDisplayConfig ();
2018-07-12 10:40:10 +00:00
$enabled_modules = array ();
$disabled_modules = array ();
//Find all modules this source has been enabled for
foreach ( $modules_sources as $module => $mapping ) {
foreach ( $modules_sources [ $module ] as $entry ) {
if ( $entry == $source ) {
$enabled_modules [ $module ] = isset ( $GLOBALS [ 'app_list_strings' ][ 'moduleList' ][ $module ]) ? $GLOBALS [ 'app_list_strings' ][ 'moduleList' ][ $module ] : $module ;
}
}
}
global $moduleList , $beanList ;
//Do filtering here?
$count = 0 ;
global $current_user ;
$access = $current_user -> getDeveloperModules ();
$d = dir ( 'modules' );
while ( $e = $d -> read ()) {
if ( substr ( $e , 0 , 1 ) == '.' || ! is_dir ( 'modules/' . $e )) {
continue ;
}
if ( empty ( $enabled_modules [ $e ]) && file_exists ( 'modules/' . $e . '/metadata/studio.php' ) && file_exists ( 'modules/' . $e . '/metadata/detailviewdefs.php' ) && isset ( $GLOBALS [ 'beanList' ][ $e ]) && ( in_array ( $e , $access ) || is_admin ( $current_user ))) { // installed modules must also exist in the beanList
$disabled_modules [ $e ] = isset ( $GLOBALS [ 'app_list_strings' ][ 'moduleList' ][ $e ]) ? $GLOBALS [ 'app_list_strings' ][ 'moduleList' ][ $e ] : $e ;
}
}
2013-09-23 19:30:44 +00:00
$s = SourceFactory :: getSource ( $source );
// Not all sources can be connected to all modules
$enabled_modules = $s -> filterAllowedModules ( $enabled_modules );
$disabled_modules = $s -> filterAllowedModules ( $disabled_modules );
2018-07-12 10:40:10 +00:00
asort ( $enabled_modules );
asort ( $disabled_modules );
2013-09-23 19:30:44 +00:00
2018-07-12 10:40:10 +00:00
//$enabled = $json->encode($enabled_modules);
//$disabled = $json->encode($disabled_modules);
//$script = "addTable('{$module}', '{$enabled}', '{$disabled}', '{$source}', '{$GLOBALS['theme']}');\n";
//$this->ss->assign('new_modules_sources', $modules_sources);
//$this->ss->assign('dynamic_script', $script);
2013-09-23 19:30:44 +00:00
2018-07-12 10:40:10 +00:00
$this -> ss -> assign ( 'enabled_modules' , $enabled_modules );
$this -> ss -> assign ( 'disabled_modules' , $disabled_modules );
$this -> ss -> assign ( 'source_id' , $source );
$this -> ss -> assign ( 'mod' , $GLOBALS [ 'mod_strings' ]);
$this -> ss -> assign ( 'APP' , $GLOBALS [ 'app_strings' ]);
$this -> ss -> assign ( 'theme' , $GLOBALS [ 'theme' ]);
$this -> ss -> assign ( 'external' , ! empty ( $sources [ $source ][ 'eapm' ]));
$this -> ss -> assign ( 'externalOnly' , ! empty ( $sources [ $source ][ 'eapm' ][ 'only' ]));
2013-09-23 19:30:44 +00:00
// We don't want to tell the user to set the properties of the connector if there aren't any
$fields = $s -> getRequiredConfigFields ();
2018-07-12 10:40:10 +00:00
$this -> ss -> assign ( 'externalHasProperties' , ! empty ( $fields ));
2013-09-23 19:30:44 +00:00
2018-07-12 10:40:10 +00:00
$this -> ss -> assign ( 'externalChecked' , ! empty ( $sources [ $source ][ 'eapm' ][ 'enabled' ]) ? " checked " : " " );
echo $this -> ss -> fetch ( $this -> getCustomFilePathIfExists ( 'modules/Connectors/tpls/display_properties.tpl' ));
2013-09-23 19:30:44 +00:00
}
2018-07-19 10:38:01 +00:00
}