Revize 1995
Přidáno uživatelem Michal Kliment před více než 11 roky(ů)
freenetis/branches/1.1/application/controllers/js.php | ||
---|---|---|
$this->address_point_gps();
|
||
}
|
||
|
||
private function _js_settings_system()
|
||
{
|
||
$modules = array();
|
||
|
||
foreach (Settings_Controller::$modules as $module => $module_info)
|
||
{
|
||
foreach ($module_info['dependencies'] as $dependency)
|
||
{
|
||
$value = $module_info['name'];
|
||
$key = Settings_Controller::$modules[$dependency]['name'];
|
||
|
||
if (!isset($modules[$key]))
|
||
$modules[$key] = array();
|
||
|
||
$modules[$key][] = $value;
|
||
}
|
||
}
|
||
|
||
$this->views['settings_system'] = View::factory('js/settings_system');
|
||
$this->views['settings_system']->modules = $modules;
|
||
}
|
||
|
||
private function _js_transfers_payment_calculator($account_id = NULL)
|
||
{
|
||
$member_id = NULL;
|
freenetis/branches/1.1/application/controllers/settings.php | ||
---|---|---|
{
|
||
|
||
private $links;
|
||
|
||
/**
|
||
* Definitions of modules and their dependencies
|
||
*
|
||
* @author Michal Kliment
|
||
* @var array
|
||
*/
|
||
public static $modules = array
|
||
(
|
||
'allowed_subnets' => array
|
||
(
|
||
'name' => 'allowed_subnets_enabled',
|
||
'dependencies' => array('redirection')
|
||
),
|
||
'approval' => array
|
||
(
|
||
'name' => 'approval_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'connection_request' => array
|
||
(
|
||
'name' => 'connection_request_enable',
|
||
'dependencies' => array('networks'),
|
||
),
|
||
'email' => array
|
||
(
|
||
'name' => 'email_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'finance' => array
|
||
(
|
||
'name' => 'finance_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'forgotten_password' => array
|
||
(
|
||
'name' => 'forgotten_password',
|
||
'dependencies' => array('email')
|
||
),
|
||
'membership_interrupt' => array
|
||
(
|
||
'name' => 'membership_interrupt_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'monitoring' => array
|
||
(
|
||
'name' => 'monitoring_enabled',
|
||
'dependencies' => array('networks')
|
||
),
|
||
'networks' => array
|
||
(
|
||
'name' => 'networks_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'phone_invoices' => array
|
||
(
|
||
'name' => 'users_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'qos' => array
|
||
(
|
||
'name' => 'qos_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'redirection' => array
|
||
(
|
||
'name' => 'redirection_enabled',
|
||
'dependencies' => array('networks')
|
||
),
|
||
'self_registration' => array
|
||
(
|
||
'name' => 'self_registration',
|
||
'dependencies' => array()
|
||
),
|
||
'sms' => array
|
||
(
|
||
'name' => 'sms_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'ulogd' => array
|
||
(
|
||
'name' => 'ulogd_enabled',
|
||
'dependencies' => array('networks')
|
||
),
|
||
'users' => array
|
||
(
|
||
'name' => 'users_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'voip' => array
|
||
(
|
||
'name' => 'voip_enabled',
|
||
'dependencies' => array()
|
||
),
|
||
'works' => array
|
||
(
|
||
'name' => 'works_enabled',
|
||
'dependencies' => array('approval')
|
||
),
|
||
);
|
||
|
||
/**
|
||
* Test whether module is enabled
|
||
*
|
||
* @author Michal Kliment
|
||
* @param type $module
|
||
* @return type
|
||
* @throws Exception
|
||
*/
|
||
private static function isModuleEnabled($module)
|
||
{
|
||
if (isset(self::$modules[$module]['name']))
|
||
return Settings::get(self::$modules[$module]['name']);
|
||
else
|
||
throw new Exception('Unknown module: '.$module);
|
||
}
|
||
|
||
/**
|
||
* Disable given module
|
||
*
|
||
* @author Michal Kliment
|
||
* @param type $module
|
||
* @return type
|
||
* @throws Exception
|
||
*/
|
||
private static function disableModule($module)
|
||
{
|
||
if (isset(self::$modules[$module]['name']))
|
||
return Settings::set(self::$modules[$module]['name'], 0);
|
||
else
|
||
throw new Exception('Unknown module: '.$module);
|
||
}
|
||
|
||
/**
|
||
* Contruct of controller sets tabs names
|
||
... | ... | |
$this->sections['users'] = __('Users');
|
||
|
||
// are finance enabled
|
||
if (Settings::get('finance_enabled'))
|
||
if (self::isModuleEnabled('finance'))
|
||
$this->sections['finance'] = __('Finance');
|
||
|
||
// is approval enabled
|
||
if (Settings::get('approval_enabled'))
|
||
if (self::isModuleEnabled('approval'))
|
||
$this->sections['approval'] = __('Approval');
|
||
|
||
// are networks enabled
|
||
if (Settings::get('networks_enabled'))
|
||
if (self::isModuleEnabled('networks'))
|
||
$this->sections['networks'] = __('Networks');
|
||
|
||
if (Settings::get('email_enabled'))
|
||
if (self::isModuleEnabled('email'))
|
||
$this->sections['email'] = __('Email');
|
||
|
||
// are SMS enabled
|
||
if (Settings::get('sms_enabled'))
|
||
if (self::isModuleEnabled('sms'))
|
||
$this->sections['sms'] = __('SMS');
|
||
|
||
// is voip enabled
|
||
if (Settings::get('voip_enabled'))
|
||
if (self::isModuleEnabled('voip'))
|
||
$this->sections['voip'] = __('VoIP');
|
||
|
||
$this->sections['notifications'] = __('Notifications');
|
||
|
||
// is QoS enabled
|
||
if (Settings::get('qos_enabled'))
|
||
if (self::isModuleEnabled('qos'))
|
||
$this->sections['qos'] = __('QoS');
|
||
|
||
// is monitoring enabled
|
||
if (Settings::get('monitoring_enabled'))
|
||
if (self::isModuleEnabled('monitoring'))
|
||
$this->sections['monitoring'] = __('Monitoring');
|
||
|
||
$this->sections['logging'] = __('Logging');
|
||
... | ... | |
|
||
// creating of new forge
|
||
$this->form = new Forge('settings/system');
|
||
|
||
$this->form->set_attr('id', 'settings-system-form');
|
||
|
||
$this->form->group('System variables');
|
||
|
||
... | ... | |
->options(arr::bool())
|
||
->default(Settings::get('grid_hide_on_first_load'))
|
||
->help('grid_hide_on_first_load');
|
||
|
||
$form_modules = array();
|
||
|
||
$this->form->group(__('Modules').' '.help::hint('modules'));;
|
||
$this->form->group(__('Modules').' '.help::hint('modules'));
|
||
|
||
// self-registration
|
||
$this->form->radio('self_registration')
|
||
$form_modules['self_registration'] = $this->form->radio('self_registration')
|
||
->label('Self-registration')
|
||
->options(arr::bool())
|
||
->default(Settings::get('self_registration'));
|
||
|
||
// connection requests
|
||
$this->form->radio('connection_request_enable')
|
||
$form_modules['connection_request'] = $this->form->radio('connection_request_enable')
|
||
->label('Connection requests')
|
||
->options(arr::bool())
|
||
->default(Settings::get('connection_request_enable'));
|
||
|
||
// forgotten password
|
||
$this->form->radio('forgotten_password')
|
||
$form_modules['forgotten_password'] = $this->form->radio('forgotten_password')
|
||
->label('Forgotten password')
|
||
->options(arr::bool())
|
||
->default(Settings::get('forgotten_password'));
|
||
|
||
// membership interrupts
|
||
$this->form->radio('membership_interrupt_enabled')
|
||
$form_modules['membership_interrupt'] = $this->form->radio('membership_interrupt_enabled')
|
||
->label('Membership interrupt')
|
||
->options(arr::bool())
|
||
->default(Settings::get('membership_interrupt_enabled'));
|
||
|
||
// finance
|
||
$this->form->radio('finance_enabled')
|
||
$form_modules['finance'] = $this->form->radio('finance_enabled')
|
||
->label('Finance')
|
||
->options(arr::bool())
|
||
->default(Settings::get('finance_enabled'));
|
||
|
||
// approval
|
||
$this->form->radio('approval_enabled')
|
||
$form_modules['approval'] = $this->form->radio('approval_enabled')
|
||
->label('Approval')
|
||
->options(arr::bool())
|
||
->default(Settings::get('approval_enabled'));
|
||
|
||
// Works
|
||
$this->form->radio('works_enabled')
|
||
$form_modules['works'] = $this->form->radio('works_enabled')
|
||
->label('Works')
|
||
->options(arr::bool())
|
||
->default(Settings::get('works_enabled'));
|
||
|
||
// Phone invoice
|
||
$this->form->radio('phone_invoices_enabled')
|
||
$form_modules['phone_invoices'] = $this->form->radio('phone_invoices_enabled')
|
||
->label('Phone invoices')
|
||
->options(arr::bool())
|
||
->default(Settings::get('phone_invoices_enabled'));
|
||
|
||
// e-mail
|
||
$this->form->radio('email_enabled')
|
||
$form_modules['email'] = $this->form->radio('email_enabled')
|
||
->label('E-mail')
|
||
->options(arr::bool())
|
||
->default(Settings::get('email_enabled'));
|
||
|
||
// SMS
|
||
$this->form->radio('sms_enabled')
|
||
$form_modules['sms'] = $this->form->radio('sms_enabled')
|
||
->label('SMS')
|
||
->options(arr::bool())
|
||
->default(Settings::get('sms_enabled'));
|
||
|
||
// VoIP
|
||
$this->form->radio('voip_enabled')
|
||
$form_modules['voip'] = $this->form->radio('voip_enabled')
|
||
->label('VoIP')
|
||
->options(arr::bool())
|
||
->default(Settings::get('voip_enabled'));
|
||
|
||
// Network
|
||
$this->form->radio('networks_enabled')
|
||
$form_modules['networks'] = $this->form->radio('networks_enabled')
|
||
->label('Networks')
|
||
->options(arr::bool())
|
||
->default(Settings::get('networks_enabled'));
|
||
|
||
// QoS
|
||
$this->form->radio('qos_enabled')
|
||
$form_modules['qos'] = $this->form->radio('qos_enabled')
|
||
->label('QoS')
|
||
->options(arr::bool())
|
||
->default(Settings::get('qos_enabled'));
|
||
|
||
// Monitoring
|
||
$this->form->radio('monitoring_enabled')
|
||
$form_modules['monitoring'] = $this->form->radio('monitoring_enabled')
|
||
->label('Monitoring')
|
||
->options(arr::bool())
|
||
->default(Settings::get('monitoring_enabled'));
|
||
|
||
// Redirection
|
||
$this->form->radio('redirection_enabled')
|
||
$form_modules['redirection'] = $this->form->radio('redirection_enabled')
|
||
->label('Redirection')
|
||
->options(arr::bool())
|
||
->default(Settings::get('redirection_enabled'));
|
||
|
||
// add info about modules dependencies
|
||
foreach ($form_modules as $module => $item)
|
||
{
|
||
// module have at least one dependency
|
||
if (count(self::$modules[$module]['dependencies']))
|
||
{
|
||
$form_modules[$module]->additional_info(
|
||
__('Require module') . ': <b>' .
|
||
implode(', ', array_map(
|
||
'__', self::$modules[$module]['dependencies'])
|
||
) . '</b>'
|
||
);
|
||
}
|
||
}
|
||
|
||
$this->form->group('Module settings');
|
||
|
||
... | ... | |
$issaved = $issaved && Settings::set($name, $value);
|
||
}
|
||
|
||
// without networks disabled monitoring, ulogd, connection request and redirection
|
||
if (!Settings::get('networks_enabled'))
|
||
foreach (self::$modules as $module => $module_info)
|
||
{
|
||
Settings::set('monitoring_enabled', FALSE);
|
||
Settings::set('ulogd_enabled', FALSE);
|
||
Settings::set('connection_request_enable', FALSE);
|
||
Settings::set('redirection_enabled', FALSE);
|
||
foreach ($module_info['dependencies'] as $dependency)
|
||
{
|
||
if (self::isModuleEnabled($module) && !self::isModuleEnabled($dependency))
|
||
{
|
||
status::error(__('Cannot enable module %s, enabled module %s is required.', array($module, $dependency)));
|
||
self::disableModule($module);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
// without redirection allowed subnet cannot be enabled
|
||
if (!Settings::get('redirection_enabled'))
|
||
{
|
||
Settings::set('allowed_subnets_enabled', FALSE);
|
||
}
|
||
|
||
// without approval works cannot be enabled
|
||
if (!Settings::get('approval_enabled'))
|
||
{
|
||
Settings::set('works_enabled', FALSE);
|
||
}
|
||
|
||
// without email forgotten password cannot be enabled
|
||
if (!Settings::get('email_enabled'))
|
||
{
|
||
Settings::set('forgotten_password', FALSE);
|
||
}
|
||
|
||
if ($issaved)
|
||
// if all action were succesfull
|
||
{
|
freenetis/branches/1.1/application/i18n/cs_CZ/texts.php | ||
---|---|---|
'cannot connect to database' => 'Nelze se připojit k databázi',
|
||
'cannot delete, there are other records depending on this one' => 'Nelze smazat, na položce jsou závislé jiné záznamy',
|
||
'cannot edit, there are other records depending on this one' => 'Nelze upravit, na položce jsou závislé jiné záznamy',
|
||
'cannot enable module %s, enabled module %s is required' => 'Nelze povolit modul %s, je vyžadován povolený modul %s.',
|
||
'cannot delete group - it has at least one children group' => 'Nelze smazat skupinu - má alespoň jednu potomkovskou skupinu.',
|
||
'cannot delete group - this group is protected against deletion' => 'Nelze smazat skupinu - tato skupina je chráněná proti mazání.',
|
||
'cannot enable voip driver, allow `%s` rights for mysql user' => 'Nemohu povolit VoIP ovladač, povolte právo `%s` pro MySQL uživatele',
|
||
... | ... | |
'request has been successfully updated' => 'Požadavek byl úspěšně aktualizován.',
|
||
'reguest is invalid or expired' => 'Žádost je neplatná nebo expirovala',
|
||
'requests' => 'Požadavky',
|
||
'require module' => 'Vyžaduje modul',
|
||
'require mysql %s and higher' => 'potřebuje MySQL ve verzi %s nebo vyšší',
|
||
'reset_filters' => 'Vynulování filtrů',
|
||
'resize' => 'Změnit velikost',
|
freenetis/branches/1.1/application/views/forge_template.php | ||
---|---|---|
|
||
echo $input->html();
|
||
|
||
echo $input->additional_info;
|
||
echo '<span class="additional-info">'.$input->additional_info.'</span>';
|
||
|
||
if (strstr($input->class, 'ajax'))
|
||
echo html::image(array('src'=>'media/images/icons/animations/ajax-loader.gif', 'id'=>'ajax_'.$input->name, 'class'=>'ajax-loader', 'style'=>'display:none;'));
|
freenetis/branches/1.1/application/views/js/settings_system.php | ||
---|---|---|
<?php
|
||
/**
|
||
* Settings system javascript view.
|
||
*/
|
||
|
||
// IDE complementation
|
||
if (FALSE): ?><script type="text/javascript"><?php endif
|
||
|
||
?>
|
||
|
||
var modules = {
|
||
<?php foreach ($modules as $module => $dependencies): ?>
|
||
|
||
'<?php echo $module ?>': [<?php echo "'".implode("', '", $dependencies)."'" ?>],
|
||
|
||
<?php endforeach ?>
|
||
}
|
||
|
||
$("input[type=radio]").live('change', function (){
|
||
|
||
var name = $(this).attr('name');
|
||
|
||
var value = parseInt($(this).val());
|
||
|
||
for (i in modules[name])
|
||
{
|
||
if (value)
|
||
{
|
||
$("input[name='"+modules[name][i]+"']").removeAttr('disabled');
|
||
$("input[name='"+modules[name][i]+"']:checked").parent().find('.additional-info').hide();
|
||
}
|
||
else
|
||
{
|
||
$("input[name='"+modules[name][i]+"']").attr('disabled', 'disabled');
|
||
$("input[name='"+modules[name][i]+"']:checked").parent().find('.additional-info').show();
|
||
}
|
||
}
|
||
});
|
||
|
||
$("input[type=radio]:checked").trigger('change');
|
freenetis/branches/1.1/media/css/style.css | ||
---|---|---|
padding-bottom: .5em;
|
||
}
|
||
|
||
#settings-system-form .additional-info {
|
||
color: red;
|
||
margin-left: 12px;
|
||
}
|
Také k dispozici: Unified diff
Opravy:
- fixes #627: Informace o zavislostech modulu