Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 616

Přidáno uživatelem harryhk před více než 14 roky(ů)

Pridan kontroler pro general messages (zpravy pro presmerovani).

Pro kazdy typ presmerovani muze byt aktivni prave jedna zprava. Nelze smazat aktivni zpravu. Pri aktivovani zpravy to automaticky zdeaktivuje puvodne aktivni (pro dany typ presmerovani), pokud takova existuje.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'accounting system' => 'Účetní osnova',
'action' => 'Akce',
'activate' => 'Aktivovat',
'active' => 'Aktivní',
'active message' => 'Aktivní zpráva',
'add' => 'Přidat',
'add admin to redirection module' => 'Přidat správce do modulu přesměrování',
'add member fee payment by cash' => 'Přidat platbu členského příspěvku hotově',
......
'add new ip address' => 'Přidat novou IP adresu',
'add new items' => 'Přidat nové položky',
'add new member' => 'Přidat nového člena',
'add new message' => 'Přidat novou zprávu',
'add new port' => 'Přidat nový port',
'add new project account' => 'Přidat nový projektový účet',
'add new redirection message' => 'Přidat novou zprávu přesměrování',
'add new segment' => 'Přidat nový segment',
'add new street' => 'Přidat novou ulici',
'add new subnet' => 'Přidat novou podsíť',
......
'back to the member' => 'Zpět na profil člena',
'back to the members transfers' => 'Zpět na převody člena',
'back to the redirection list' => 'Zpět na přesměrované záznamy',
'back to the redirection administration' => 'Zpět na administraci přesměrování',
'back to the smokeping list' => 'Zpět na seznam smokepingu',
'back to the subnet' => 'Zpět na podsíť',
'back to the user' => 'Zpět na uživatele',
......
'contact information' => 'Kontaktní informace',
'contact list on redirect page' => 'Kontaktní informace na stránce přesměrování',
'contact value' => 'Data kontaktu',
'content of the message' => 'Obsah zprávy',
'contractual increase' => 'Smluvní navýšení',
'cookies must be enabled' => 'Musí být zapnuty cookies.',
'count' => 'Počet',
'count' => 'Počet',
'count of address points' => 'Počet adresních bodů',
'count of members' => 'Počet členů',
'counteraccount' => 'Protiúčet',
......
'do you want to delete this device' => 'Chcete smazat toto zařízení',
'do you want to delete this interface' => 'Chcete smazat toto rozhraní',
'do you want to delete this ip address' => 'Chcete smazat tuto IP adresu',
'do you want to delete this message' => 'Chcete smazat tuto zprávu',
'do you want to delete this port' => 'Chcete smazat tento port',
'do you want to delete this rule' => 'Chcete smazat toto pravidlo',
'do you want to delete this smokeping record' => 'Chcete smazat tento záznam smokepingu',
......
'edit ip address redirection' => 'Upravit přesměrování IP adresy',
'edit member' => 'Upravit člena',
'edit port' => 'Úprava portu',
'edit redirection message' => 'Úprava zprávy přesměrování',
'edit registrations' => 'Upravit přihlášky',
'edit segment' => 'Úprava segmentu',
'edit smokeping record' => 'Upravit záznam smokepingu',
......
'list of all invoices' => 'Seznam všech faktur',
'list of all members' => 'Seznam všech členů',
'list of all redirected records' => 'Seznam všech přesměrovaných záznamů',
'list of all redirection messages' => 'Seznam všech zpráv přesměrování',
'list of all smokeping records' => 'Seznam všech záznamů smokepingu',
'list of all streets' => 'Seznam všech ulic',
'list of all towns' => 'Seznam všech měst',
......
'memory consumed' => 'Spotřeba paměti',
'message' => 'Zpráva',
'message for user' => 'Zpráva pro uživatele',
'message has been activated' => 'Zpráva byla aktivována',
'message has been successfully added' => 'Zpráva byla úspěšně přidána',
'message has been successfully deleted' => 'Zpráva byla úspěšně smazána',
'message has been successfully updated' => 'Zpráva byla úspěšně aktualizována',
'message is already active' => 'Zpráva je již aktivní',
'message is active, cannot be deleted' => 'Zpráva je aktivní, nemůže být smazána',
'middle name' => 'Prostřední jméno',
'minimal duration of interrupt is one month' => 'Minimální délka přerušení je jeden měsíc',
'mode' => 'Mód',
......
'redirection logs' => 'Logy přesměrování',
'redirection records' => 'Záznamy přesměrování',
'redirection settings' => 'Nastavení přesměrování',
'redirection type' => 'Typ přesměrování',
'reg' => 'Přih.',
'register' => 'Registrovat',
'registered applicants' => 'Registrovaní zájemci',
freenetis/trunk/kohana/application/models/redirection.php
IF(strcmp(r.message,'null'),'●','-') AS message,
IF(strcmp(r.note,'null'),'●','-') AS note,
IF(strcmp(r.locksign,0),'●','-') AS locksign,
r.admin, r.email, r.selfaccess
r.admin, r.selfaccess
FROM redirections r
LEFT JOIN ip_addresses ip ON r.ip_address_id = ip.id
LEFT JOIN enum_types edest on r.destination = edest.id
......
r.id, r.duration, r. destination, r.ip_address_id, ip.ip_address
IFNULL(fdest.translated_term, edest.value) AS dest,
IFNULL(fdur.translated_term, edur.value) AS dur,
r.message, r.note, r.locksign, r.admin, r.email, r.selfaccess
r.message, r.note, r.locksign, r.admin, r.selfaccess
FROM redirections r
LEFT JOIN ip_addresses ip ON r.ip_address_id = ip.id
LEFT JOIN enum_types edest ON r.destination = edest.id
......
IF(strcmp(r.message,'null'),'●','-') AS message,
IF(strcmp(r.note,'null'),'●','-') AS note,
IF(strcmp(r.locksign,0),'●','-') AS locksign,
r.admin, r.email, r.selfaccess
r.admin, r.selfaccess
FROM redirections r
LEFT JOIN ip_addresses ip ON r.ip_address_id = ip.id
LEFT JOIN enum_types edest on r.destination = edest.id
......
public function count_member_ips($user_id = null){
$ip_addresses = self::$db->query("SELECT
ip.ip_address
ip.id
FROM users u
LEFT JOIN devices d ON u.id = d.user_id
LEFT JOIN ifaces i ON d.id = i.device_id
......
public function select_member_ips($user_id = null){
$ip_addresses = self::$db->query("SELECT
ip.ip_address
ip.id
FROM users u
LEFT JOIN devices d ON u.id = d.user_id
LEFT JOIN ifaces i ON d.id = i.device_id
freenetis/trunk/kohana/application/models/redirection_setting.php
public function import_admins()
{
$result = self::$db->query("SELECT a.admin_id FROM areas a");
$result = self::$db->query("SELECT ca.admin_id FROM cloud_admins ca");
$total = count($result);
$values = "";
$total_values = 0;
freenetis/trunk/kohana/application/controllers/redirection.php
else
$redirection->sendmail = '0';
$redirection->admin = $user_model->login;
$redirection->email = $user_model->email;
$redirection->admin = $user_id;
unset($form_data);
if ($redirection->save()) {
......
else
$redirection->sendmail = '0';
$redirection->admin = $user_model->login;
$redirection->email = $user_model->email;
$redirection->admin = $user_id;
$redirection->save();
redirection_log::log($user_model->login, 76, $ip_address_id);
......
else
$redirection->sendmail = '0';
$redirection->admin = $user_model->login;
$redirection->email = $user_model->email;
$redirection->admin = $user_id;
$redirection->save();
redirection_log::log($user_model->login, 76, $row->id);
......
$redirection = new Redirection_Model();
$total_addresses = $redirection->count_member_ips($userid);
$result = $redirection->select_member_ips($userid);
$counter=0;
foreach ($result as $row){
if ($row->ip_address!=null)
$ip_addresses[]=$row->ip_address;
else
$total_addresses--;
$ip_address_ids[$counter]=$row->id;
$counter++;
}
for ($i=0; $i<$total_addresses; $i++){
$redirected_ip = $ip_addresses[$i];
$redirected_ip = $ip_address_ids[$i];
$redirection = new Redirection_Model();
$redirection->ip_address = $redirected_ip;
$redirection->ip_address_id = $redirected_ip;
$redirection->duration = $form_data['dur'];
$redirection->destination = $form_data['dest'];
$redirection->message = $form_data['message'];
......
else
$redirection->sendmail = '0';
$redirection->admin = $user_model->login;
$redirection->email = $user_model->email;
$redirection->admin = $user_id;
if($i!=$total_addresses-1)
$redirection->save();
......
$view->content->headline = url_lang::lang('texts.List of all redirected records');
$view->content->table = $grid;
$view->render(TRUE);
}
function show($redirection_id = NULL){
......
}
} // end of valid_ip
function administration($order_by = 'admin_id', $order_by_direction = 'ASC'){
function administration($limit_results = 20, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1){
if (!$this->acl_check_view(get_class($this),'redirection'))
Controller::error(ACCESS);
$redirection_setting_model = new Redirection_setting_Model();
$total_rules = $redirection_setting_model->count_all_rules();
$query = $redirection_setting_model->get_all_rules($order_by, $order_by_direction);
//destination type
$enum_type_model = new Enum_type_Model();
$types_destination = $enum_type_model->get_values(Enum_type_Model::$redirect_destination_id);
$types_destination[0] = '----- '.url_lang::lang('texts.Select destination web').' -----';
asort($types_destination);
// get new selector
if (is_numeric($this->input->get('record_per_page')))
$limit_results = (int) $this->input->get('record_per_page');
$general_message_model = new General_message_Model();
$total_messages = $general_message_model->count_all_messages();
$grid = new Grid(url_lang::base().'redirection', null,array(
if (($sql_offset = ($page - 1) * $limit_results) > $total_messages)
$sql_offset = 0;
$query = $general_message_model->get_all_messages($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
$grid = new Grid(url_lang::base().'redirection/administration', null,array(
//'separator' => '<br />-----------',
'use_paginator' => false,
'use_selector' => false,
'current' => $total_rules, // current selected 'records_per_page' value
'selector_increace' => 200, // increace
'selector_min' => 200, // minimum where selector start
'use_paginator' => true,
'use_selector' => true,
'current' => $limit_results, // current selected 'records_per_page' value
'selector_increace' => 20, // increace
'selector_min' => 20, // minimum where selector start
'selector_max_multiplier' => 10,
'base_url' => Config::item('locale.lang').'/redirection/administration/'.$order_by.'/'.$order_by_direction,
'uri_vlan' => 'page', // pass a string as uri_vlan to trigger former 'label' functionality
'total_items' => $total_rules, // use db count query here of course
'items_per_page' => $total_rules, // it may be handy to set defaults for stuff like this in config/pagination.php
'base_url' => Config::item('locale.lang').'/redirection/administration/' ,
'uri_vlan' => 'page', // pass a string as uri_vlan to trigger former 'label' functionality
'total_items' => $total_messages, // 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,
'limit_results' => $limit_results,
//'query_string' => $query_string,
//'filter' => $filter->view
));
//if ($this->acl_check_new('Devices_Controller','vlan')){
//$grid->add_new_button(url_lang::base().'redirection/settings/addadmin', url_lang::lang('texts.Redirect IP address'));
$grid->add_new_button(url_lang::base().'redirection/autoadmins', url_lang::lang('texts.Automatically import admins'));
$grid->add_new_button(url_lang::base().'redirection/addadmin', url_lang::lang('texts.Add new admin'));
//}
//$grid->order_field('id')->label('ID')->class('center');
$grid->order_field('admin_id')->label(url_lang::lang('texts.ID'));
$grid->order_field('login')->label(url_lang::lang('texts.Admin'))->class('center');
/*if ($this->acl_check_view('Devices_Controller','vlan'))
$grid->action_field('admin_id')->label(url_lang::lang('texts.Show'))->url(url_lang::base().'redirection/showadmin') ->action(url_lang::lang('texts.Show'))->class('center');
//if ($this->acl_check_edit('Devices_Controller','vlan'))
$grid->action_field('admin_id')->label(url_lang::lang('texts.Edit'))->url(url_lang::base().'redirection/editadmin') ->action(url_lang::lang('texts.Edit'))->class('center');
//if ($this->acl_check_edit('Devices_Controller','vlan'))*/
$grid->action_field('admin_id')->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'redirection/deleteadmin')->action(url_lang::lang('texts.Delete'))->class('center')->script('onclick="return potvrd(\''.url_lang::lang('texts.Do you want to delete this rule').'\');"');
$grid->add_new_button(url_lang::base().'redirection/add_message', url_lang::lang('texts.Add new message'));
$grid->order_field('id')->label('ID')->class('center');
$grid->order_field('message_name')->label(url_lang::lang('texts.Name'));
$grid->order_field('active')->label(url_lang::lang('texts.Active message'))->class('center');
$grid->order_field('dest')->label(url_lang::lang('texts.Redirection type'))->class('center');
$grid->action_field('id')->label(url_lang::lang('texts.Show')) ->url(url_lang::base().'redirection/show_message') ->action(url_lang::lang('texts.Show'))->class('center');
$grid->action_field('id')->label(url_lang::lang('texts.Edit')) ->url(url_lang::base().'redirection/edit_message') ->action(url_lang::lang('texts.Edit'))->class('center');
$grid->action_field('id')->label(url_lang::lang('texts.Activate')) ->url(url_lang::base().'redirection/activate_message') ->action(url_lang::lang('texts.Activate'))->class('center');
$grid->action_field('id')->label(url_lang::lang('texts.Delete'))->url(url_lang::base().'redirection/delete_message')->action(url_lang::lang('texts.Delete'))->class('center')->script('onclick="return potvrd(\''.url_lang::lang('texts.Do you want to delete this message').'\');"');
$grid->datasource( $query );
$this->template->content = $grid;
$view = new View('main');
$view->title = url_lang::lang('texts.Redirection settings');
$view->title = url_lang::lang('texts.List of all general messages');
$view->content = new View('show_all');
$view->content->headline = url_lang::lang('texts.List of all redirected records');
$view->content->headline = url_lang::lang('texts.List of all general messages');
$view->content->table = $grid;
$view->render(TRUE);
}
function add_message(){
if (!$this->acl_check_new(get_class($this),'redirection'))
Controller::error(ACCESS);
//destination type
$enum_type_model = new Enum_type_Model();
$types_destination = $enum_type_model->get_values(Enum_type_Model::$redirect_destination_id);
$types_destination[0] = '----- '.url_lang::lang('texts.Select destination web').' -----';
asort($types_destination);
$this->form = new Forge(url_lang::base()."redirection/add_message", '', 'POST', array('id' => 'article_form'));
$this->form->set_attr('class', 'form_class')->set_attr('method', 'post');
$this->form->group('')->label(url_lang::lang('texts.Basic information'));
$this->form->input('message_name')->label(url_lang::lang('texts.Name').':')->rules('required');
$this->form->textarea('text')->label(url_lang::lang('texts.Content of the message'))->rules('length[0,2047]')->value('');
$this->form->dropdown('redirect')->label(url_lang::lang('texts.Redirection type').':')->options($types_destination)->rules('required');
$this->form->submit('submit')->value(url_lang::lang('texts.Insert'));
special::required_forge_style($this->form, ' *', 'required');
//----- validate form and save data -----------------------------------
if($this->form->validate()){
$form_data = $this->form->as_array();
foreach($form_data as $key => $value){
$form_data[$key] = htmlspecialchars($value);
}
$message = new General_message_Model();
$message->message_name = $form_data['message_name'];
$message->text = $form_data['text'];
$message->enum_type_id = $form_data['redirect'];
unset($form_data);
if ($message->save()) {
$this->session->set_flash('message', url_lang::lang('texts.Message has been successfully created.'));
url::redirect(url_lang::base().'redirection/administration/');
exit;
}
}
//----- end validate --------------------------------------------------
$view = new View('main');
$view->title = url_lang::lang('texts.Add redirection message');
$view->content = new View('form');
$view->content->link_back = html::anchor(url_lang::base().'redirection/administration', url_lang::lang('texts.Back to the redirection administration'));
$view->content->headline = url_lang::lang('texts.Add redirection message');
$view->content->form = $this->form->html();
$view->render(TRUE);
}
function show_message($message_id = NULL){
if (!$this->acl_check_view(get_class($this),'redirection'))
Controller::error(ACCESS);
$message = new General_message_Model($message_id);
if (!$message_id || !$message->id){
Controller::error(RECORD);
url::redirect(url_lang::base().'redirection/administration');
}
$enum_type_model = new Enum_type_Model();
$destination = $enum_type_model->get_value($message->enum_type_id);
$link_back = html::anchor(url_lang::base().'redirection/administration', url_lang::lang('texts.Back to redirection administration'));
$view = new View('main');
$view->title = url_lang::lang('texts.Show redirection message');
$view->content = new View('redirection/show_message');
$view->content->destination = $destination;
$view->content->message = $message;
$view->content->link_back = $link_back;
$view->render(TRUE);
}
function edit_message($message_id = null) {
if (!$this->acl_check_edit(get_class($this),'redirection'))
Controller::error(ACCESS);
if (!isset($message_id))
Controller::warning(PARAMETER);
$message_model = new General_message_Model($message_id);
if ($message_model->id == 0)
Controller::error(RECORD);
//destination
$enum_type_model = new Enum_type_Model();
$types_destination = $enum_type_model->get_values(Enum_type_Model::$redirect_destination_id);
$this->form = new Forge(url_lang::base()."redirection/edit_message/".$message_id, '', 'POST', array('id' => 'article_form'));
$this->form->set_attr('class', 'form_class')->set_attr('method', 'post');
$this->form->group('')->label(url_lang::lang('texts.Basic information'));
$this->form->input('message_name')->label(url_lang::lang('texts.Name').':')->rules('required')->value($message_model->message_name);
$this->form->textarea('text')->label(url_lang::lang('texts.Content of the message'))->rules('length[0,2047]')->value($message_model->text);
$this->form->dropdown('redirect')->label(url_lang::lang('texts.Redirection type').':')->options($types_destination)->rules('required')->selected($message_model->enum_type_id);
$this->form->submit('submit')->value(url_lang::lang('texts.Update'));
special::required_forge_style($this->form, ' *', 'required');
//----- validate form and save data -----------------------------------
if($this->form->validate()){
$form_data = $this->form->as_array();
foreach($form_data as $key => $value){
$form_data[$key] = htmlspecialchars($value);
}
$message = new General_message_Model($message_id);
$message->message_name = $form_data['message_name'];
$message->text = $form_data['text'];
$message->enum_type_id = $form_data['redirect'];
if($message->active){
//find active message for this redirection type and if exists, keep it exclusively active
$general_message_model = new General_message_Model();
$result = $general_message_model->find_active($form_data['redirect']);
if(count($result)>0){
$message->active=0;
}
}
unset($form_data);
if ($message->save()) {
$this->session->set_flash('message', url_lang::lang('texts.Message has been successfully updated.'));
url::redirect(url_lang::base().'redirection/administration/');
exit;
}
}
//----- end validate --------------------------------------------------
$view = new View('main');
$view->title = url_lang::lang('texts.Edit redirection message');
$view->content = new View('form');
$view->content->form = $this->form->html();
$view->content->link_back = html::anchor(url_lang::base().'redirection/administration/', url_lang::lang('texts.Back to redirection administration'));
$view->content->headline = url_lang::lang('texts.Edit redirection message');
$view->render(TRUE);
} // end of function edit_message
function delete_message($message_id = NULL){
if (!$this->acl_check_delete(get_class($this),'redirection'))
Controller::error(ACCESS);
if (!isset($message_id))
Controller::warning(PARAMETER);
$message_model = new General_message_Model($message_id);
$linkback = url_lang::base()."redirection/administration/";
if ($message_model->active){
$this->session->set_flash('message', url_lang::lang('texts.Message is active, cannot be deleted.'));
url::redirect($linkback);
}
if ($message_model->delete()){
$this->session->set_flash('message', url_lang::lang('texts.Message has been successfully deleted.'));
} else {
$this->session->set_flash('message', url_lang::lang('texts.Error - cant delete the message.'));
}
url::redirect($linkback);
}
function activate_message($message_id = NULL){
if (!$this->acl_check_delete(get_class($this),'redirection'))
Controller::error(ACCESS);
if (!isset($message_id))
Controller::warning(PARAMETER);
$message_model = new General_message_Model($message_id);
$linkback = url_lang::base()."redirection/administration/";
if ($message_model->active){
$this->session->set_flash('message', url_lang::lang('texts.Message is already active.'));
url::redirect($linkback);
} else {
//find active message for this redirection type and deactivate it (if exists)
$general_message_model = new General_message_Model();
$result = $general_message_model->find_active($message_model->enum_type_id);
if(count($result)>0){
foreach ($result as $row){
$deactivated_message = new General_message_Model($row->id);
$deactivated_message->active = 0;
$deactivated_message->save();
}
}
$message_model->active=1;
}
if($message_model->save()){
$this->session->set_flash('message', url_lang::lang('texts.Message has been activated.'));
url::redirect($linkback);
}
}
function autoadmins(){
if (!$this->acl_check_new(get_class($this),'redirection'))
Controller::error(ACCESS);

Také k dispozici: Unified diff