Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 401

Přidáno uživatelem Roman Ševčík před asi 15 roky(ů)

Rozpracovana verze integrace Voip #2

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'non-member' => 'Nečlen',
'non-statutory member' => 'Člen bez statusu',
'norm' => 'Norma',
'number' => 'Číslo',
'numbers' => 'Čísla',
'number intervals' => 'Rozsahy čísel',
'number of months' => 'Počet měsíců',
'number of the hours' => 'počet hodin',
'old password' => 'Staré heslo',
freenetis/trunk/kohana/application/controllers/members.php
if ($this->acl_check_delete(get_class($this), 'membership_interrupts', $member_id))
$mi_grid->action_field('id') ->label(url_lang::lang('texts.Membership interrupts'))->url(url_lang::base().'membership_interrupts/delete')->action(url_lang::lang('texts.Delete'));
$mi_grid->datasource($mis);
$voip_sip = new Voip_sip_Model();
$voip = $voip_sip->get_all_record_by_member($member_id);
$voip_grid = new Grid(url_lang::base().'members', null, array(
'separator' => '<br /><br />',
'use_paginator' => false,
'use_selector' => false,
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'variables' => $member_id.'/'
));
//$voip_grid->order_field('id')->label('ID');
$voip_grid->field('name')->label(url_lang::lang('texts.Number'));
$voip_grid->action_field('id')->label(url_lang::lang('texts.Account'))->url(url_lang::base().'voip/show')->action(url_lang::lang('texts.Show'));
$voip_grid->action_field('user_id')->label(url_lang::lang('texts.User'))->url(url_lang::base().'users/show')->action(url_lang::lang('texts.Show'));
$voip_grid->datasource($voip);
$view = new View('template');
$view->header = new View('base/header');
$view->content = new View('members/show');
......
$view->header->title = url_lang::lang('texts.Display member');
$view->header->menu = Controller::render_menu();
$view->content->users = $user_grid;
$view->content->voip = $voip_grid;
$view->content->mis = $mi_grid;
$view->content->account_balance = $account_balance;
foreach($member_data as $key=>$val)
freenetis/trunk/kohana/application/controllers/settings.php
function index()
{
url::redirect(url_lang::base().'settings/system');
// create view for this template
$view = new View('template');
$view->header = new View('base/header');
$view->footer = new View('base/footer');
$view->content = new View('settings/settings');
$view->content->headline = url_lang::lang('texts.Settings');
$view->header->menu = Controller::render_menu();
$view->header->title = url_lang::lang('texts.Settings');
$view->render(TRUE);
}
/**
......
$view->render(TRUE);
}
function voip()
{
// access control
if (!$this->acl_check_edit(get_class($this),'system'))
Controller::error(1);
// creating of new forge
$this->form = new Forge(url_lang::base()."settings/voip", '', 'POST', array('id' => 'voip_form'));
$this->form->set_attr('class', 'form_class')->set_attr('method', 'post');
$this->form->group('')->label(url_lang::lang('texts.System variables'));
// page title
$this->form->input('voip_number_intervals')->label(url_lang::lang('texts.Number intervals').':')->rules('length[9,100]|required')->value($this->setting->voip_number_intervals);
// // self-registration
// $this->form->radio('self_registration')->label(url_lang::lang('texts.Self-registration').':')->options(array('1'=>url_lang::lang('texts.Yes'),'0'=>url_lang::lang('texts.No')))->default($this->setting->self_registration);
$this->form->submit('submit')->value(url_lang::lang('texts.Save'));
special::required_forge_style($this->form, ' *', 'required');
// form validate
if ($this->form->validate())
{
$form_data = $this->form->as_array();
$config_model = new Config_Model();
$issaved = true;
foreach ($form_data as $name => $value)
{
// check if variable exists
if ($config_model->check_exist_variable($name))
// update of variable
$issaved = $issaved && $config_model->update_variable($name,$value);
else
// insert new variable
$issaved = $issaved && $config_model->insert_variable($name,$value);
}
if ($issaved)
// if all action were succesfull
$this->session->set_flash('message', url_lang::lang('texts.System variables have been successfully updated').'.');
else
// if not
$this->session->set_flash('message', url_lang::lang('texts.System variables havent been successfully updated').'.');
url::redirect(url_lang::base().'settings/voip');
}
// create view for this template
$view = new View('template');
$view->header = new View('base/header');
$view->footer = new View('base/footer');
$view->content = new View('settings/voip');
$view->content->form = $this->form->html();
$view->content->headline = url_lang::lang('texts.Settings').' - '.url_lang::lang('texts.VoIP');
$view->header->menu = Controller::render_menu();
$view->header->title = url_lang::lang('texts.Settings').' - '.url_lang::lang('texts.VoIP');
$view->render(TRUE);
}
/**
* @author Michal Kliment
* Sets up mode of javascript (on or off)
freenetis/trunk/kohana/application/controllers/voip.php
<?php
/**
* VoIP controller.
*
* @author Sevcik Roman
* @copyright (c) 2009 Sevcik Roman
* @license GNU GPLv3
* @license http://www.gnu.org/licenses/gpl.txt
*/
class VoIP_Controller extends Controller
{
public function index()
{
}
function show_all($limit_results = 500, $order_by = 'id', $order_by_direction = 'desc', $page_word = null, $page = 1)
{
// get new selector
if (is_numeric($this->input->get('record_per_page')))
$limit_results = (int) $this->input->get('record_per_page');
// parameters control
$allowed_order_type = array('id', 'name', 'user_id');
if (!in_array(strtolower($order_by), $allowed_order_type))
$order_by = 'id';
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc')
$order_by_direction = 'desc';
$model_voip_sip = new Voip_sip_Model();
$total_voip_sip = $model_voip_sip->count_all_records();
if (($sql_offset = ($page - 1) * $limit_results) > $total_voip_sip)
$sql_offset = 0;
$all_voip_sip = $model_voip_sip->get_all_records($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
$headline = url_lang::lang('texts.VoIP');
$grid = new Grid(url_lang::base().'voip', null, array(
'use_paginator' => true,
'use_selector' => true,
'current' => $limit_results, //current selected 'records_per_page' value
'selector_increace' => 500, // increace
'selector_min' => 500, // minimum where selector start
'selector_max_multiplier' => 10,
'base_url' => Config::item('locale.lang').'/voip/show_all/'.$limit_results.'/'.$order_by.'/'.$order_by_direction,
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
'total_items' => $total_voip_sip, // use db count query here of course
'items_per_page' => $limit_results, // it may be handy to set defaults for stuff like this in config/pagination.php
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results
));
$grid->order_field('id')->label('ID');
$grid->order_field('name')->label(url_lang::lang('texts.Number'));
//$grid->action_field('id')->label(url_lang::lang('texts.VoIP'))->url(url_lang::base().'voip/show')->action(url_lang::lang('texts.Show'));
$grid->action_field('id')->label(url_lang::lang('texts.Account'))->url(url_lang::base().'voip/edit')->action(url_lang::lang('texts.Edit'));
$grid->action_field('user_id')->label(url_lang::lang('texts.User'))->url(url_lang::base().'users/show')->action(url_lang::lang('texts.Show'));
$grid->datasource($all_voip_sip);
$view = new View('template');
$view->header = new View('base/header');
$view->content = new View('transfers/show_all');
$view->content->headline = $headline;
$view->content->grid = $grid;
$view->content->message = $this->session->get_once('message');
$view->footer = new View('base/footer');
$view->header->menu = Controller::render_menu();
$view->header->title = $headline;
$view->render(TRUE);
}
function show($voip_id)
{
if (!isset($voip_id))
Controller::warning(1);
}
}
freenetis/trunk/kohana/application/controllers/access_rights.php
$model_groups_aro_map = new Groups_Aro_Map_Model();
//vykresleni skupin
for($i = 0; $i < $groups->count(); $i++)
{
$group = $groups->current();
$ret = ''; //style="text-align: center; font-weight:bold" style="width: 300px; text-align: center; font-weight:bold"
$rows[0] = '<tr><th colspan="3" style="width:300px">'.url_lang::lang('texts.Edit groups').'</th></tr>';
//vypocet posunuti podskupiny
for($j = 0; $j < count_parent($group->id) - 1; $j++ )
//$ret .= '&nbsp;&nbsp;&nbsp;&nbsp;|';
$ret .= '&nbsp;&nbsp;&nbsp;&nbsp;';
......
$groups->next();
}
//vykresleni
$view = new View('template');
$view->header = new View('base/header');
$view->content = new View('access_rights/show_groups');
......
if (!isset($group_id))
Controller::warning(1);
else
{
{ //kontrola jestli je paramets cislo
if (!is_numeric($group_id))
Controller::error(4);
//me skupine "vsichni lide na svete se nepristupuje"
if ($group_id == 21)
url::redirect(url_lang::base().'access_rights/show_groups');
//kontrola existencew cisla skupiny
$model_aro = new Aro_Groups_Model();
$group = $model_aro->get_by_id($group_id);
if ($group->count() == 0)
......
$model_aro = new Aro_Model();
//po zmacknuti tlacitka X se nastavi filtr na NULL
if ($this->input->post('search_system_clear'))
$search_system_input = NULL;
else
$search_system_input = $this->input->post('search_system_input');
//po zmacknuti tlacitka X se nastavi filtr na NULL
if ($this->input->post('search_group_clear'))
$search_group_input = NULL;
else
$search_group_input = $this->input->post('search_group_input');
//pridani uzivatele do skupiny
if ($this->input->post('add') != NULL && $this->input->post('system_users') != NULL)
{
$aro_id = implode("" ,$this->input->post('system_users'));
......
$model_groups_aro_map->insert_data(array( 'group_id' => $group_id, 'aro_id' => $aro_id ));
}
//pridani uzivatele do skupiny
if ($this->input->post('remove') != NULL && $this->input->post('group_users') != NULL)
{
$aro_id = implode("" ,$this->input->post('group_users'));
......
$model_groups_aro_map->detete_row($group_id, $aro_id);
}
//nacteni dat z databaze a filtrem nebo bez
if ($search_system_input != NULL)
$users1 = $model_aro->get_all_not_in_by_aro_broup_id($group_id, $search_system_input);
else
$users1 = $model_aro->get_all_not_in_by_aro_broup_id($group_id);
//nacteni dat z databaze a filtrem nebo bez
if ($search_group_input != NULL)
$users2 = $model_aro->get_all_by_aro_broup_id($group_id, $search_group_input);
else
$users2 = $model_aro->get_all_by_aro_broup_id($group_id);
//osetruje stav kdy v zadne skupine neni zadny uzivatel. Teoreticky nikdy nenastane
if (($users1->count() == 0) && ($users2->count() == 0))
Controller::error(4);
//generovani system dropboxu
if ($users1->count() == 0)
{
$system_users_select = form::dropdown(array('name' => 'system_users[]','size' => 20, 'style'=>'width:250px'));
......
}
//generovani system searchboxu
$system_users_search_box = '<table><tr><td>'.form::input('search_system_input', $search_system_input, 'style="width:175px;"').'</td><td>'.form::submit('search_system_submit', url_lang::lang('texts.Search'), 'style="width:50px;"').'</td><td>'.(($search_system_input == NULL )?'':form::submit('search_system_clear', 'X', 'style="width:18px;"')).'</td></tr></table>';
//generovani group dropboxu
if ($users2->count()==0)
{
$group_users_select = form::dropdown(array('name' => 'group_users[]','size' => 20, 'style'=>'width:250px'));
......
$group_users_select = form::dropdown(array('name' => 'group_users[]','size' => 20, 'style'=>'width:250px'), $group_users);
}
//generovani group searchboxu
$group_users_search_box = '<table><tr><td>'.form::input('search_group_input', $search_group_input, 'style="width:175px;"').'</td><td>'.form::submit('search_group_submit', url_lang::lang('texts.Search'), 'style="width:50px;"').'</td><td>'.(($search_group_input == NULL )?'':form::submit('search_group_clear', 'X', 'style="width:18px;"')).'</td></tr></table>';
//tlacitka pro manipulaci
$add_button = form::submit('add', url_lang::lang('texts.Add').' ►', 'style="width:80px;"');
$remove_button = form::submit('remove', '◄ '.url_lang::lang('texts.Remove'), 'style="width:80px;"');
freenetis/trunk/kohana/application/upgrade_sql/upgrade_sql.php
return $svnid;
}
$upgrade_sql[get_SVN_rev()] = array(
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'en_fee' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'en_fee_left' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'entrance_date' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'leaving_date' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'debit' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 38 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'must_pay' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 51 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'must_pay' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 56 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'must_pay' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'must_pay' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'currentcredit' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'membership_interrupts' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `axo_map`.`acl_id` = 58 AND `axo_map`.`section_value` = 'Members_Controller' AND `axo_map`.`value` = 'registration' LIMIT 1;",
"DELETE FROM `axo` WHERE `axo`.`id` = 110 LIMIT 1;",
"INSERT INTO `axo_map` (`acl_id` ,`section_value` ,`value`) VALUES
('58', 'Users_Controller', 'additional_contacts'),
('58', 'Users_Controller', 'users'),
('58', 'Users_Controller', 'name'),
('58', 'Users_Controller', 'surname'),
('58', 'Users_Controller', 'comment'),
('58', 'Users_Controller', 'email');",
"UPDATE `acl` SET `note` = 'Certifikovani technici mohou prohlizet, pridavat a editovat jen nektere polozky u clenu a uzivatelu' WHERE `acl`.`id` = 58 LIMIT 1;",
"UPDATE `acl` SET `note` = 'Certifikovani technici maji pravo videt a pridavat datum vstupu, login, telefon a heslo.' WHERE `acl`.`id` = 59 LIMIT 1;",
"INSERT INTO `acl` (`id`, `section_value`, `allow`, `enabled`, `return_value`, `note`, `updated_date`) VALUES
(67, 'user', 1, 1, '', 'Certifikovani technici mohou nektere polozky u clena pouze videt.', 1248160179);",
"INSERT INTO `aco_map` (`acl_id` ,`section_value` ,`value`) VALUES ('67', 'freenetis', 'view_all');",
"DELETE FROM `aco_map` WHERE `aco_map`.`acl_id` = 59 AND `aco_map`.`section_value` = 'freenetis' AND `aco_map`.`value` = 'delete_all' LIMIT 1;",
"DELETE FROM `aco_map` WHERE `aco_map`.`acl_id` = 59 AND `aco_map`.`section_value` = 'freenetis' AND `aco_map`.`value` = 'edit_all' LIMIT 1;",
"DELETE FROM `axo_map` WHERE `acl_id` = 59;",
"INSERT INTO `axo_map` (`acl_id`, `section_value`, `value`) VALUES
(59, 'Members_Controller', 'entrance_date'),
(59, 'Users_Controller', 'login'),
(59, 'Users_Controller', 'member'),
(59, 'Users_Controller', 'password'),
(59, 'Users_Controller', 'phone'),
(67, 'Members_Controller', 'currentcredit'),
(67, 'Members_Controller', 'debit'),
(67, 'Members_Controller', 'en_fee'),
(67, 'Members_Controller', 'en_fee_left'),
(67, 'Members_Controller', 'leaving_date'),
(67, 'Members_Controller', 'membership_interrupts'),
(67, 'Members_Controller', 'registration'),
(67, 'Users_Controller', 'work');"
$upgrade_sql[get_SVN_rev()] = array("
CREATE TABLE IF NOT EXISTS `voip_sips` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`name` varchar(80) collate utf8_czech_ci NOT NULL,
`accountcode` varchar(20) collate utf8_czech_ci default NULL,
`amaflags` varchar(13) collate utf8_czech_ci default NULL,
`callgroup` varchar(10) collate utf8_czech_ci default NULL,
`callerid` varchar(80) collate utf8_czech_ci default NULL,
`canreinvite` char(3) collate utf8_czech_ci default 'no',
`context` varchar(80) collate utf8_czech_ci default 'internal',
`defaultip` varchar(15) collate utf8_czech_ci default NULL,
`dtmfmode` varchar(7) collate utf8_czech_ci default 'rfc2833',
`fromuser` varchar(80) collate utf8_czech_ci default NULL,
`fromdomain` varchar(80) collate utf8_czech_ci default NULL,
`fullcontact` varchar(80) collate utf8_czech_ci default NULL,
`host` varchar(31) collate utf8_czech_ci NOT NULL default 'dynamic',
`insecure` varchar(4) collate utf8_czech_ci default NULL,
`language` char(2) collate utf8_czech_ci default 'cz',
`mailbox` varchar(50) collate utf8_czech_ci default NULL,
`md5secret` varchar(80) collate utf8_czech_ci default NULL,
`nat` varchar(5) collate utf8_czech_ci NOT NULL default 'yes',
`deny` varchar(95) collate utf8_czech_ci default NULL,
`permit` varchar(95) collate utf8_czech_ci default NULL,
`mask` varchar(95) collate utf8_czech_ci default NULL,
`pickupgroup` varchar(10) collate utf8_czech_ci default NULL,
`port` varchar(5) collate utf8_czech_ci NOT NULL,
`qualify` char(3) collate utf8_czech_ci default NULL,
`restrictcid` char(1) collate utf8_czech_ci default NULL,
`rtptimeout` char(3) collate utf8_czech_ci default NULL,
`rtpholdtimeout` char(3) collate utf8_czech_ci default NULL,
`secret` varchar(80) collate utf8_czech_ci NOT NULL default 'secret',
`type` varchar(6) collate utf8_czech_ci NOT NULL default 'friend',
`username` varchar(80) collate utf8_czech_ci NOT NULL,
`disallow` varchar(100) collate utf8_czech_ci default 'all',
`allow` varchar(100) collate utf8_czech_ci default NULL,
`musiconhold` varchar(100) collate utf8_czech_ci default NULL,
`regseconds` int(11) NOT NULL default '0',
`ipaddr` varchar(15) collate utf8_czech_ci NOT NULL,
`regexten` varchar(80) collate utf8_czech_ci NOT NULL,
`cancallforward` char(3) collate utf8_czech_ci default 'yes',
`setvar` varchar(100) collate utf8_czech_ci NOT NULL,
`auth` varchar(10) collate utf8_czech_ci default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci ROW_FORMAT=DYNAMIC;"
);
?>
freenetis/trunk/kohana/application/views/members/show.php
?>
<br />
<br />
<table class="extended" style="float:left">
<tr>
<th colspan="2"><?php echo url_lang::lang('texts.Basic information') ?></th>
......
<h3><?php echo url_lang::lang('texts.Users')?></h3>
<?php echo $users ?>
<br />
<?php if (isset($voip)){ ?>
<h3><?php echo url_lang::lang('texts.VoIP')?></h3>
<?php echo $voip ?>
<br />
<?php } ?>
<h3><?php echo url_lang::lang('texts.Membership interrupts')?></h3>
<?php echo $mis ?>
freenetis/trunk/kohana/application/views/settings/voip.php
<h2><?php echo $headline ?></h2>
<br />
<?php echo ($message = $this->session->get('message')) ? '<div class="message">'.$message.'</div>' : '' ?>
<?php echo url_lang::lang('texts.Section') ?>: <?php echo url_lang::lang('texts.VoIP') ?>
<br /><br />
<?php echo $form ?>
freenetis/trunk/kohana/application/views/settings/settings.php
<h2><?php echo $headline ?></h2>
<br />
<?php echo html::anchor(url_lang::base().'settings/system',url_lang::lang('texts.System')); ?>
<br />
<?php echo html::anchor(url_lang::base().'settings/voip',url_lang::lang('texts.VoIP')); ?>
<br /><br />

Také k dispozici: Unified diff