public function install() { $fields = array( array('name' => _M('Project Name'), 'type'=>'text', 'required'=>true, 'param'=>'64', 'extra'=>false, 'visible'=>true,'display_callback'=>array('Tests_BugtrackCommon', 'display_bugtrack')), array('name' => _M('Company Name'), 'type'=>'select', 'required'=>true, 'param'=>array('company'=>'Company Name'), 'extra'=>false, 'visible'=>true), array('name' => _M('Due Date'), 'type'=>'date', 'required'=>true, 'param'=>64, 'extra'=>false, 'visible'=>true), array('name' => _M('Status'), 'type'=>'commondata', 'required'=>true, 'param'=>'Bugtrack_Status', 'extra'=>false,'visible'=>true), array('name' => _M('Description'), 'type'=>'long text', 'required'=>false, 'param'=>'64', 'extra'=>false) ); Utils_RecordBrowserCommon::install_new_recordset('bugtrack', $fields); Utils_RecordBrowserCommon::new_filter('bugtrack', 'Company Name'); Utils_RecordBrowserCommon::set_quickjump('bugtrack', 'Project Name'); Utils_RecordBrowserCommon::set_favorites('bugtrack', true); Utils_RecordBrowserCommon::set_recent('bugtrack', 15); Utils_RecordBrowserCommon::set_caption('bugtrack', _M('Bugtrack')); Utils_RecordBrowserCommon::set_icon('bugtrack', Base_ThemeCommon::get_template_filename('Tests/Bugtrack', 'icon.png')); // ************ addons ************** // Utils_AttachmentCommon::new_addon('bugtrack'); Utils_RecordBrowserCommon::new_addon('company', 'Tests/Bugtrack', 'company_bugtrack_addon', 'Bugtrack'); // ************ other ************** // Utils_CommonDataCommon::new_array('Bugtrack_Status',array('new'=>_M('New'),'inprog'=>_M('In Progress'),'cl'=>_M('Closed')),true,true); Utils_RecordBrowserCommon::add_access('bugtrack', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('bugtrack', 'add', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('bugtrack', 'edit', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('bugtrack', 'delete', array('ACCESS:employee', 'ACCESS:manager')); return true; }
public function install() { Base_ThemeCommon::install_default_theme(CRM_ContactsInstall::module_name()); Utils_RecordBrowserCommon::register_datatype('crm_company', 'CRM_ContactsCommon', 'crm_company_datatype'); Utils_RecordBrowserCommon::register_datatype('crm_contact', 'CRM_ContactsCommon', 'crm_contact_datatype'); Utils_RecordBrowserCommon::register_datatype('crm_company_contact', 'CRM_ContactsCommon', 'crm_company_contact_datatype'); Utils_RecordBrowserCommon::register_datatype('email', 'CRM_ContactsCommon', 'email_datatype'); ModuleManager::include_common('CRM_Contacts', 0); // ************ companies ************** // $fields = array(array('name' => _M('Company Name'), 'type' => 'text', 'required' => true, 'param' => '128', 'extra' => false, 'visible' => true, 'display_callback' => array('Utils_RecordBrowserCommon', 'display_linked_field_label'), 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_cname')), array('name' => _M('Short Name'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'visible' => false), array('name' => _M('Phone'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'visible' => true, 'display_callback' => array('CRM_ContactsCommon', 'display_phone')), array('name' => _M('Fax'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true), array('name' => _M('Email'), 'type' => 'email', 'required' => false, 'param' => array('unique' => true), 'extra' => true, 'visible' => false), array('name' => _M('Web address'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'display_webaddress'), 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_webaddress')), array('name' => _M('Group'), 'type' => 'multiselect', 'required' => false, 'visible' => true, 'param' => Utils_RecordBrowserCommon::multiselect_from_common('Companies_Groups'), 'extra' => false, 'filter' => true), array('name' => _M('Permission'), 'type' => 'commondata', 'required' => true, 'param' => array('order_by_key' => true, 'CRM/Access'), 'extra' => true), array('name' => _M('Address 1'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'maplink')), array('name' => _M('Address 2'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'maplink')), array('name' => _M('City'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'visible' => true, 'display_callback' => array('CRM_ContactsCommon', 'maplink')), array('name' => _M('Country'), 'type' => 'commondata', 'required' => true, 'param' => array('Countries'), 'extra' => true, 'QFfield_callback' => array('Data_CountriesCommon', 'QFfield_country')), array('name' => _M('Zone'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries', 'Country'), 'extra' => true, 'visible' => true, 'QFfield_callback' => array('Data_CountriesCommon', 'QFfield_zone')), array('name' => _M('Postal Code'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true), array('name' => _M('Tax ID'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_tax_id'))); Utils_RecordBrowserCommon::install_new_recordset('company', $fields); // ************ contacts ************** // $fields = array(array('name' => _M('Last Name'), 'type' => 'text', 'required' => true, 'param' => '64', 'extra' => false, 'visible' => true, 'display_callback' => array('Utils_RecordBrowserCommon', 'display_linked_field_label')), array('name' => _M('First Name'), 'type' => 'text', 'required' => true, 'param' => '64', 'extra' => false, 'visible' => true, 'display_callback' => array('Utils_RecordBrowserCommon', 'display_linked_field_label')), array('name' => _M('Company Name'), 'type' => 'crm_company', 'param' => array('field_type' => 'select'), 'required' => false, 'extra' => false, 'visible' => true, 'filter' => true), array('name' => _M('Related Companies'), 'type' => 'crm_company', 'param' => array('field_type' => 'multiselect'), 'required' => false, 'extra' => true, 'visible' => false, 'filter' => true), array('name' => _M('Group'), 'type' => 'multiselect', 'required' => false, 'param' => Utils_RecordBrowserCommon::multiselect_from_common('Contacts_Groups'), 'extra' => true, 'filter' => true), array('name' => _M('Title'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true), array('name' => _M('Work Phone'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'visible' => true, 'display_callback' => array('CRM_ContactsCommon', 'display_phone')), array('name' => _M('Mobile Phone'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'visible' => true, 'display_callback' => array('CRM_ContactsCommon', 'display_phone')), array('name' => _M('Fax'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true), array('name' => _M('Email'), 'type' => 'email', 'required' => false, 'param' => array('unique' => true), 'extra' => false, 'visible' => false), array('name' => _M('Web address'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'display_webaddress'), 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_webaddress')), array('name' => _M('Address 1'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'maplink')), array('name' => _M('Address 2'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'maplink')), array('name' => _M('City'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'visible' => true, 'display_callback' => array('CRM_ContactsCommon', 'maplink')), array('name' => _M('Country'), 'type' => 'commondata', 'required' => true, 'param' => array('Countries'), 'extra' => true, 'visible' => false, 'QFfield_callback' => array('Data_CountriesCommon', 'QFfield_country')), array('name' => _M('Zone'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries', 'Country'), 'extra' => true, 'visible' => true, 'QFfield_callback' => array('Data_CountriesCommon', 'QFfield_zone')), array('name' => _M('Postal Code'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true), array('name' => _M('Permission'), 'type' => 'commondata', 'required' => true, 'param' => array('order_by_key' => true, 'CRM/Access'), 'extra' => true), array('name' => _M('Details'), 'type' => 'page_split'), array('name' => _M('Home Phone'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'display_phone')), array('name' => _M('Home Address 1'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'home_maplink')), array('name' => _M('Home Address 2'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'home_maplink')), array('name' => _M('Home City'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true, 'display_callback' => array('CRM_ContactsCommon', 'home_maplink')), array('name' => _M('Home Country'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries'), 'extra' => true, 'QFfield_callback' => array('Data_CountriesCommon', 'QFfield_country')), array('name' => _M('Home Zone'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries', 'Home Country'), 'extra' => true, 'QFfield_callback' => array('Data_CountriesCommon', 'QFfield_zone')), array('name' => _M('Home Postal Code'), 'type' => 'text', 'required' => false, 'param' => '64', 'extra' => true), array('name' => _M('Birth Date'), 'type' => 'date', 'required' => false, 'param' => 64, 'extra' => true), array('name' => _M('Login Panel'), 'type' => 'page_split', 'param' => 1), array('name' => _M('Login'), 'type' => 'integer', 'required' => false, 'param' => '64', 'extra' => false, 'display_callback' => array('CRM_ContactsCommon', 'display_login'), 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_login'), 'style' => ''), array('name' => _M('Username'), 'type' => 'calculated', 'required' => false, 'extra' => false, 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_username')), array('name' => _M('Set Password'), 'type' => 'calculated', 'required' => false, 'extra' => false, 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_password')), array('name' => _M('Confirm Password'), 'type' => 'calculated', 'required' => false, 'extra' => false, 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_repassword')), array('name' => _M('Admin'), 'type' => 'calculated', 'required' => false, 'extra' => false, 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_admin'), 'display_callback' => array('CRM_ContactsCommon', 'display_admin')), array('name' => _M('Access'), 'type' => 'multiselect', 'required' => false, 'param' => Utils_RecordBrowserCommon::multiselect_from_common('Contacts/Access'), 'extra' => false, 'QFfield_callback' => array('CRM_ContactsCommon', 'QFfield_access'))); Utils_RecordBrowserCommon::install_new_recordset('contact', $fields); DB::CreateIndex('contact_data_1__f_login_idx', 'contact_data_1', 'f_login,active'); // ************ company settings ************** // Utils_RecordBrowserCommon::register_processing_callback('company', array('CRM_ContactsCommon', 'submit_company')); Utils_RecordBrowserCommon::set_quickjump('company', 'Company Name'); Utils_RecordBrowserCommon::set_favorites('company', true); Utils_RecordBrowserCommon::set_recent('company', 15); Utils_RecordBrowserCommon::set_caption('company', _M('Companies')); Utils_RecordBrowserCommon::set_icon('company', Base_ThemeCommon::get_template_filename(CRM_ContactsInstall::module_name(), 'companies.png')); Utils_RecordBrowserCommon::set_description_callback('company', array('CRM_ContactsCommon', 'company_format_default')); Utils_RecordBrowserCommon::enable_watchdog('company', array('CRM_ContactsCommon', 'company_watchdog_label')); Utils_RecordBrowserCommon::set_clipboard_pattern('company', "%{{company_name}<BR>}\n%{{address_1}<BR>}\n%{{address_2}<BR>}\n%{%{{city} }%{{zone} }{postal_code}<BR>}\n%{{country}<BR>}\n%{tel. {phone}<BR>}\n%{fax. {fax}<BR>}\n%{{web_address}<BR>}"); // ************ contacts settings ************** // Utils_RecordBrowserCommon::set_tpl('contact', Base_ThemeCommon::get_template_filename(CRM_ContactsInstall::module_name(), 'Contact')); Utils_RecordBrowserCommon::register_processing_callback('contact', array('CRM_ContactsCommon', 'submit_contact')); Utils_RecordBrowserCommon::set_quickjump('contact', 'Last Name'); Utils_RecordBrowserCommon::set_favorites('contact', true); Utils_RecordBrowserCommon::set_recent('contact', 15); Utils_RecordBrowserCommon::set_caption('contact', _M('Contacts')); Utils_RecordBrowserCommon::set_icon('contact', Base_ThemeCommon::get_template_filename(CRM_ContactsInstall::module_name(), 'icon.png')); Utils_RecordBrowserCommon::set_description_callback('contact', array('CRM_ContactsCommon', 'contact_format_default')); Utils_RecordBrowserCommon::enable_watchdog('contact', array('CRM_ContactsCommon', 'contact_watchdog_label')); Utils_RecordBrowserCommon::set_clipboard_pattern('contact', "%{{first_name} {last_name}<BR>}\n%{{title}<BR>}\n%{{company_name}<BR>}\n%{{address_1}<BR>}\n%{{address_2}<BR>}\n%{%{{city} }%{{zone} }{postal_code}<BR>}\n%{{country}<BR>}\n%{tel. {work_phone}<BR>}\n%{{email}<BR>}"); // ************ addons ************** // Utils_RecordBrowserCommon::new_addon('company', CRM_ContactsInstall::module_name(), 'company_addon', _M('Contacts')); Utils_AttachmentCommon::new_addon('company'); Utils_AttachmentCommon::new_addon('contact'); // ************ other ************** // Utils_CommonDataCommon::new_array('Companies_Groups', array('customer' => _M('Customer'), 'vendor' => _M('Vendor'), 'other' => _M('Other'), 'manager' => _M('Manager')), true, true); Utils_CommonDataCommon::new_array('Contacts_Groups', array('office' => _M('Office Staff'), 'field' => _M('Field Staff'), 'custm' => _M('Customer')), true, true); Utils_CommonDataCommon::new_array('Contacts/Access', array('manager' => _M('Manager')), true, true); Utils_BBCodeCommon::new_bbcode('contact', 'CRM_ContactsCommon', 'contact_bbcode'); Utils_BBCodeCommon::new_bbcode('company', 'CRM_ContactsCommon', 'company_bbcode'); Utils_RecordBrowserCommon::set_search('company', 1, 2); Utils_RecordBrowserCommon::set_search('contact', 1, 2); Base_AclCommon::add_clearance_callback(array('CRM_ContactsCommon', 'crm_clearance')); Utils_CommonDataCommon::extend_array('Contacts/Access', array('employee' => _M('Employee'))); self::install_permissions(); return true; }
public function install() { Base_ThemeCommon::install_default_theme($this->get_type()); $fields = array(array('name' => _M('Name'), 'type' => 'text', 'required' => true, 'param' => 16, 'extra' => false, 'visible' => true), array('name' => _M('Description'), 'type' => 'long text', 'required' => false, 'extra' => false), array('name' => _M('Percentage'), 'type' => 'float', 'required' => true, 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('data_tax_rates', $fields); Utils_RecordBrowserCommon::new_record('data_tax_rates', array('name' => 'Non-taxable', 'percentage' => 0)); Utils_RecordBrowserCommon::set_caption('data_tax_rates', _M('Tax Rates')); Utils_RecordBrowserCommon::set_icon('data_tax_rates', Base_ThemeCommon::get_template_filename('Data/TaxRates', 'icon.png')); Utils_RecordBrowserCommon::add_access('data_tax_rates', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('data_tax_rates', 'add', array('ACCESS:employee', 'ACCESS:manager')); Utils_RecordBrowserCommon::add_access('data_tax_rates', 'edit', array('ACCESS:employee', 'ACCESS:manager')); Utils_RecordBrowserCommon::add_access('data_tax_rates', 'delete', array('ACCESS:employee', 'ACCESS:manager')); return true; }
public function install() { //addons table $fields = array(array('name' => _M('Recordset'), 'type' => 'text', 'param' => 64, 'display_callback' => array($this->get_type() . 'Common', 'display_recordset'), 'QFfield_callback' => array($this->get_type() . 'Common', 'QFfield_recordset'), 'required' => true, 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('phonecall_related', $fields); Utils_RecordBrowserCommon::set_caption('phonecall_related', _M('Phonecalls Related Recordsets')); Utils_RecordBrowserCommon::register_processing_callback('phonecall_related', array('CRM_PhoneCallCommon', 'processing_related')); Utils_RecordBrowserCommon::add_access('phonecall_related', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('phonecall_related', 'add', 'ADMIN'); Utils_RecordBrowserCommon::add_access('phonecall_related', 'edit', 'SUPERADMIN'); Utils_RecordBrowserCommon::add_access('phonecall_related', 'delete', 'SUPERADMIN'); // ************ phone calls ************** // Base_ThemeCommon::install_default_theme(CRM_PhoneCallInstall::module_name()); $fields = array(array('name' => _M('Subject'), 'type' => 'text', 'required' => true, 'param' => '64', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_PhoneCallCommon', 'display_subject')), array('name' => _M('Contact Name'), 'type' => 'hidden', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_PhoneCallCommon', 'display_contact_name')), array('name' => _M('Phone Number'), 'type' => 'hidden', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_PhoneCallCommon', 'display_phone_number')), array('name' => _M('Customer'), 'type' => 'crm_company_contact', 'param' => array('field_type' => 'select'), 'extra' => false), array('name' => _M('Other Customer'), 'type' => 'checkbox', 'extra' => false, 'QFfield_callback' => array('CRM_PhoneCallCommon', 'QFfield_other_contact')), array('name' => _M('Other Customer Name'), 'type' => 'text', 'param' => '64', 'extra' => false), array('name' => _M('Permission'), 'type' => 'commondata', 'required' => true, 'param' => array('order_by_key' => true, 'CRM/Access'), 'extra' => false), array('name' => _M('Employees'), 'type' => 'crm_contact', 'param' => array('field_type' => 'multiselect', 'crits' => array('CRM_PhoneCallCommon', 'employees_crits'), 'format' => array('CRM_ContactsCommon', 'contact_format_no_company')), 'required' => true, 'extra' => false, 'visible' => true, 'filter' => true), array('name' => _M('Status'), 'type' => 'commondata', 'required' => true, 'filter' => true, 'param' => array('order_by_key' => true, 'CRM/Status'), 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_PhoneCallCommon', 'display_status')), array('name' => _M('Priority'), 'type' => 'commondata', 'required' => true, 'param' => array('order_by_key' => true, 'CRM/Priority'), 'extra' => false), array('name' => _M('Phone'), 'type' => 'integer', 'extra' => false, 'QFfield_callback' => array('CRM_PhoneCallCommon', 'QFfield_phone'), 'display_callback' => array('CRM_PhoneCallCommon', 'display_phone')), array('name' => _M('Other Phone'), 'type' => 'checkbox', 'extra' => false, 'QFfield_callback' => array('CRM_PhoneCallCommon', 'QFfield_other_phone')), array('name' => _M('Other Phone Number'), 'type' => 'text', 'param' => '64', 'extra' => false), array('name' => _M('Date and Time'), 'type' => 'timestamp', 'required' => true, 'extra' => false, 'visible' => true), array('name' => _M('Description'), 'type' => 'long text', 'required' => false, 'param' => '255', 'extra' => false), array('name' => _M('Related'), 'type' => 'multiselect', 'QFfield_callback' => array('CRM_PhoneCallCommon', 'QFfield_related'), 'param' => '__RECORDSETS__::;CRM_PhoneCallCommon::related_crits', 'extra' => false, 'required' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('phonecall', $fields); Utils_RecordBrowserCommon::set_tpl('phonecall', Base_ThemeCommon::get_template_filename(CRM_PhoneCallInstall::module_name(), 'default')); Utils_RecordBrowserCommon::register_processing_callback('phonecall', array('CRM_PhoneCallCommon', 'submit_phonecall')); Utils_RecordBrowserCommon::set_icon('phonecall', Base_ThemeCommon::get_template_filename(CRM_PhoneCallInstall::module_name(), 'icon.png')); Utils_RecordBrowserCommon::set_recent('phonecall', 5); Utils_RecordBrowserCommon::set_caption('phonecall', _M('Phonecalls')); Utils_RecordBrowserCommon::enable_watchdog('phonecall', array('CRM_PhoneCallCommon', 'watchdog_label')); Utils_RecordBrowserCommon::set_search('phonecall', 2, 0); // ************ addons ************** // Utils_AttachmentCommon::new_addon('phonecall'); Utils_RecordBrowserCommon::new_addon('phonecall', CRM_PhoneCallInstall::module_name(), 'messanger_addon', _M('Alerts')); CRM_RoundcubeCommon::new_addon('phonecall'); // ************ other ************** // CRM_CalendarCommon::new_event_handler(_M('Phonecalls'), array('CRM_PhoneCallCommon', 'crm_calendar_handler')); Utils_BBCodeCommon::new_bbcode('phone', 'CRM_PhoneCallCommon', 'phone_bbcode'); if (ModuleManager::is_installed('Premium_SalesOpportunity') >= 0) { Utils_RecordBrowserCommon::new_record_field('phonecall', _M('Opportunity'), 'select', true, false, 'premium_salesopportunity::Opportunity Name;Premium_SalesOpportunityCommon::crm_opportunity_reference_crits', '', false); } Utils_RecordBrowserCommon::add_access('phonecall', 'view', 'ACCESS:employee', array('(!permission' => 2, '|employees' => 'USER')); Utils_RecordBrowserCommon::add_access('phonecall', 'add', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('phonecall', 'edit', 'ACCESS:employee', array('(permission' => 0, '|employees' => 'USER', '|customer' => 'USER')); Utils_RecordBrowserCommon::add_access('phonecall', 'delete', 'ACCESS:employee', array(':Created_by' => 'USER_ID')); Utils_RecordBrowserCommon::add_access('phonecall', 'delete', array('ACCESS:employee', 'ACCESS:manager')); return true; }
public function install() { Utils_CommonDataCommon::new_array('crm_assets_category', array(_M('Desktop'), _M('Server'), _M('Notebook'), _M('Monitor'), _M('Printer'), _M('Other')), true, true); Utils_CommonDataCommon::new_id('crm_assets_monitor_type', true); Utils_CommonDataCommon::new_array('crm_assets_monitor_type', array(_M('CRT'), _M('LCD'), _M('Other'))); Utils_CommonDataCommon::new_id('crm_assets_printer_type', true); Utils_CommonDataCommon::new_array('crm_assets_printer_type', array(_M('Ink'), _M('Laser'), _M('Other'))); $fields = array(array('name' => _M('Asset ID'), 'type' => 'calculated', 'param' => Utils_RecordBrowserCommon::actual_db_type('text', 16), 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_AssetsCommon', 'display_asset_id')), array('name' => _M('Active'), 'type' => 'checkbox', 'extra' => false, 'visible' => true, 'filter' => true), array('name' => _M('Category'), 'type' => 'commondata', 'param' => array('crm_assets_category'), 'extra' => false, 'visible' => true, 'filter' => true, 'required' => true, 'QFfield_callback' => array('CRM_AssetsCommon', 'QFfield_category')), array('name' => _M('Asset Name'), 'type' => 'text', 'param' => '128', 'extra' => false, 'visible' => true, 'required' => true), array('name' => _M('Asset Tag'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Company'), 'type' => 'crm_company', 'extra' => false, 'visible' => true, 'param' => array('field_type' => 'select', 'crits' => array('CRM_AssetsCommon', 'company_crits')), 'filter' => true), array('name' => _M('Date Purchased'), 'type' => 'date', 'extra' => false), array('name' => _M('Serial Number'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('IP Address'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('General Info'), 'type' => 'calculated', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_AssetsCommon', 'display_info'), 'QFfield_callback' => array('CRM_AssetsCommon', 'QFfield_info')), array('name' => _M('Host Name'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Operating System'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Processor'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('RAM'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('HDD'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Optical Devices'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Audio'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Software'), 'type' => 'long text', 'extra' => false), array('name' => _M('Display Type'), 'type' => 'commondata', 'extra' => false, 'param' => array('crm_assets_monitor_type')), array('name' => _M('Screen Size'), 'type' => 'text', 'param' => '128', 'extra' => false), array('name' => _M('Printer Type'), 'type' => 'commondata', 'extra' => false, 'param' => array('order_by_key' => true, 'crm_assets_printer_type')), array('name' => _M('Color Printing'), 'type' => 'checkbox', 'extra' => false)); Utils_RecordBrowserCommon::install_new_recordset('crm_assets', $fields); Utils_RecordBrowserCommon::set_recent('crm_assets', 10); Utils_RecordBrowserCommon::set_favorites('crm_assets', true); Utils_RecordBrowserCommon::set_caption('crm_assets', _M('Assets')); Utils_RecordBrowserCommon::set_quickjump('crm_assets', 'Asset Name'); Utils_RecordBrowserCommon::set_icon('crm_assets', Base_ThemeCommon::get_template_filename('CRM/Assets', 'icon.png')); Utils_RecordBrowserCommon::register_processing_callback('crm_assets', array('CRM_AssetsCommon', 'process_request')); Utils_RecordBrowserCommon::enable_watchdog('crm_assets', array('CRM_AssetsCommon', 'watchdog_label')); Utils_RecordBrowserCommon::add_default_access('crm_assets'); Utils_RecordBrowserCommon::set_search('crm_assets', 2, 0); Utils_RecordBrowserCommon::new_addon('company', 'CRM/Assets', 'assets_addon', _M('Assets')); Utils_AttachmentCommon::new_addon('crm_assets'); Base_ThemeCommon::install_default_theme($this->get_type()); return true; }
public function install() { $ret = true; $recordsetName = "quick_search"; $fields = array(array('name' => __('Preset name'), 'type' => 'text', 'param' => '255', 'visible' => true, 'required' => true), array('name' => __('Search prompt'), 'type' => 'text', 'param' => '255', 'visible' => true, 'required' => true), array('name' => __('Recordsets'), 'type' => 'long text', 'QFfield_callback' => array('Applets_QuickSearchCommon', 'QFfield_recordsets'), 'display_callback' => array('Applets_QuickSearchCommon', 'display_recordsets'), 'required' => true, 'extra' => false, 'visible' => true), array('name' => __('Select field to search'), 'type' => 'long text', 'QFfield_callback' => array('Applets_QuickSearchCommon', 'QFfield_recordfields'), 'display_callback' => array('Applets_QuickSearchCommon', 'display_recordfields'), 'required' => true, 'extra' => false, 'visible' => true), array('name' => __('Search Format'), 'type' => 'long text', 'param' => '255', 'required' => true, 'visible' => true), array('name' => __('Search field for identifier'), 'type' => 'long text', 'QFfield_callback' => array('Applets_QuickSearchCommon', 'QFfield_identifierfields'), 'display_callback' => array('Applets_QuickSearchCommon', 'display_identifierfields'), 'required' => true, 'extra' => false, 'visible' => true), array('name' => __('Result Format'), 'type' => 'long text', 'param' => '255', 'required' => true, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset($recordsetName, $fields); Utils_RecordBrowserCommon::set_caption($recordsetName, __('Quick Search')); Utils_RecordBrowserCommon::set_favorites($recordsetName, false); Utils_RecordBrowserCommon::register_processing_callback($recordsetName, array('Applets_QuickSearchCommon', 'parse_values')); //sets a default value on quick search data /* Utils_RecordBrowserCommon::new_record($recordsetName, array("preset_name" => "Test Value", "search_prompt" => "testholder", "recordsets" => array("company[A]", "contact"), "select_field" => array("company:company_name[A]","company:short_name[A]","contact:last_name[A]","contact:first_name"), "result_format"=> "[%company:company_name%] [%company:short_name%] [%contact:last_name%] [%contact:first_name%]")); */ Utils_RecordBrowserCommon::add_access($recordsetName, 'view', 'ACCESS:employee', array('(!permission' => 2, '|employees' => 'USER')); Utils_RecordBrowserCommon::add_access($recordsetName, 'add', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access($recordsetName, 'edit', 'ACCESS:employee', array('(permission' => 0, '|employees' => 'USER', '|customers' => 'USER')); Utils_RecordBrowserCommon::add_access($recordsetName, 'delete', 'ACCESS:employee', array(':Created_by' => 'USER_ID')); Utils_RecordBrowserCommon::add_access($recordsetName, 'delete', array('ACCESS:employee', 'ACCESS:manager')); //array('"~last_name'=>DB::Concat(DB::qstr('%'), DB::qstr('foo'), DB::qstr('%'))) return $ret; }
public function install() { $ret = true; Utils_RecordBrowserCommon::uninstall_recordset('utils_attachment'); $fields = array( array( 'name' => _M('Edited on'), 'type' => 'timestamp', 'extra'=>false, 'visible'=>true, 'required' => false, 'display_callback'=>array('Utils_AttachmentCommon','display_date'), 'QFfield_callback'=>array('Utils_AttachmentCommon','QFfield_date') ), array( 'name' => _M('Title'), 'type' => 'text', 'param' => 255, 'required' => false, 'extra' => false, 'visible' => false ), array('name' => _M('Note'), 'type' => 'long text', 'required' => false, 'extra' => false, 'visible'=>true, 'display_callback'=>array('Utils_AttachmentCommon','display_note'), 'QFfield_callback'=>array('Utils_AttachmentCommon','QFfield_note'), ), array('name' => _M('Permission'), 'type' => 'commondata', 'required' => true, 'param' => array('order_by_key' => true, 'CRM/Access'), 'extra' => false), array('name' => _M('Sticky'), 'type' => 'checkbox', 'visible' => true, 'extra' => false), array('name' => _M('Crypted'), 'type' => 'checkbox', 'extra' => false, 'QFfield_callback'=>array('Utils_AttachmentCommon','QFfield_crypted')), array('name' => _M('Attached to'), 'type' => 'calculated', 'extra' => false, 'display_callback'=>array('Utils_AttachmentCommon','display_attached_to')), ); Utils_RecordBrowserCommon::install_new_recordset('utils_attachment',$fields); Utils_RecordBrowserCommon::add_access('utils_attachment', 'view', 'ACCESS:employee', array('(!permission'=>2, '|:Created_by'=>'USER_ID')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'delete', 'ACCESS:employee', array(':Created_by'=>'USER_ID')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'delete', array('ACCESS:employee','ACCESS:manager')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'add', 'ACCESS:employee',array(),array('edited_on')); Utils_RecordBrowserCommon::add_access('utils_attachment', 'edit', 'ACCESS:employee', array('(permission'=>0, '|:Created_by'=>'USER_ID'),array('edited_on')); Utils_RecordBrowserCommon::register_processing_callback('utils_attachment',array('Utils_AttachmentCommon','submit_attachment')); Utils_RecordBrowserCommon::set_tpl('utils_attachment', Base_ThemeCommon::get_template_filename('Utils/Attachment', 'View_entry')); Utils_RecordBrowserCommon::enable_watchdog('utils_attachment', array('Utils_AttachmentCommon','watchdog_label')); Utils_RecordBrowserCommon::set_caption('utils_attachment', _M('Note')); Utils_RecordBrowserCommon::set_description_callback('utils_attachment', array('Utils_AttachmentCommon','description_callback')); Utils_RecordBrowserCommon::set_jump_to_id('utils_attachment', false); Utils_RecordBrowserCommon::set_search('utils_attachment',1,0); $ret &= DB::CreateTable('utils_attachment_local',' local C(255) NOTNULL, attachment I4 NOTNULL, func C(255), args C(255)', array('constraints'=>', FOREIGN KEY (attachment) REFERENCES utils_attachment_data_1(ID)')); if(!$ret){ print('Unable to create table utils_attachment_local.<br>'); return false; } DB::CreateIndex('utils_attachment_local__idx', 'utils_attachment_local', 'local'); $ret &= DB::CreateTable('utils_attachment_file',' id I4 AUTO KEY NOTNULL, attach_id I4 NOTNULL, original C(255) NOTNULL, created_by I4, created_on T DEFTIMESTAMP, deleted I1 NOTNULL DEFAULT 0', array('constraints'=>', FOREIGN KEY (created_by) REFERENCES user_login(ID), FOREIGN KEY (attach_id) REFERENCES utils_attachment_data_1(id)')); if(!$ret){ print('Unable to create table utils_attachment_file.<br>'); return false; } DB::CreateIndex('attach_id_idx','utils_attachment_file','attach_id'); $ret &= DB::CreateTable('utils_attachment_download',' id I4 AUTO KEY NOTNULL, attach_file_id I4 NOTNULL, created_by I4, created_on T, expires_on T, remote I1 DEFAULT 0, download_on T DEFTIMESTAMP, ip_address C(32), host_name C(64), description C(128), token C(32)', array('constraints'=>', FOREIGN KEY (created_by) REFERENCES user_login(ID), FOREIGN KEY (attach_file_id) REFERENCES utils_attachment_file(id)')); if(!$ret){ print('Unable to create table utils_attachment_download.<br>'); return false; } $ret &= DB::CreateTable('utils_attachment_clipboard',' id I4 AUTO KEY NOTNULL, filename C(255), created_by I4, created_on T DEFTIMESTAMP', array('constraints'=>'')); $this->create_data_dir(); file_put_contents($this->get_data_dir().'.htaccess','deny from all'); Base_ThemeCommon::install_default_theme($this->get_type()); DB::CreateTable('utils_attachment_googledocs',' id I4 AUTO KEY NOTNULL, note_id I4 NOTNULL, view_link C(255), doc_id C(128)', array('constraints'=>'')); Base_AclCommon::add_permission(_M('Attachments - view full download history'), array('ACCESS:employee')); Variable::set('utils_attachments_google_user', ''); Variable::set('utils_attachments_google_pass', ''); return $ret; }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); //addons table $fields = array(array('name' => _M('Recordset'), 'type' => 'text', 'param' => 64, 'display_callback' => array('CRM_TasksCommon', 'display_recordset'), 'QFfield_callback' => array('CRM_TasksCommon', 'QFfield_recordset'), 'required' => true, 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('task_related', $fields); Utils_RecordBrowserCommon::set_caption('task_related', _M('Meeting Related Recordsets')); Utils_RecordBrowserCommon::register_processing_callback('task_related', array('CRM_TasksCommon', 'processing_related')); Utils_RecordBrowserCommon::add_access('task_related', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('task_related', 'add', 'ADMIN'); Utils_RecordBrowserCommon::add_access('task_related', 'edit', 'SUPERADMIN'); Utils_RecordBrowserCommon::add_access('task_related', 'delete', 'SUPERADMIN'); Utils_RecordBrowserCommon::new_record_field('task', array('name' => _M('Related'), 'type' => 'multiselect', 'param' => '__RECORDSETS__::;CRM_TasksCommon::related_crits', 'QFfield_callback' => array('CRM_TasksCommon', 'QFfield_related'), 'extra' => false, 'required' => false, 'visible' => true));
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); Utils_RecordBrowserCommon::set_caption('utils_attachment', _M('Note'));
/** * Set caption of RecordSet. Caption is a text used as record set name. * It's displayed in several places to indicate what RecordSet you are * currently viewing. * @param string $value */ public function set_caption($value) { Utils_RecordBrowserCommon::set_caption($this->tab, $value); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); Utils_RecordBrowserCommon::set_caption('phonecall_related', _M('Phonecalls Related Recordsets')); Utils_RecordBrowserCommon::set_QFfield_callback('phonecall', 'Related', array('CRM_PhoneCallCommon', 'QFfield_related')); DB::Execute('UPDATE phonecall_field SET param=%s WHERE field=%s', array('__RECORDSETS__::;CRM_PhoneCallCommon::related_crits', 'Related'));
public function edit_rset($id = null) { if ($this->is_back()) { return false; } $form = $this->init_module(Libs_QuickForm::module_name()); $menu_deep = 3; $form->addElement('header', null, $id ? __('Edit RecordSet properties') : __('Create new RecordSet')); $form->addElement('text', 'tab', __('Table name')); $form->addElement('text', 'caption', __('Caption')); $m = array(); for ($i = 0; $i < $menu_deep; $i++) { $m[] = $form->createElement('text', 'menu_' . $i, __('Menu'), array('placeholder' => __('Enter Menu or Submenu label'))); } $form->addGroup($m, 'menu', __('Menu')); $form->addElement('checkbox', 'recent', __('Enable Recent')); $form->addElement('checkbox', 'favs', __('Enable Favorites')); $form->addRule('tab', __('Field required'), 'required'); $form->addRule('caption', __('Field required'), 'required'); $form->addFormRule(array($this, 'check_form')); if ($id !== null) { $tab = DB::GetOne('SELECT tab FROM recordbrowser_custom_recordsets WHERE id=%d', array($id)); $menu = DB::GetOne('SELECT menu FROM recordbrowser_custom_recordsets WHERE id=%d', array($id)); $p = DB::getRow('SELECT * FROM recordbrowser_table_properties WHERE tab=%s', array($tab)); $form->setDefaults(array('tab' => $tab, 'caption' => $p['caption'], 'recent' => $p['recent'], 'favs' => $p['favorites'])); $menu = explode(Utils_RecordBrowser_CustomRecordsetsCommon::$sep, $menu); foreach ($menu as $k => $v) { $form->setDefaults(array('menu[menu_' . $k . ']' => $v)); } $form->freeze('tab'); } if ($form->validate()) { $vals = $form->exportValues(); $menu = array(); for ($i = 0; $i < $menu_deep; $i++) { if ($vals['menu']['menu_' . $i]) { $menu[] = $vals['menu']['menu_' . $i]; } } if ($id === null) { $vals['tab'] = strtolower($vals['tab']); Utils_RecordBrowserCommon::install_new_recordset($vals['tab']); Utils_RecordBrowserCommon::add_default_access($vals['tab']); DB::Execute('INSERT INTO recordbrowser_custom_recordsets (active, tab, menu) VALUES (1, %s, %s)', array($vals['tab'], implode(Utils_RecordBrowser_CustomRecordsetsCommon::$sep, $menu))); $tab = $vals['tab']; } else { DB::Execute('UPDATE recordbrowser_custom_recordsets SET menu=%s WHERE id=%d', array(implode(Utils_RecordBrowser_CustomRecordsetsCommon::$sep, $menu), $id)); } Utils_RecordBrowserCommon::set_caption($tab, $vals['caption']); Utils_RecordBrowserCommon::set_recent($tab, isset($vals['recent']) ? 15 : 0); Utils_RecordBrowserCommon::set_favorites($tab, isset($vals['favs']) ? true : false); return false; } $form->display_as_column(); Base_ActionBarCommon::add('back', __('Cancel'), $this->create_back_href()); Base_ActionBarCommon::add('save', __('Save'), $form->get_submit_form_href()); return true; }
public function install() { $this->create_data_dir(); // create htaccess to prevent logs to be available on the internet $htaccess = $this->get_data_dir() . '.htaccess'; $f = fopen($htaccess, 'w'); if ($f === false) { print "Cannot create .htaccess file ({$htaccess}). " . "Your Roundcube logs may be available on the internet!"; } else { fwrite($f, "deny from all\n"); fclose($f); } Base_ThemeCommon::install_default_theme($this->get_type()); $this->drop_all_rc_tables(); if (DB::is_mysql()) { $f = file_get_contents('modules/CRM/Roundcube/RC/SQL/mysql.initial.sql'); } else { $f = file_get_contents('modules/CRM/Roundcube/RC/SQL/postgres.initial.sql'); } foreach (explode(';', $f) as $q) { $q = trim($q); if (!$q) { continue; } DB::Execute($q); } Utils_CommonDataCommon::new_array('CRM/Roundcube/Security', array('tls' => _M('TLS'), 'ssl' => _M('SSL')), true, true); //addons table $fields = array(array('name' => _M('Recordset'), 'type' => 'text', 'param' => 64, 'display_callback' => array($this->get_type() . 'Common', 'display_recordset'), 'QFfield_callback' => array($this->get_type() . 'Common', 'QFfield_recordset'), 'required' => true, 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('rc_related', $fields); Utils_RecordBrowserCommon::set_caption('rc_related', _M('Mail Related Recordsets')); Utils_RecordBrowserCommon::register_processing_callback('rc_related', array('CRM_RoundcubeCommon', 'processing_related')); Utils_RecordBrowserCommon::add_access('rc_related', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_related', 'add', 'ADMIN'); Utils_RecordBrowserCommon::add_access('rc_related', 'edit', 'SUPERADMIN'); Utils_RecordBrowserCommon::add_access('rc_related', 'delete', 'SUPERADMIN'); Utils_RecordBrowserCommon::new_record('rc_related', array('recordset' => 'company')); Utils_RecordBrowserCommon::new_record('rc_related', array('recordset' => 'contact')); //accounts table $fields = array(array('name' => _M('EPESI User'), 'type' => 'integer', 'extra' => false, 'visible' => true, 'required' => true, 'display_callback' => array('CRM_RoundcubeCommon', 'display_epesi_user'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_epesi_user')), array('name' => _M('Email'), 'type' => 'text', 'extra' => false, 'visible' => true, 'required' => true, 'param' => 128), array('name' => _M('Account Name'), 'type' => 'text', 'extra' => false, 'visible' => true, 'required' => true, 'param' => 32, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_account_name')), array('name' => _M('Server'), 'type' => 'text', 'extra' => false, 'visible' => true, 'param' => '255', 'required' => true), array('name' => _M('Login'), 'type' => 'text', 'required' => true, 'param' => '255', 'extra' => false, 'visible' => true), array('name' => _M('Password'), 'type' => 'text', 'required' => true, 'extra' => false, 'param' => '255', 'visible' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_password'), 'display_callback' => array('CRM_RoundcubeCommon', 'display_password')), array('name' => _M('Security'), 'type' => 'commondata', 'param' => array('CRM/Roundcube/Security'), 'extra' => false, 'visible' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_security')), array('name' => _M('SMTP Server'), 'type' => 'text', 'extra' => false, 'visible' => false, 'param' => '255', 'required' => true), array('name' => _M('SMTP Auth'), 'type' => 'checkbox', 'extra' => false, 'visible' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_smtp_auth')), array('name' => _M('SMTP Login'), 'type' => 'text', 'required' => false, 'param' => '255', 'extra' => false, 'visible' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_smtp_login')), array('name' => _M('SMTP Password'), 'type' => 'text', 'extra' => false, 'param' => '255', 'visible' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_smtp_password'), 'display_callback' => array('CRM_RoundcubeCommon', 'display_password')), array('name' => _M('SMTP Security'), 'type' => 'commondata', 'param' => array('CRM/Roundcube/Security'), 'extra' => false, 'visible' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_smtp_security')), array('name' => _M('Default Account'), 'type' => 'checkbox', 'extra' => false, 'visible' => true, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_default_account')), array('name' => _M('Advanced'), 'type' => 'page_split'), array('name' => _M('Archive on sending'), 'type' => 'checkbox', 'extra' => true, 'visible' => false), array('name' => _M('Use EPESI Archive directories'), 'type' => 'checkbox', 'extra' => true, 'visible' => false), array('name' => _M('IMAP Root'), 'type' => 'text', 'param' => 32, 'extra' => true, 'visible' => false), array('name' => _M('IMAP Delimiter'), 'type' => 'text', 'param' => 8, 'extra' => true, 'visible' => false)); Utils_RecordBrowserCommon::install_new_recordset('rc_accounts', $fields); Utils_RecordBrowserCommon::set_caption('rc_accounts', _M('Mail accounts')); Utils_RecordBrowserCommon::register_processing_callback('rc_accounts', array('CRM_RoundcubeCommon', 'submit_account')); $fields = array(array('name' => _M('Subject'), 'type' => 'text', 'param' => '256', 'extra' => false, 'visible' => true, 'required' => false, 'display_callback' => array('CRM_RoundcubeCommon', 'display_subject')), array('name' => _M('Count'), 'type' => 'calculated', 'extra' => false, 'visible' => true, 'required' => false, 'display_callback' => array('CRM_RoundcubeCommon', 'display_thread_count'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_thread_count')), array('name' => _M('Contacts'), 'type' => 'crm_company_contact', 'param' => array('field_type' => 'multiselect'), 'required' => false, 'extra' => false, 'visible' => true), array('name' => _M('First Date'), 'type' => 'timestamp', 'extra' => false, 'visible' => true, 'required' => false), array('name' => _M('Last Date'), 'type' => 'timestamp', 'extra' => false, 'visible' => true, 'required' => false), array('name' => _M('Attachments'), 'type' => 'calculated', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_RoundcubeCommon', 'display_thread_attachments'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_thread_attachments'))); Utils_RecordBrowserCommon::install_new_recordset('rc_mail_threads', $fields); Utils_RecordBrowserCommon::set_caption('rc_mail_threads', _M('Mail Thread')); Utils_RecordBrowserCommon::new_addon('rc_mail_threads', 'CRM/Roundcube', 'thread_addon', _M('E-mails')); Utils_RecordBrowserCommon::set_search('rc_mail_threads', 2, -1); $fields = array(array('name' => _M('Subject'), 'type' => 'text', 'param' => '256', 'extra' => false, 'visible' => true, 'required' => false, 'display_callback' => array('CRM_RoundcubeCommon', 'display_subject')), array('name' => _M('Contacts'), 'type' => 'crm_company_contact', 'param' => array('field_type' => 'multiselect'), 'required' => false, 'extra' => false, 'visible' => true), array('name' => _M('Employee'), 'type' => 'crm_contact', 'param' => array('field_type' => 'select'), 'extra' => false, 'visible' => true, 'required' => false), array('name' => _M('Related'), 'type' => 'multiselect', 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_related'), 'param' => '__RECORDSETS__::;CRM_RoundcubeCommon::related_crits', 'extra' => false, 'required' => false, 'visible' => true), array('name' => _M('Date'), 'type' => 'timestamp', 'extra' => false, 'visible' => true, 'required' => false), array('name' => _M('Attachments'), 'type' => 'calculated', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_RoundcubeCommon', 'display_attachments'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_attachments')), array('name' => _M('Headers Data'), 'type' => 'long text', 'extra' => false, 'visible' => false, 'required' => false), array('name' => _M('Body'), 'type' => 'long text', 'extra' => false, 'visible' => false, 'required' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_body')), array('name' => _M('From'), 'type' => 'text', 'param' => 128, 'extra' => false, 'visible' => false, 'required' => false), array('name' => _M('To'), 'type' => 'text', 'param' => 4096, 'extra' => false, 'visible' => false, 'required' => false), array('name' => _M('Thread'), 'type' => 'select', 'param' => 'rc_mail_threads::Count', 'extra' => false, 'visible' => false, 'required' => false, 'display_callback' => array('CRM_RoundcubeCommon', 'display_mail_thread'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_mail_thread')), array('name' => _M('Message ID'), 'type' => 'text', 'param' => 128, 'extra' => false, 'visible' => false, 'required' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_hidden')), array('name' => _M('References'), 'type' => 'text', 'param' => 4096 * 4, 'extra' => false, 'visible' => false, 'required' => false, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_hidden'))); Utils_RecordBrowserCommon::install_new_recordset('rc_mails', $fields); Utils_RecordBrowserCommon::set_caption('rc_mails', _M('Mails')); Utils_RecordBrowserCommon::set_tpl('rc_mails', Base_ThemeCommon::get_template_filename('CRM/Roundcube', 'mails')); Utils_RecordBrowserCommon::register_processing_callback('rc_mails', array('CRM_RoundcubeCommon', 'submit_mail')); Utils_RecordBrowserCommon::set_search('rc_mails', 2, -1); DB::CreateIndex('rc_mails_thread_idx', 'rc_mails_data_1', 'f_thread'); DB::CreateIndex('rc_mails_msgid_idx', 'rc_mails_data_1', 'f_message_id'); Utils_RecordBrowserCommon::new_addon('rc_mails', 'CRM/Roundcube', 'mail_body_addon', _M('Body')); Utils_RecordBrowserCommon::new_addon('rc_mails', 'CRM/Roundcube', 'attachments_addon', _M('Attachments')); Utils_RecordBrowserCommon::new_addon('rc_mails', 'CRM/Roundcube', 'mail_headers_addon', _M('Headers')); @DB::DropTable('rc_mails_attachments'); DB::CreateTable('rc_mails_attachments', ' mail_id I4 NOTNULL, type C(32), name C(255), mime_id C(32), attachment I1 DEFAULT 1', array('constraints' => ', FOREIGN KEY (mail_id) REFERENCES rc_mails_data_1(ID)')); DB::CreateTable('rc_mails_attachments_download', ' mail_id I4 NOTNULL, hash C(32), created_on T DEFTIMESTAMP', array('constraints' => ', FOREIGN KEY (mail_id) REFERENCES rc_mails_data_1(ID)')); Utils_RecordBrowserCommon::new_addon('contact', 'CRM/Roundcube', 'addon', _M('E-mails')); Utils_RecordBrowserCommon::new_addon('company', 'CRM/Roundcube', 'addon', _M('E-mails')); $fields = array(array('name' => _M('Record Type'), 'type' => 'hidden', 'param' => Utils_RecordBrowserCommon::actual_db_type('text', 64), 'required' => false, 'visible' => false, 'filter' => true, 'extra' => false), array('name' => _M('Record ID'), 'type' => 'hidden', 'param' => Utils_RecordBrowserCommon::actual_db_type('integer'), 'filter' => false, 'required' => false, 'extra' => false, 'visible' => false), array('name' => _M('Nickname'), 'type' => 'text', 'required' => true, 'param' => '64', 'extra' => false, 'visible' => true, 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_nickname')), array('name' => _M('Email'), 'type' => 'email', 'required' => true, 'param' => array('unique' => true), 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('rc_multiple_emails', $fields); Utils_RecordBrowserCommon::set_favorites('rc_multiple_emails', true); Utils_RecordBrowserCommon::set_caption('rc_multiple_emails', _M('Mail addresses')); Utils_RecordBrowserCommon::set_icon('rc_multiple_emails', Base_ThemeCommon::get_template_filename('CRM/Roundcube', 'icon.png')); Utils_RecordBrowserCommon::set_search('rc_multiple_emails', 2, 0); Utils_RecordBrowserCommon::new_addon('contact', 'CRM/Roundcube', 'mail_addresses_addon', _M('E-mail addresses')); Utils_RecordBrowserCommon::new_addon('company', 'CRM/Roundcube', 'mail_addresses_addon', _M('E-mail addresses')); Variable::set('crm_roundcube_global_signature', "Message sent with EPESI - managing business your way!<br /><a href=\"http://epe.si\">http://epe.si</a>"); Utils_RecordBrowserCommon::add_access('rc_accounts', 'view', 'ACCESS:employee', array('epesi_user' => 'USER_ID')); Utils_RecordBrowserCommon::add_access('rc_accounts', 'add', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_accounts', 'edit', 'ACCESS:employee', array(), array('epesi_user')); Utils_RecordBrowserCommon::add_access('rc_accounts', 'delete', 'ACCESS:employee', array('epesi_user' => 'USER_ID')); Utils_RecordBrowserCommon::add_access('rc_mails', 'view', 'ACCESS:employee', array(), array('headers_data')); Utils_RecordBrowserCommon::add_access('rc_mails', 'delete', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_mails', 'edit', 'ACCESS:employee', array(), array('subject', 'employee', 'date', 'headers_data', 'body', 'from', 'to', 'thread', 'message_id', 'references')); Utils_RecordBrowserCommon::add_access('rc_mail_threads', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_mail_threads', 'delete', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_multiple_emails', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_multiple_emails', 'add', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_multiple_emails', 'edit', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_multiple_emails', 'delete', 'ACCESS:employee'); return true; }
<?php $rs_checkpoint = Patch::checkpoint('recordset'); if (!$rs_checkpoint->is_done()) { Patch::require_time(5); //addons table $fields = array(array('name' => _M('Recordset'), 'type' => 'text', 'param' => 64, 'display_callback' => array('CRM_RoundcubeCommon', 'display_recordset'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_recordset'), 'required' => true, 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('rc_related', $fields); Utils_RecordBrowserCommon::set_caption('rc_related', _M('Mail Related Recordsets')); Utils_RecordBrowserCommon::register_processing_callback('rc_related', array('CRM_RoundcubeCommon', 'processing_related')); Utils_RecordBrowserCommon::add_access('rc_related', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_related', 'add', 'ADMIN'); Utils_RecordBrowserCommon::add_access('rc_related', 'edit', 'SUPERADMIN'); Utils_RecordBrowserCommon::add_access('rc_related', 'delete', 'SUPERADMIN'); Utils_RecordBrowserCommon::new_record_field('rc_mails', array('name' => _M('Related'), 'type' => 'multiselect', 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_related'), 'param' => '__RECORDSETS__::;CRM_RoundcubeCommon::related_crits', 'extra' => false, 'required' => false, 'visible' => true, 'position' => 'Employee')); Utils_RecordBrowserCommon::new_record('rc_related', array('recordset' => 'company')); Utils_RecordBrowserCommon::new_record('rc_related', array('recordset' => 'contact')); Utils_RecordBrowserCommon::add_access('rc_mails', 'edit', 'ACCESS:employee', array(), array('subject', 'employee', 'date', 'headers_data', 'body', 'from', 'to', 'thread', 'message_id', 'references')); $rs_checkpoint->done(); } Patch::set_message('Processing addons'); $old_checkpoint = Patch::checkpoint('old'); if (!$old_checkpoint->is_done()) { $old = $old_checkpoint->get('old', array()); if (empty($old) && ModuleManager::is_installed('Premium/RoundcubeCustomAddons') >= 0) { $old = Utils_RecordBrowserCommon::get_records('premium_roundcube_custom_addon'); ModuleManager::uninstall('Premium/RoundcubeCustomAddons'); } foreach ($old as $i => $r) { if ($r['recordset'] == 'company' || $r['recordset'] == 'contact') { continue;
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $fields = array(array('name' => _M('Subject'), 'type' => 'text', 'param' => '256', 'extra' => false, 'visible' => true, 'required' => false, 'display_callback' => array('CRM_RoundcubeCommon', 'display_subject')), array('name' => _M('Count'), 'type' => 'calculated', 'extra' => false, 'visible' => true, 'required' => false, 'display_callback' => array('CRM_RoundcubeCommon', 'display_thread_count'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_thread_count')), array('name' => _M('Contacts'), 'type' => 'crm_company_contact', 'param' => array('field_type' => 'multiselect'), 'required' => false, 'extra' => false, 'visible' => true), array('name' => _M('First Date'), 'type' => 'timestamp', 'extra' => false, 'visible' => true, 'required' => false), array('name' => _M('Last Date'), 'type' => 'timestamp', 'extra' => false, 'visible' => true, 'required' => false), array('name' => _M('Attachments'), 'type' => 'calculated', 'extra' => false, 'visible' => true, 'display_callback' => array('CRM_RoundcubeCommon', 'display_thread_attachments'), 'QFfield_callback' => array('CRM_RoundcubeCommon', 'QFfield_thread_attachments'))); Utils_RecordBrowserCommon::install_new_recordset('rc_mail_threads', $fields); Utils_RecordBrowserCommon::set_caption('rc_mail_threads', _M('Mail Thread')); Utils_RecordBrowserCommon::new_record_field('rc_mails', array('name' => _M('Thread'), 'type' => 'select', 'param' => 'rc_mail_threads::Count', 'extra' => false, 'visible' => false, 'required' => false)); Utils_RecordBrowserCommon::add_access('rc_mail_threads', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('rc_mail_threads', 'delete', 'ACCESS:employee');