/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2010, Tomasz Sowa * All rights reserved. * */ #ifndef headerfile_winix_plugins_ticket_ticketinfo #define headerfile_winix_plugins_ticket_ticketinfo #include #include "ticket.h" #include "ticketparser.h" #include "core/item.h" #include "core/system.h" #include "functions/functions.h" #include "db/db.h" #include "tdb.h" namespace Ticket { struct TicketConfWrap { bool to_delete; std::wstring file_name; TicketConf conf; TicketConfWrap() { to_delete = false; } }; class TicketInfo { public: TicketInfo(); void SetTDb(TDb * ptdb); void SetDb(Db * pdb); void SetConfig(Config * pconfig); void SetSystem(System * psystem); void SetRequest(Request * prequest); void SetFunctions(Functions * pfunctions); void Clear(); // current ticket for templates const Ticket * ticket; // for displaying all tickets in a directory std::vector item_tab; std::vector ticket_tab; std::vector item_sort_tab; // typedef std::map ConfTab; ConfTab conf_tab; // current ticket config // will be set by FindCurrentConf() const TicketConfWrap * cur_conf_wrap; const TicketConf * cur_conf; // default: "progress" // can be set in config in option: ticket_form_progress_prefix std::wstring progress_prefix; // ticket plugin id int plugin_id; int mount_type_ticket; int mount_par_ticket_conf; // template index for notifications size_t template_index; void ReadTicketConf(bool skip_existing_configs = false); void FindCurrentConf(); void CheckMinMaxValue(const TicketConf::TicketItem & conf_item, Ticket::TicketParam & par); void ReadTicketParams(Ticket & ticket, bool clear_ticket = true, std::vector * file_map = 0); private: Db * db; TDb * tdb; Config * config; System * system; Request * request; Functions * functions; // for reading parameters Ticket::TicketParam ticket_param; // for adding a new image/file to a ticket Item file; // for reading config file TicketParser ticket_parser; std::vector config_dir_tab; Item config_file; // for Clearing // (we don't want to use empty pointers) const TicketConfWrap cur_conf_wrap_empty; const TicketConf cur_conf_empty; const Ticket ticket_empty; bool GetConfContent(const std::wstring & path); bool ParseTicketConf(long mount_dir_id, const std::wstring & path); void ReadTicketConf(Mounts & mounts, bool skip_existing_configs); void MarkAllConfToDelete(); void DeleteAllMarkedConf(); bool ReadTicketValue(const TicketConf::TicketItem & conf_item, Ticket::TicketParam & par, const std::wstring & value); bool ReadTicketValue(const TicketConf::TicketItem & conf_item, Ticket::TicketParam & par, const PostFile & value, std::vector * file_map); void ReadTicketParam(Ticket & ticket, int param_id, const std::wstring & value); void ReadTicketParam(Ticket & ticket, int param_id, const PostFile & value, std::vector * file_map); }; } #endif