changed: ticket templates

added: new plugin message (WINIX_END_REQUEST)


git-svn-id: svn://ttmath.org/publicrep/winix/trunk@714 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2011-01-27 12:24:45 +00:00
parent ecf19034ae
commit d4d9f89d1d
10 changed files with 117 additions and 38 deletions

View File

@@ -48,9 +48,9 @@ return percent;
// binary search for conf_item.id in ticket.par_tab (ticket.par_tab must be sorted by 'param')
// binary search for param in ticket.par_tab (ticket.par_tab must be sorted by 'param')
// !! zmienic nazwe na find_ticket_param
bool find_ticket_value(const TicketConf::TicketItem & conf_item, const Ticket & ticket, size_t & ticket_par_index)
bool find_ticket_value(long param, const Ticket & ticket, size_t & ticket_par_index)
{
if( ticket.par_tab.empty() )
return false;
@@ -58,25 +58,25 @@ bool find_ticket_value(const TicketConf::TicketItem & conf_item, const Ticket &
size_t o1 = 0;
size_t o2 = ticket.par_tab.size() - 1;
if( ticket.par_tab[o1].param == conf_item.id )
if( ticket.par_tab[o1].param == param )
{
ticket_par_index = o1;
return true;
}
if( conf_item.id < ticket.par_tab[o1].param )
if( param < ticket.par_tab[o1].param )
return false;
if( ticket.par_tab[o2].param == conf_item.id )
if( ticket.par_tab[o2].param == param )
{
while( o2 > 0 && ticket.par_tab[o2-1].param == conf_item.id )
while( o2 > 0 && ticket.par_tab[o2-1].param == param )
--o2;
ticket_par_index = o2;
return true;
}
if( conf_item.id > ticket.par_tab[o2].param )
if( param > ticket.par_tab[o2].param )
return false;
@@ -84,15 +84,15 @@ bool find_ticket_value(const TicketConf::TicketItem & conf_item, const Ticket &
{
ticket_par_index = (o1 + o2) / 2;
if( ticket.par_tab[ticket_par_index].param == conf_item.id )
if( ticket.par_tab[ticket_par_index].param == param )
{
while( ticket_par_index > 0 && ticket.par_tab[ticket_par_index-1].param == conf_item.id )
while( ticket_par_index > 0 && ticket.par_tab[ticket_par_index-1].param == param )
--ticket_par_index;
return true;
}
if( ticket.par_tab[ticket_par_index].param < conf_item.id )
if( ticket.par_tab[ticket_par_index].param < param )
o1 = ticket_par_index;
else
o2 = ticket_par_index;
@@ -223,15 +223,6 @@ void tickets_tab(Info & i)
long id = ticket_info.item_sort_tab[item_sort_index]->id;
has_ticket = find_ticket(ticket_info.ticket_tab, id, ticket_index);
/* for(size_t a=0 ; a<ticket_info.ticket_tab.size() ; ++a)
{
if( ticket_info.ticket_tab[a].file_id == ticket_info.item_sort_tab[item_sort_index]->id )
{
has_ticket = true;
ticket_index = a;
}
}
*/
plugin.Call(WINIX_PL_THREAD_SET_SORTTAB_INDEX, item_sort_index);
}
}
@@ -258,6 +249,38 @@ void tickets_tab_subject(Info & i)
}
void tickets_tab_value_int(Info & i)
{
if( has_ticket && ticket_index < ticket_info.ticket_tab.size() )
{
size_t par_index;
long id = Tol(i.par);
Ticket & ticket = ticket_info.ticket_tab[ticket_index];
if( find_ticket_value(id, ticket, par_index) )
i.out << ticket.par_tab[par_index].int_value;
}
}
void tickets_tab_value_str(Info & i)
{
if( has_ticket && ticket_index < ticket_info.ticket_tab.size() )
{
size_t par_index;
long id = Tol(i.par);
Ticket & ticket = ticket_info.ticket_tab[ticket_index];
if( find_ticket_value(id, ticket, par_index) )
i.out << ticket.par_tab[par_index].str_value;
}
}
void tickets_tab_conf_tab(Info & i)
{
has_value = false;
@@ -273,7 +296,7 @@ void tickets_tab_conf_tab(Info & i)
{
const TicketConf::TicketItem & conf_item = ticket_info.cur_conf->tab[conf_tab_index];
const Ticket & ticket = ticket_info.ticket_tab[ticket_index];
has_value = find_ticket_value(conf_item, ticket, par_index);
has_value = find_ticket_value(conf_item.id, ticket, par_index);
}
}
}
@@ -405,7 +428,7 @@ void ticket_tab(Info & i)
if( i.res )
{
const TicketConf::TicketItem & conf_item = ticket_info.cur_conf->tab[conf_index];
has_value = find_ticket_value(conf_item, *ticket_info.ticket, par_index);
has_value = find_ticket_value(conf_item.id, *ticket_info.ticket, par_index);
}
}
@@ -606,7 +629,10 @@ using namespace ns_ticket_tab;
fun->Insert("tickets_tab_url", tickets_tab_url);
fun->Insert("tickets_tab_subject_empty", tickets_tab_subject_empty);
fun->Insert("tickets_tab_subject", tickets_tab_subject);
fun->Insert("tickets_tab_url", tickets_tab_url);
// you should provide an id (param) as a first parameter
fun->Insert("tickets_tab_value_int", tickets_tab_value_int);
fun->Insert("tickets_tab_value_str", tickets_tab_value_str);
fun->Insert("tickets_tab_conf_tab", tickets_tab_conf_tab);
fun->Insert("tickets_tab_conf_tab_has_value", tickets_tab_conf_tab_has_value);