@@ -38,10 +38,10 @@ discard block |
||
38 | 38 | * display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM". |
39 | 39 | ********************************************************************************/ |
40 | 40 | |
41 | - //Request object must have these property values: |
|
42 | - // Module: module name, this module should have a file called TreeData.php |
|
43 | - // Function: name of the function to be called in TreeData.php, the function will be called statically. |
|
44 | - // PARAM prefixed properties: array of these property/values will be passed to the function as parameter. |
|
41 | + //Request object must have these property values: |
|
42 | + // Module: module name, this module should have a file called TreeData.php |
|
43 | + // Function: name of the function to be called in TreeData.php, the function will be called statically. |
|
44 | + // PARAM prefixed properties: array of these property/values will be passed to the function as parameter. |
|
45 | 45 | |
46 | 46 | |
47 | 47 | require_once('include/JSON.php'); |
@@ -56,27 +56,27 @@ discard block |
||
56 | 56 | $ret = array(); |
57 | 57 | |
58 | 58 | foreach($_FILES as $k => $file) { |
59 | - if(in_array(strtolower($_FILES[$k]['type']), $imgType) && $_FILES[$k]['size'] > 0) { |
|
60 | - $upload_file = new UploadFile($k); |
|
61 | - // check the file |
|
62 | - if($upload_file->confirm_upload()) { |
|
63 | - $dest = $cachedir.basename($upload_file->get_stored_file_name()); // target name |
|
64 | - $guid = create_guid(); |
|
65 | - if($upload_file->final_move($guid)) { // move to uploads |
|
66 | - $path = $upload_file->get_upload_path($guid); |
|
67 | - // if file is OK, copy to cache |
|
68 | - if(verify_uploaded_image($path) && copy($path, $dest)) { |
|
69 | - $ret[] = $dest; |
|
70 | - } |
|
71 | - // remove temp file |
|
72 | - unlink($path); |
|
73 | - } |
|
74 | - } |
|
75 | - } |
|
59 | + if(in_array(strtolower($_FILES[$k]['type']), $imgType) && $_FILES[$k]['size'] > 0) { |
|
60 | + $upload_file = new UploadFile($k); |
|
61 | + // check the file |
|
62 | + if($upload_file->confirm_upload()) { |
|
63 | + $dest = $cachedir.basename($upload_file->get_stored_file_name()); // target name |
|
64 | + $guid = create_guid(); |
|
65 | + if($upload_file->final_move($guid)) { // move to uploads |
|
66 | + $path = $upload_file->get_upload_path($guid); |
|
67 | + // if file is OK, copy to cache |
|
68 | + if(verify_uploaded_image($path) && copy($path, $dest)) { |
|
69 | + $ret[] = $dest; |
|
70 | + } |
|
71 | + // remove temp file |
|
72 | + unlink($path); |
|
73 | + } |
|
74 | + } |
|
75 | + } |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | if (!empty($ret)) { |
79 | - $json = getJSONobj(); |
|
80 | - echo $json->encode($ret); |
|
81 | - //return the parameters |
|
79 | + $json = getJSONobj(); |
|
80 | + echo $json->encode($ret); |
|
81 | + //return the parameters |
|
82 | 82 | } |
@@ -50,38 +50,38 @@ |
||
50 | 50 | |
51 | 51 | $focus = new EmailTemplate(); |
52 | 52 | if($_REQUEST['from'] == 'DetailView') { |
53 | - if(!isset($_REQUEST['record'])) |
|
54 | - sugar_die("A record number must be specified to delete the template."); |
|
55 | - $focus->retrieve($_REQUEST['record']); |
|
56 | - if(check_email_template_in_use($focus)) { |
|
57 | - echo 'true'; |
|
58 | - return; |
|
59 | - } |
|
60 | - echo 'false'; |
|
53 | + if(!isset($_REQUEST['record'])) |
|
54 | + sugar_die("A record number must be specified to delete the template."); |
|
55 | + $focus->retrieve($_REQUEST['record']); |
|
56 | + if(check_email_template_in_use($focus)) { |
|
57 | + echo 'true'; |
|
58 | + return; |
|
59 | + } |
|
60 | + echo 'false'; |
|
61 | 61 | } else if($_REQUEST['from'] == 'ListView') { |
62 | - $returnString = ''; |
|
63 | - $idArray = explode(',', $_REQUEST['records']); |
|
64 | - foreach($idArray as $key => $value) { |
|
65 | - if($focus->retrieve($value)) { |
|
66 | - if(check_email_template_in_use($focus)) { |
|
67 | - $returnString .= $focus->name . ','; |
|
68 | - } |
|
69 | - } |
|
70 | - } |
|
71 | - $returnString = substr($returnString, 0, -1); |
|
72 | - echo $returnString; |
|
62 | + $returnString = ''; |
|
63 | + $idArray = explode(',', $_REQUEST['records']); |
|
64 | + foreach($idArray as $key => $value) { |
|
65 | + if($focus->retrieve($value)) { |
|
66 | + if(check_email_template_in_use($focus)) { |
|
67 | + $returnString .= $focus->name . ','; |
|
68 | + } |
|
69 | + } |
|
70 | + } |
|
71 | + $returnString = substr($returnString, 0, -1); |
|
72 | + echo $returnString; |
|
73 | 73 | } else { |
74 | - echo ''; |
|
74 | + echo ''; |
|
75 | 75 | } |
76 | 76 | |
77 | 77 | function check_email_template_in_use($focus) |
78 | 78 | { |
79 | - if($focus->is_used_by_email_marketing()) { |
|
80 | - return true; |
|
81 | - } |
|
82 | - $system = $GLOBALS['sugar_config']['passwordsetting']; |
|
83 | - if($focus->id == $system['generatepasswordtmpl'] || $focus->id == $system['lostpasswordtmpl']) { |
|
84 | - return true; |
|
85 | - } |
|
79 | + if($focus->is_used_by_email_marketing()) { |
|
80 | + return true; |
|
81 | + } |
|
82 | + $system = $GLOBALS['sugar_config']['passwordsetting']; |
|
83 | + if($focus->id == $system['generatepasswordtmpl'] || $focus->id == $system['lostpasswordtmpl']) { |
|
84 | + return true; |
|
85 | + } |
|
86 | 86 | return false; |
87 | 87 | } |
@@ -1,29 +1,29 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point'); |
3 | 3 | |
4 | - global $db; |
|
4 | + global $db; |
|
5 | 5 | |
6 | - $even_id = $_GET['event']; |
|
7 | - $delegate_id = $_GET['delegate']; |
|
8 | - $type = $_GET['type']; |
|
9 | - $response = $_GET['response']; |
|
6 | + $even_id = $_GET['event']; |
|
7 | + $delegate_id = $_GET['delegate']; |
|
8 | + $type = $_GET['type']; |
|
9 | + $response = $_GET['response']; |
|
10 | 10 | |
11 | - //get event |
|
11 | + //get event |
|
12 | 12 | $event = new FP_events(); |
13 | 13 | $event->retrieve($even_id); |
14 | 14 | |
15 | 15 | if($type == 'c'){ |
16 | 16 | |
17 | - $event->load_relationship('fp_events_contacts'); // get related contacts |
|
17 | + $event->load_relationship('fp_events_contacts'); // get related contacts |
|
18 | 18 | |
19 | - if($response == 'accept'){ |
|
19 | + if($response == 'accept'){ |
|
20 | 20 | |
21 | 21 | //check to see if they have already responded to the email |
22 | 22 | $check_q = 'SELECT email_responded FROM fp_events_contacts_c WHERE fp_events_contactsfp_events_ida="'.$event->id.'" AND fp_events_contactscontacts_idb="'.$delegate_id.'"'; |
23 | - $check = $db->getOne($check_q); |
|
24 | - //update contact to accepted |
|
25 | - $query = 'UPDATE fp_events_contacts_c SET accept_status="Accepted", email_responded="1" WHERE fp_events_contactsfp_events_ida="'.$event->id.'" AND fp_events_contactscontacts_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
26 | - if($db->query($query) && $check != '1'){ |
|
23 | + $check = $db->getOne($check_q); |
|
24 | + //update contact to accepted |
|
25 | + $query = 'UPDATE fp_events_contacts_c SET accept_status="Accepted", email_responded="1" WHERE fp_events_contactsfp_events_ida="'.$event->id.'" AND fp_events_contactscontacts_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
26 | + if($db->query($query) && $check != '1'){ |
|
27 | 27 | |
28 | 28 | if(!IsNullOrEmptyString($event->accept_redirect)){ |
29 | 29 | |
@@ -33,17 +33,17 @@ discard block |
||
33 | 33 | else{ |
34 | 34 | echo 'Thank you for accepting'; |
35 | 35 | } |
36 | - } |
|
37 | - else { |
|
38 | - echo 'You have already responded to the invitation or there was a problem with the link. Please contact the sender of the invite for help.'; |
|
39 | - } |
|
40 | - } |
|
41 | - else if($response == 'decline'){ |
|
42 | - //check to see if they have already responded to the email |
|
36 | + } |
|
37 | + else { |
|
38 | + echo 'You have already responded to the invitation or there was a problem with the link. Please contact the sender of the invite for help.'; |
|
39 | + } |
|
40 | + } |
|
41 | + else if($response == 'decline'){ |
|
42 | + //check to see if they have already responded to the email |
|
43 | 43 | $check_q = 'SELECT email_responded FROM fp_events_contacts_c WHERE fp_events_contactsfp_events_ida="'.$event->id.'" AND fp_events_contactscontacts_idb="'.$delegate_id.'"'; |
44 | - $check = $db->getOne($check_q); |
|
44 | + $check = $db->getOne($check_q); |
|
45 | 45 | //update contact to accepted |
46 | - $query = 'UPDATE fp_events_contacts_c SET accept_status="Declined", email_responded="1" WHERE fp_events_contactsfp_events_ida="'.$event->id.'" AND fp_events_contactscontacts_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
46 | + $query = 'UPDATE fp_events_contacts_c SET accept_status="Declined", email_responded="1" WHERE fp_events_contactsfp_events_ida="'.$event->id.'" AND fp_events_contactscontacts_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
47 | 47 | |
48 | 48 | if($db->query($query) && $check != '1'){ |
49 | 49 | |
@@ -56,24 +56,24 @@ discard block |
||
56 | 56 | else{ |
57 | 57 | echo 'Thank you for declining'; |
58 | 58 | } |
59 | - } |
|
60 | - else { |
|
61 | - echo 'You have already responded to the invitation or there was a problem with the link. Please contact the sender of the invite for help.'; |
|
62 | - } |
|
63 | - } |
|
59 | + } |
|
60 | + else { |
|
61 | + echo 'You have already responded to the invitation or there was a problem with the link. Please contact the sender of the invite for help.'; |
|
62 | + } |
|
63 | + } |
|
64 | 64 | } |
65 | 65 | if($type == 't'){ |
66 | 66 | |
67 | - $event->load_relationship('fp_events_prospects_1'); //get related targets |
|
67 | + $event->load_relationship('fp_events_prospects_1'); //get related targets |
|
68 | 68 | |
69 | - if($response == 'accept'){ |
|
69 | + if($response == 'accept'){ |
|
70 | 70 | //check to see if they have already responded to the email |
71 | 71 | $check_q = 'SELECT email_responded FROM fp_events_prospects_1_c WHERE fp_events_prospects_1fp_events_ida="'.$event->id.'" AND fp_events_prospects_1prospects_idb="'.$delegate_id.'"'; |
72 | - $check = $db->getOne($check_q); |
|
72 | + $check = $db->getOne($check_q); |
|
73 | 73 | |
74 | - //update contact to accepted |
|
75 | - $query = 'UPDATE fp_events_prospects_1_c SET accept_status="Accepted", email_responded="1" WHERE fp_events_prospects_1fp_events_ida="'.$event->id.'" AND fp_events_prospects_1prospects_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
76 | - if($db->query($query) && $check != '1'){ |
|
74 | + //update contact to accepted |
|
75 | + $query = 'UPDATE fp_events_prospects_1_c SET accept_status="Accepted", email_responded="1" WHERE fp_events_prospects_1fp_events_ida="'.$event->id.'" AND fp_events_prospects_1prospects_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
76 | + if($db->query($query) && $check != '1'){ |
|
77 | 77 | |
78 | 78 | if(!IsNullOrEmptyString($event->accept_redirect)){ |
79 | 79 | |
@@ -87,14 +87,14 @@ discard block |
||
87 | 87 | else { |
88 | 88 | echo 'You have already responded to the invitation or there was a problem with the link. Please contact the sender of the invite for help.'; |
89 | 89 | } |
90 | - } |
|
91 | - else if($response == 'decline'){ |
|
90 | + } |
|
91 | + else if($response == 'decline'){ |
|
92 | 92 | //check to see if they have already responded to the email |
93 | 93 | $check_q = 'SELECT email_responded FROM fp_events_prospects_1_c WHERE fp_events_prospects_1fp_events_ida="'.$event->id.'" AND fp_events_prospects_1prospects_idb="'.$delegate_id.'"'; |
94 | - $check = $db->getOne($check_q); |
|
95 | - //update contact to accepted |
|
96 | - $query = 'UPDATE fp_events_prospects_1_c SET accept_status="Declined", email_responded="1" WHERE fp_events_prospects_1fp_events_ida="'.$event->id.'" AND fp_events_prospects_1prospects_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
97 | - if($db->query($query) && $check != '1'){ |
|
94 | + $check = $db->getOne($check_q); |
|
95 | + //update contact to accepted |
|
96 | + $query = 'UPDATE fp_events_prospects_1_c SET accept_status="Declined", email_responded="1" WHERE fp_events_prospects_1fp_events_ida="'.$event->id.'" AND fp_events_prospects_1prospects_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
97 | + if($db->query($query) && $check != '1'){ |
|
98 | 98 | |
99 | 99 | if(!IsNullOrEmptyString($event->decline_redirect)){ |
100 | 100 | |
@@ -109,19 +109,19 @@ discard block |
||
109 | 109 | else { |
110 | 110 | echo 'You have already responded to the invitation or there was a problem with the link. Please contact the sender of the invite for help.'; |
111 | 111 | } |
112 | - } |
|
112 | + } |
|
113 | 113 | } |
114 | 114 | if($type == 'l'){ |
115 | 115 | |
116 | - $event->load_relationship('fp_events_leads_1'); //get related leads |
|
116 | + $event->load_relationship('fp_events_leads_1'); //get related leads |
|
117 | 117 | |
118 | - if($response == 'accept'){ |
|
118 | + if($response == 'accept'){ |
|
119 | 119 | //check to see if they have already responded to the email |
120 | 120 | $check_q = 'SELECT email_responded FROM fp_events_leads_1_c WHERE ffp_events_leads_1fp_events_ida="'.$event->id.'" AND fp_events_leads_1leads_idb="'.$delegate_id.'"'; |
121 | - $check = $db->getOne($check_q); |
|
122 | - //update contact to accepted |
|
123 | - $query = 'UPDATE fp_events_leads_1_c SET accept_status="Accepted", email_responded="1" WHERE fp_events_leads_1fp_events_ida="'.$event->id.'" AND fp_events_leads_1leads_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
124 | - if($db->query($query) && $check != '1'){ |
|
121 | + $check = $db->getOne($check_q); |
|
122 | + //update contact to accepted |
|
123 | + $query = 'UPDATE fp_events_leads_1_c SET accept_status="Accepted", email_responded="1" WHERE fp_events_leads_1fp_events_ida="'.$event->id.'" AND fp_events_leads_1leads_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
124 | + if($db->query($query) && $check != '1'){ |
|
125 | 125 | |
126 | 126 | if(!IsNullOrEmptyString($event->accept_redirect)){ |
127 | 127 | |
@@ -135,15 +135,15 @@ discard block |
||
135 | 135 | else { |
136 | 136 | echo 'There was a problem with the link please contact the sender of the invite'; |
137 | 137 | } |
138 | - } |
|
139 | - else if($response == 'decline'){ |
|
140 | - //check to see if they have already responded to the email |
|
138 | + } |
|
139 | + else if($response == 'decline'){ |
|
140 | + //check to see if they have already responded to the email |
|
141 | 141 | $check_q = 'SELECT email_responded FROM fp_events_leads_1_c WHERE fp_events_leads_1fp_events_ida="'.$event->id.'" AND fp_events_leads_1leads_idb="'.$delegate_id.'"'; |
142 | - $check = $db->getOne($check_q); |
|
142 | + $check = $db->getOne($check_q); |
|
143 | 143 | //update contact to accepted |
144 | - $query = 'UPDATE fp_events_leads_1_c SET accept_status="Declined", email_responded="1" WHERE fp_events_leads_1fp_events_ida="'.$event->id.'" AND fp_events_leads_1leads_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
144 | + $query = 'UPDATE fp_events_leads_1_c SET accept_status="Declined", email_responded="1" WHERE fp_events_leads_1fp_events_ida="'.$event->id.'" AND fp_events_leads_1leads_idb="'.$delegate_id.'" AND email_responded="0"'; |
|
145 | 145 | |
146 | - if($db->query($query) && $check != '1'){ |
|
146 | + if($db->query($query) && $check != '1'){ |
|
147 | 147 | |
148 | 148 | if(!IsNullOrEmptyString($event->decline_redirect)){ |
149 | 149 | |
@@ -158,7 +158,7 @@ discard block |
||
158 | 158 | else { |
159 | 159 | echo 'There was a problem with the link please contact the sender of the invite'; |
160 | 160 | } |
161 | - } |
|
161 | + } |
|
162 | 162 | } |
163 | 163 | // Function for basic field validation (present and neither empty nor only white space nor just 'http://') |
164 | 164 | function IsNullOrEmptyString($question){ |
@@ -70,7 +70,7 @@ |
||
70 | 70 | } |
71 | 71 | }else{ |
72 | 72 | if(isset($row['id']) || $meetingBean->assigned_user_id == $GLOBALS['current_user']->id || is_admin($GLOBALS['current_user']) || is_admin_for_module($GLOBALS['current_user'],'Meetings')){ |
73 | - SugarApplication::redirect($meetingBean->join_url); |
|
73 | + SugarApplication::redirect($meetingBean->join_url); |
|
74 | 74 | }else{ |
75 | 75 | //if the user is not invited or the owner of the meeting or an admin then they cannot join the meeting. |
76 | 76 | $tplFile = 'modules/Meetings/tpls/extMeetingNotInvited.tpl'; |
@@ -47,75 +47,75 @@ discard block |
||
47 | 47 | ********************************************************************************/ |
48 | 48 | |
49 | 49 | $mod_strings = array ( |
50 | - 'ERR_DELETE_RECORD' => 'A record number must be specified to delete the meeting.', |
|
50 | + 'ERR_DELETE_RECORD' => 'A record number must be specified to delete the meeting.', |
|
51 | 51 | |
52 | - 'LBL_ACCEPT_THIS'=>'Accept?', |
|
53 | - 'LBL_ADD_BUTTON'=> 'Add', |
|
54 | - 'LBL_ADD_INVITEE' => 'Add Invitees', |
|
55 | - 'LBL_COLON' => ':', |
|
56 | - 'LBL_CONTACT_NAME' => 'Contact:', |
|
57 | - 'LBL_CONTACTS_SUBPANEL_TITLE' => 'Contacts', |
|
58 | - 'LBL_CREATED_BY'=>'Created by', |
|
59 | - 'LBL_DATE_END'=>'End Date', |
|
60 | - 'LBL_DATE_TIME' => 'Start Date & Time:', |
|
61 | - 'LBL_DATE' => 'Start Date:', |
|
62 | - 'LBL_DEFAULT_SUBPANEL_TITLE' => 'Meetings', |
|
63 | - 'LBL_DEL'=> 'Del', |
|
64 | - 'LBL_DESCRIPTION_INFORMATION' => 'Description Information', |
|
65 | - 'LBL_DESCRIPTION' => 'Description:', |
|
52 | + 'LBL_ACCEPT_THIS'=>'Accept?', |
|
53 | + 'LBL_ADD_BUTTON'=> 'Add', |
|
54 | + 'LBL_ADD_INVITEE' => 'Add Invitees', |
|
55 | + 'LBL_COLON' => ':', |
|
56 | + 'LBL_CONTACT_NAME' => 'Contact:', |
|
57 | + 'LBL_CONTACTS_SUBPANEL_TITLE' => 'Contacts', |
|
58 | + 'LBL_CREATED_BY'=>'Created by', |
|
59 | + 'LBL_DATE_END'=>'End Date', |
|
60 | + 'LBL_DATE_TIME' => 'Start Date & Time:', |
|
61 | + 'LBL_DATE' => 'Start Date:', |
|
62 | + 'LBL_DEFAULT_SUBPANEL_TITLE' => 'Meetings', |
|
63 | + 'LBL_DEL'=> 'Del', |
|
64 | + 'LBL_DESCRIPTION_INFORMATION' => 'Description Information', |
|
65 | + 'LBL_DESCRIPTION' => 'Description:', |
|
66 | 66 | 'LBL_DIRECTION' => 'Direction:', |
67 | - 'LBL_DURATION_HOURS' => 'Duration Hours:', |
|
68 | - 'LBL_DURATION_MINUTES' => 'Duration Minutes:', |
|
69 | - 'LBL_DURATION' => 'Duration:', |
|
70 | - 'LBL_EMAIL' => 'Email', |
|
71 | - 'LBL_FIRST_NAME' => 'First Name', |
|
72 | - 'LBL_HISTORY_SUBPANEL_TITLE' => 'Notes', |
|
73 | - 'LBL_HOURS_ABBREV' => 'h', |
|
74 | - 'LBL_HOURS_MINS' => '(hours/minutes)', |
|
75 | - 'LBL_INVITEE' => 'Invitees', |
|
76 | - 'LBL_LAST_NAME' => 'Last Name', |
|
77 | - 'LBL_ASSIGNED_TO_NAME'=>'Assigned to:', |
|
78 | - 'LBL_LIST_ASSIGNED_TO_NAME' => 'Assigned User', |
|
79 | - 'LBL_LIST_CLOSE' => 'Close', |
|
80 | - 'LBL_LIST_CONTACT' => 'Contact', |
|
81 | - 'LBL_LIST_DATE_MODIFIED'=>'Date Modified', |
|
82 | - 'LBL_LIST_DATE' => 'Start Date', |
|
83 | - 'LBL_LIST_DIRECTION' => 'Direction', |
|
84 | - 'LBL_LIST_DUE_DATE'=>'Due Date', |
|
85 | - 'LBL_LIST_FORM_TITLE' => 'Meeting List', |
|
86 | - 'LBL_LIST_MY_MEETINGS' => 'My Meetings', |
|
87 | - 'LBL_LIST_RELATED_TO' => 'Related to', |
|
88 | - 'LBL_LIST_STATUS'=>'Status', |
|
89 | - 'LBL_LIST_SUBJECT' => 'Subject', |
|
90 | - 'LBL_LIST_TIME' => 'Start Time', |
|
91 | - 'LBL_LEADS_SUBPANEL_TITLE' => 'Leads', |
|
92 | - 'LBL_LOCATION' => 'Location:', |
|
93 | - 'LBL_MEETING' => 'Meeting:', |
|
94 | - 'LBL_MINSS_ABBREV' => 'm', |
|
95 | - 'LBL_MODIFIED_BY'=>'Modified by', |
|
96 | - 'LBL_MODULE_NAME' => 'Meetings', |
|
97 | - 'LBL_MODULE_TITLE' => 'Meetings: Home', |
|
98 | - 'LBL_NAME' => 'Name', |
|
99 | - 'LBL_NEW_FORM_TITLE' => 'Create Appointment', |
|
100 | - 'LBL_OUTLOOK_ID' => 'Outlook ID', |
|
101 | - 'LBL_SEQUENCE' => 'Meeting update sequence', |
|
102 | - 'LBL_PHONE' => 'Phone Office:', |
|
103 | - 'LBL_REMINDER_TIME'=>'Reminder Time', |
|
67 | + 'LBL_DURATION_HOURS' => 'Duration Hours:', |
|
68 | + 'LBL_DURATION_MINUTES' => 'Duration Minutes:', |
|
69 | + 'LBL_DURATION' => 'Duration:', |
|
70 | + 'LBL_EMAIL' => 'Email', |
|
71 | + 'LBL_FIRST_NAME' => 'First Name', |
|
72 | + 'LBL_HISTORY_SUBPANEL_TITLE' => 'Notes', |
|
73 | + 'LBL_HOURS_ABBREV' => 'h', |
|
74 | + 'LBL_HOURS_MINS' => '(hours/minutes)', |
|
75 | + 'LBL_INVITEE' => 'Invitees', |
|
76 | + 'LBL_LAST_NAME' => 'Last Name', |
|
77 | + 'LBL_ASSIGNED_TO_NAME'=>'Assigned to:', |
|
78 | + 'LBL_LIST_ASSIGNED_TO_NAME' => 'Assigned User', |
|
79 | + 'LBL_LIST_CLOSE' => 'Close', |
|
80 | + 'LBL_LIST_CONTACT' => 'Contact', |
|
81 | + 'LBL_LIST_DATE_MODIFIED'=>'Date Modified', |
|
82 | + 'LBL_LIST_DATE' => 'Start Date', |
|
83 | + 'LBL_LIST_DIRECTION' => 'Direction', |
|
84 | + 'LBL_LIST_DUE_DATE'=>'Due Date', |
|
85 | + 'LBL_LIST_FORM_TITLE' => 'Meeting List', |
|
86 | + 'LBL_LIST_MY_MEETINGS' => 'My Meetings', |
|
87 | + 'LBL_LIST_RELATED_TO' => 'Related to', |
|
88 | + 'LBL_LIST_STATUS'=>'Status', |
|
89 | + 'LBL_LIST_SUBJECT' => 'Subject', |
|
90 | + 'LBL_LIST_TIME' => 'Start Time', |
|
91 | + 'LBL_LEADS_SUBPANEL_TITLE' => 'Leads', |
|
92 | + 'LBL_LOCATION' => 'Location:', |
|
93 | + 'LBL_MEETING' => 'Meeting:', |
|
94 | + 'LBL_MINSS_ABBREV' => 'm', |
|
95 | + 'LBL_MODIFIED_BY'=>'Modified by', |
|
96 | + 'LBL_MODULE_NAME' => 'Meetings', |
|
97 | + 'LBL_MODULE_TITLE' => 'Meetings: Home', |
|
98 | + 'LBL_NAME' => 'Name', |
|
99 | + 'LBL_NEW_FORM_TITLE' => 'Create Appointment', |
|
100 | + 'LBL_OUTLOOK_ID' => 'Outlook ID', |
|
101 | + 'LBL_SEQUENCE' => 'Meeting update sequence', |
|
102 | + 'LBL_PHONE' => 'Phone Office:', |
|
103 | + 'LBL_REMINDER_TIME'=>'Reminder Time', |
|
104 | 104 | 'LBL_EMAIL_REMINDER_SENT' => 'Email reminder sent', |
105 | - 'LBL_REMINDER' => 'Reminders:', |
|
106 | - 'LBL_REMINDER_POPUP' => 'Popup', |
|
107 | - 'LBL_REMINDER_EMAIL' => 'Email', |
|
105 | + 'LBL_REMINDER' => 'Reminders:', |
|
106 | + 'LBL_REMINDER_POPUP' => 'Popup', |
|
107 | + 'LBL_REMINDER_EMAIL' => 'Email', |
|
108 | 108 | 'LBL_REMINDER_EMAIL_ALL_INVITEES' => 'Email all invitees', |
109 | 109 | 'LBL_EMAIL_REMINDER' => 'Email Reminder', |
110 | 110 | 'LBL_EMAIL_REMINDER_TIME' => 'Email Reminder Time', |
111 | 111 | 'LBL_REMOVE' => 'rem', |
112 | - 'LBL_SCHEDULING_FORM_TITLE' => 'Scheduling', |
|
113 | - 'LBL_SEARCH_BUTTON'=> 'Search', |
|
114 | - 'LBL_SEARCH_FORM_TITLE' => 'Meeting Search', |
|
115 | - 'LBL_SEND_BUTTON_KEY'=>'I', |
|
116 | - 'LBL_SEND_BUTTON_LABEL'=>'Save & Send Invites', |
|
117 | - 'LBL_SEND_BUTTON_TITLE'=>'Save & Send Invites', |
|
118 | - 'LBL_STATUS' => 'Status:', |
|
112 | + 'LBL_SCHEDULING_FORM_TITLE' => 'Scheduling', |
|
113 | + 'LBL_SEARCH_BUTTON'=> 'Search', |
|
114 | + 'LBL_SEARCH_FORM_TITLE' => 'Meeting Search', |
|
115 | + 'LBL_SEND_BUTTON_KEY'=>'I', |
|
116 | + 'LBL_SEND_BUTTON_LABEL'=>'Save & Send Invites', |
|
117 | + 'LBL_SEND_BUTTON_TITLE'=>'Save & Send Invites', |
|
118 | + 'LBL_STATUS' => 'Status:', |
|
119 | 119 | 'LBL_TYPE' => 'Meeting Type', |
120 | 120 | 'LBL_PASSWORD' => 'Meeting Password', |
121 | 121 | 'LBL_URL' => 'Start/Join Meeting', |
@@ -123,25 +123,25 @@ discard block |
||
123 | 123 | 'LBL_DISPLAYED_URL' => 'Display URL', |
124 | 124 | 'LBL_CREATOR' => 'Meeting Creator', |
125 | 125 | 'LBL_EXTERNALID' => 'External App ID', |
126 | - 'LBL_SUBJECT' => 'Subject:', |
|
127 | - 'LBL_TIME' => 'Start Time:', |
|
128 | - 'LBL_USERS_SUBPANEL_TITLE' => 'Users', |
|
129 | - 'LBL_ACTIVITIES_REPORTS' => 'Activities Report', |
|
126 | + 'LBL_SUBJECT' => 'Subject:', |
|
127 | + 'LBL_TIME' => 'Start Time:', |
|
128 | + 'LBL_USERS_SUBPANEL_TITLE' => 'Users', |
|
129 | + 'LBL_ACTIVITIES_REPORTS' => 'Activities Report', |
|
130 | 130 | 'LBL_PARENT_TYPE' => 'Parent Type', |
131 | 131 | 'LBL_PARENT_ID' => 'Parent ID', |
132 | - 'LNK_MEETING_LIST'=>'View Meetings', |
|
133 | - 'LNK_NEW_APPOINTMENT' => 'Create Appointment', |
|
134 | - 'LNK_NEW_MEETING'=>'Schedule Meeting', |
|
135 | - 'LNK_IMPORT_MEETINGS' => 'Import Meetings', |
|
132 | + 'LNK_MEETING_LIST'=>'View Meetings', |
|
133 | + 'LNK_NEW_APPOINTMENT' => 'Create Appointment', |
|
134 | + 'LNK_NEW_MEETING'=>'Schedule Meeting', |
|
135 | + 'LNK_IMPORT_MEETINGS' => 'Import Meetings', |
|
136 | 136 | |
137 | - 'NTC_REMOVE_INVITEE' => 'Are you sure you want to remove this invitee from the meeting?', |
|
137 | + 'NTC_REMOVE_INVITEE' => 'Are you sure you want to remove this invitee from the meeting?', |
|
138 | 138 | 'LBL_CREATED_USER' => 'Created User', |
139 | 139 | 'LBL_MODIFIED_USER' => 'Modified User', |
140 | 140 | 'NOTICE_DURATION_TIME' => 'Duration time must be greater than 0', |
141 | 141 | 'LBL_MEETING_INFORMATION' => 'Overview', |
142 | - 'LBL_LIST_JOIN_MEETING' => 'Join Meeting', |
|
143 | - 'LBL_JOIN_EXT_MEETING' => 'Join Meeting', |
|
144 | - 'LBL_HOST_EXT_MEETING' => 'Start Meeting', |
|
142 | + 'LBL_LIST_JOIN_MEETING' => 'Join Meeting', |
|
143 | + 'LBL_JOIN_EXT_MEETING' => 'Join Meeting', |
|
144 | + 'LBL_HOST_EXT_MEETING' => 'Start Meeting', |
|
145 | 145 | 'LBL_ACCEPT_STATUS' => 'Accept Status', |
146 | 146 | 'LBL_ACCEPT_LINK' => 'Accept Link', |
147 | 147 | // You are not invited to the meeting messages |
@@ -154,7 +154,7 @@ discard block |
||
154 | 154 | 'LBL_EXTNOSTART_HEADER' => 'Error: Cannot Start Meeting', |
155 | 155 | 'LBL_EXTNOSTART_MAIN' => 'You cannot start this meeting because you are not an Administrator or the owner of the meeting.', |
156 | 156 | |
157 | - //For export labels |
|
157 | + //For export labels |
|
158 | 158 | 'LBL_EXPORT_JOIN_URL' => 'Join Url', |
159 | 159 | 'LBL_EXPORT_HOST_URL' => 'Host Url', |
160 | 160 | 'LBL_EXPORT_DISPLAYED_URL' => 'Displayed Url', |
@@ -190,14 +190,14 @@ discard block |
||
190 | 190 | 'LBL_SYNCED_RECURRING_MSG' => 'This meeting originated in another system and was synced to SuiteCRM. To make changes, go to the original meeting within the other system. Changes made in the other system can be synced to this record.', |
191 | 191 | 'LBL_RELATED_TO' => 'Related to:', |
192 | 192 | |
193 | - // for reminders |
|
194 | - 'LBL_REMINDERS' => 'Reminders', |
|
195 | - 'LBL_REMINDERS_ACTIONS' => 'Actions:', |
|
196 | - 'LBL_REMINDERS_POPUP' => 'Popup', |
|
197 | - 'LBL_REMINDERS_EMAIL' => 'Email invitees', |
|
198 | - 'LBL_REMINDERS_WHEN' => 'When:', |
|
199 | - 'LBL_REMINDERS_REMOVE_REMINDER' => 'Remove reminder', |
|
200 | - 'LBL_REMINDERS_ADD_ALL_INVITEES' => 'Add All Invitees', |
|
201 | - 'LBL_REMINDERS_ADD_REMINDER' => 'Add reminder', |
|
193 | + // for reminders |
|
194 | + 'LBL_REMINDERS' => 'Reminders', |
|
195 | + 'LBL_REMINDERS_ACTIONS' => 'Actions:', |
|
196 | + 'LBL_REMINDERS_POPUP' => 'Popup', |
|
197 | + 'LBL_REMINDERS_EMAIL' => 'Email invitees', |
|
198 | + 'LBL_REMINDERS_WHEN' => 'When:', |
|
199 | + 'LBL_REMINDERS_REMOVE_REMINDER' => 'Remove reminder', |
|
200 | + 'LBL_REMINDERS_ADD_ALL_INVITEES' => 'Add All Invitees', |
|
201 | + 'LBL_REMINDERS_ADD_REMINDER' => 'Add reminder', |
|
202 | 202 | ); |
203 | 203 | ?> |
@@ -54,9 +54,9 @@ discard block |
||
54 | 54 | parent::process(); |
55 | 55 | |
56 | 56 | $this->ss->assign("STATUS_OPTIONS", get_select_options_with_id($app_list_strings['meeting_status_dom'], $app_list_strings['meeting_status_default'])); |
57 | - $this->ss->assign("CALENDAR_DATEFORMAT", $timedate->get_cal_date_format()); |
|
58 | - $this->ss->assign("TIME_FORMAT", '('. $timedate->get_user_time_format().')'); |
|
59 | - $this->ss->assign("USER_DATEFORMAT", '('. $timedate->get_user_date_format().')'); |
|
57 | + $this->ss->assign("CALENDAR_DATEFORMAT", $timedate->get_cal_date_format()); |
|
58 | + $this->ss->assign("TIME_FORMAT", '('. $timedate->get_user_time_format().')'); |
|
59 | + $this->ss->assign("USER_DATEFORMAT", '('. $timedate->get_user_date_format().')'); |
|
60 | 60 | |
61 | 61 | |
62 | 62 | |
@@ -75,52 +75,52 @@ discard block |
||
75 | 75 | $this->javascript->setSugarBean($focus); |
76 | 76 | $this->javascript->addAllFields(''); |
77 | 77 | |
78 | - if (is_null($focus->date_start)) |
|
79 | - $focus->date_start = $timedate->to_display_date(TimeDate::getInstance()->nowDb()); |
|
80 | - if (is_null($focus->time_start)) |
|
81 | - $focus->time_start = $timedate->to_display_time(TimeDate::getInstance()->nowDb(), true); |
|
82 | - if (!isset ($focus->duration_hours)) |
|
83 | - $focus->duration_hours = "1"; |
|
78 | + if (is_null($focus->date_start)) |
|
79 | + $focus->date_start = $timedate->to_display_date(TimeDate::getInstance()->nowDb()); |
|
80 | + if (is_null($focus->time_start)) |
|
81 | + $focus->time_start = $timedate->to_display_time(TimeDate::getInstance()->nowDb(), true); |
|
82 | + if (!isset ($focus->duration_hours)) |
|
83 | + $focus->duration_hours = "1"; |
|
84 | 84 | |
85 | 85 | |
86 | 86 | $date_start_array=explode(" ",trim($focus->date_start)); |
87 | 87 | if (count($date_start_array)==2) { |
88 | - $focus->time_start = $timedate->to_db_time($date_start_array[1], false); |
|
89 | - //$focus->date_start = $date_start_array[0]; |
|
88 | + $focus->time_start = $timedate->to_db_time($date_start_array[1], false); |
|
89 | + //$focus->date_start = $date_start_array[0]; |
|
90 | 90 | } |
91 | 91 | |
92 | - $this->ss->assign("DATE_START", $focus->date_start); |
|
93 | - $this->ss->assign("TIME_START", substr($focus->time_start,0,5)); |
|
94 | - $time_start_hour = intval(substr($focus->time_start, 0, 2)); |
|
95 | - $time_start_minutes = substr($focus->time_start, 3, 5); |
|
92 | + $this->ss->assign("DATE_START", $focus->date_start); |
|
93 | + $this->ss->assign("TIME_START", substr($focus->time_start,0,5)); |
|
94 | + $time_start_hour = intval(substr($focus->time_start, 0, 2)); |
|
95 | + $time_start_minutes = substr($focus->time_start, 3, 5); |
|
96 | 96 | |
97 | - if ($time_start_minutes > 0 && $time_start_minutes < 15) { |
|
98 | - $time_start_minutes = "15"; |
|
99 | - } else |
|
100 | - if ($time_start_minutes > 15 && $time_start_minutes < 30) { |
|
101 | - $time_start_minutes = "30"; |
|
102 | - } else |
|
103 | - if ($time_start_minutes > 30 && $time_start_minutes < 45) { |
|
104 | - $time_start_minutes = "45"; |
|
105 | - } else |
|
106 | - if ($time_start_minutes > 45) { |
|
107 | - $time_start_hour += 1; |
|
108 | - $time_start_minutes = "00"; |
|
109 | - } |
|
97 | + if ($time_start_minutes > 0 && $time_start_minutes < 15) { |
|
98 | + $time_start_minutes = "15"; |
|
99 | + } else |
|
100 | + if ($time_start_minutes > 15 && $time_start_minutes < 30) { |
|
101 | + $time_start_minutes = "30"; |
|
102 | + } else |
|
103 | + if ($time_start_minutes > 30 && $time_start_minutes < 45) { |
|
104 | + $time_start_minutes = "45"; |
|
105 | + } else |
|
106 | + if ($time_start_minutes > 45) { |
|
107 | + $time_start_hour += 1; |
|
108 | + $time_start_minutes = "00"; |
|
109 | + } |
|
110 | 110 | |
111 | 111 | |
112 | - // We default the to assume that the time preference is set to 11:00 (i.e. without meridiem) |
|
113 | - $hours_arr = array (); |
|
114 | - $num_of_hours = 24; |
|
115 | - $start_at = 0; |
|
112 | + // We default the to assume that the time preference is set to 11:00 (i.e. without meridiem) |
|
113 | + $hours_arr = array (); |
|
114 | + $num_of_hours = 24; |
|
115 | + $start_at = 0; |
|
116 | 116 | |
117 | - $time_pref = $timedate->get_time_format(); |
|
118 | - if(strpos($time_pref, 'a') || strpos($time_pref, 'A')) { |
|
119 | - $num_of_hours = 13; |
|
120 | - $start_at = 1; |
|
121 | - } |
|
117 | + $time_pref = $timedate->get_time_format(); |
|
118 | + if(strpos($time_pref, 'a') || strpos($time_pref, 'A')) { |
|
119 | + $num_of_hours = 13; |
|
120 | + $start_at = 1; |
|
121 | + } |
|
122 | 122 | |
123 | - /* |
|
123 | + /* |
|
124 | 124 | // Seems to be problematic... $time_meridiem is always empty |
125 | 125 | if (empty ($time_meridiem)) { |
126 | 126 | $num_of_hours = 24; |
@@ -128,37 +128,37 @@ discard block |
||
128 | 128 | } |
129 | 129 | */ |
130 | 130 | |
131 | - for ($i = $start_at; $i < $num_of_hours; $i ++) { |
|
132 | - $i = $i.""; |
|
133 | - if (strlen($i) == 1) { |
|
134 | - $i = "0".$i; |
|
135 | - } |
|
136 | - $hours_arr[$i] = $i; |
|
137 | - } |
|
131 | + for ($i = $start_at; $i < $num_of_hours; $i ++) { |
|
132 | + $i = $i.""; |
|
133 | + if (strlen($i) == 1) { |
|
134 | + $i = "0".$i; |
|
135 | + } |
|
136 | + $hours_arr[$i] = $i; |
|
137 | + } |
|
138 | 138 | |
139 | 139 | $this->ss->assign("TIME_START_HOUR_OPTIONS", get_select_options_with_id($hours_arr, $time_start_hour)); |
140 | - $this->ss->assign("TIME_START_MINUTE_OPTIONS", get_select_options_with_id($focus->minutes_values, $time_start_minutes)); |
|
141 | - $this->ss->assign("DURATION_HOURS", $focus->duration_hours); |
|
142 | - $this->ss->assign("DURATION_MINUTES_OPTIONS", get_select_options_with_id($focus->minutes_values, $focus->duration_minutes)); |
|
140 | + $this->ss->assign("TIME_START_MINUTE_OPTIONS", get_select_options_with_id($focus->minutes_values, $time_start_minutes)); |
|
141 | + $this->ss->assign("DURATION_HOURS", $focus->duration_hours); |
|
142 | + $this->ss->assign("DURATION_MINUTES_OPTIONS", get_select_options_with_id($focus->minutes_values, $focus->duration_minutes)); |
|
143 | 143 | // Test to see if time format is 11:00am; otherwise it's 11:00AM |
144 | 144 | if($num_of_hours == 13) { |
145 | 145 | |
146 | - if (strpos($time_pref, 'a')) { |
|
146 | + if (strpos($time_pref, 'a')) { |
|
147 | 147 | |
148 | - if(!isset($focus->meridiem_am_values)) { |
|
149 | - $focus->meridiem_am_values = array('am'=>'am', 'pm'=>'pm'); |
|
150 | - } |
|
148 | + if(!isset($focus->meridiem_am_values)) { |
|
149 | + $focus->meridiem_am_values = array('am'=>'am', 'pm'=>'pm'); |
|
150 | + } |
|
151 | 151 | |
152 | - $this->ss->assign("TIME_MERIDIEM", get_select_options_with_id($focus->meridiem_am_values, $time_start_hour < 12 ? 'am' : 'pm')); |
|
152 | + $this->ss->assign("TIME_MERIDIEM", get_select_options_with_id($focus->meridiem_am_values, $time_start_hour < 12 ? 'am' : 'pm')); |
|
153 | 153 | |
154 | - } else { |
|
155 | - if(!isset($focus->meridiem_AM_values)) { |
|
156 | - $focus->meridiem_AM_values = array('AM'=>'AM', 'PM'=>'PM'); |
|
157 | - } |
|
154 | + } else { |
|
155 | + if(!isset($focus->meridiem_AM_values)) { |
|
156 | + $focus->meridiem_AM_values = array('AM'=>'AM', 'PM'=>'PM'); |
|
157 | + } |
|
158 | 158 | |
159 | - $this->ss->assign("TIME_MERIDIEM", get_select_options_with_id($focus->meridiem_AM_values, $time_start_hour < 12 ? 'AM' : 'PM')); |
|
159 | + $this->ss->assign("TIME_MERIDIEM", get_select_options_with_id($focus->meridiem_AM_values, $time_start_hour < 12 ? 'AM' : 'PM')); |
|
160 | 160 | |
161 | - } //if-else |
|
161 | + } //if-else |
|
162 | 162 | |
163 | 163 | } |
164 | 164 |
@@ -40,136 +40,136 @@ discard block |
||
40 | 40 | |
41 | 41 | |
42 | 42 | class Meeting extends SugarBean { |
43 | - // Stored fields |
|
44 | - var $id; |
|
45 | - var $date_entered; |
|
46 | - var $date_modified; |
|
47 | - var $assigned_user_id; |
|
48 | - var $modified_user_id; |
|
49 | - var $created_by; |
|
50 | - var $created_by_name; |
|
51 | - var $modified_by_name; |
|
52 | - var $description; |
|
53 | - var $name; |
|
54 | - var $location; |
|
55 | - var $status; |
|
56 | - var $type; |
|
57 | - var $date_start; |
|
58 | - var $time_start; |
|
59 | - var $date_end; |
|
60 | - var $duration_hours; |
|
61 | - var $duration_minutes; |
|
62 | - var $time_meridiem; |
|
63 | - var $parent_type; |
|
64 | - var $parent_type_options; |
|
65 | - var $parent_id; |
|
66 | - var $field_name_map; |
|
67 | - var $contact_id; |
|
68 | - var $user_id; |
|
69 | - var $meeting_id; |
|
70 | - var $reminder_time; |
|
71 | - var $reminder_checked; |
|
72 | - var $email_reminder_time; |
|
73 | - var $email_reminder_checked; |
|
74 | - var $email_reminder_sent; |
|
75 | - var $required; |
|
76 | - var $accept_status; |
|
77 | - var $parent_name; |
|
78 | - var $contact_name; |
|
79 | - var $contact_phone; |
|
80 | - var $contact_email; |
|
81 | - var $account_id; |
|
82 | - var $opportunity_id; |
|
83 | - var $case_id; |
|
84 | - var $assigned_user_name; |
|
85 | - var $outlook_id; |
|
86 | - var $sequence; |
|
87 | - var $syncing = false; |
|
88 | - var $recurring_source; |
|
89 | - |
|
90 | - var $update_vcal = true; |
|
91 | - var $contacts_arr; |
|
92 | - var $users_arr; |
|
93 | - var $meetings_arr; |
|
94 | - // when assoc w/ a user/contact: |
|
95 | - var $minutes_value_default = 15; |
|
96 | - var $minutes_values = array('0'=>'00','15'=>'15','30'=>'30','45'=>'45'); |
|
97 | - var $table_name = "meetings"; |
|
98 | - var $rel_users_table = "meetings_users"; |
|
99 | - var $rel_contacts_table = "meetings_contacts"; |
|
100 | - var $rel_leads_table = "meetings_leads"; |
|
101 | - var $module_dir = "Meetings"; |
|
102 | - var $object_name = "Meeting"; |
|
103 | - |
|
104 | - var $importable = true; |
|
105 | - // This is used to retrieve related fields from form posts. |
|
106 | - var $additional_column_fields = array('assigned_user_name', 'assigned_user_id', 'contact_id', 'user_id', 'contact_name', 'accept_status'); |
|
107 | - var $relationship_fields = array('account_id'=>'accounts','opportunity_id'=>'opportunity','case_id'=>'case', |
|
108 | - 'assigned_user_id'=>'users','contact_id'=>'contacts', 'user_id'=>'users', 'meeting_id'=>'meetings'); |
|
109 | - // so you can run get_users() twice and run query only once |
|
110 | - var $cached_get_users = null; |
|
111 | - var $new_schema = true; |
|
43 | + // Stored fields |
|
44 | + var $id; |
|
45 | + var $date_entered; |
|
46 | + var $date_modified; |
|
47 | + var $assigned_user_id; |
|
48 | + var $modified_user_id; |
|
49 | + var $created_by; |
|
50 | + var $created_by_name; |
|
51 | + var $modified_by_name; |
|
52 | + var $description; |
|
53 | + var $name; |
|
54 | + var $location; |
|
55 | + var $status; |
|
56 | + var $type; |
|
57 | + var $date_start; |
|
58 | + var $time_start; |
|
59 | + var $date_end; |
|
60 | + var $duration_hours; |
|
61 | + var $duration_minutes; |
|
62 | + var $time_meridiem; |
|
63 | + var $parent_type; |
|
64 | + var $parent_type_options; |
|
65 | + var $parent_id; |
|
66 | + var $field_name_map; |
|
67 | + var $contact_id; |
|
68 | + var $user_id; |
|
69 | + var $meeting_id; |
|
70 | + var $reminder_time; |
|
71 | + var $reminder_checked; |
|
72 | + var $email_reminder_time; |
|
73 | + var $email_reminder_checked; |
|
74 | + var $email_reminder_sent; |
|
75 | + var $required; |
|
76 | + var $accept_status; |
|
77 | + var $parent_name; |
|
78 | + var $contact_name; |
|
79 | + var $contact_phone; |
|
80 | + var $contact_email; |
|
81 | + var $account_id; |
|
82 | + var $opportunity_id; |
|
83 | + var $case_id; |
|
84 | + var $assigned_user_name; |
|
85 | + var $outlook_id; |
|
86 | + var $sequence; |
|
87 | + var $syncing = false; |
|
88 | + var $recurring_source; |
|
89 | + |
|
90 | + var $update_vcal = true; |
|
91 | + var $contacts_arr; |
|
92 | + var $users_arr; |
|
93 | + var $meetings_arr; |
|
94 | + // when assoc w/ a user/contact: |
|
95 | + var $minutes_value_default = 15; |
|
96 | + var $minutes_values = array('0'=>'00','15'=>'15','30'=>'30','45'=>'45'); |
|
97 | + var $table_name = "meetings"; |
|
98 | + var $rel_users_table = "meetings_users"; |
|
99 | + var $rel_contacts_table = "meetings_contacts"; |
|
100 | + var $rel_leads_table = "meetings_leads"; |
|
101 | + var $module_dir = "Meetings"; |
|
102 | + var $object_name = "Meeting"; |
|
103 | + |
|
104 | + var $importable = true; |
|
105 | + // This is used to retrieve related fields from form posts. |
|
106 | + var $additional_column_fields = array('assigned_user_name', 'assigned_user_id', 'contact_id', 'user_id', 'contact_name', 'accept_status'); |
|
107 | + var $relationship_fields = array('account_id'=>'accounts','opportunity_id'=>'opportunity','case_id'=>'case', |
|
108 | + 'assigned_user_id'=>'users','contact_id'=>'contacts', 'user_id'=>'users', 'meeting_id'=>'meetings'); |
|
109 | + // so you can run get_users() twice and run query only once |
|
110 | + var $cached_get_users = null; |
|
111 | + var $new_schema = true; |
|
112 | 112 | var $date_changed = false; |
113 | 113 | |
114 | - /** |
|
115 | - * sole constructor |
|
116 | - */ |
|
117 | - function Meeting() { |
|
118 | - parent::SugarBean(); |
|
119 | - $this->setupCustomFields('Meetings'); |
|
120 | - foreach($this->field_defs as $field) { |
|
121 | - $this->field_name_map[$field['name']] = $field; |
|
122 | - } |
|
114 | + /** |
|
115 | + * sole constructor |
|
116 | + */ |
|
117 | + function Meeting() { |
|
118 | + parent::SugarBean(); |
|
119 | + $this->setupCustomFields('Meetings'); |
|
120 | + foreach($this->field_defs as $field) { |
|
121 | + $this->field_name_map[$field['name']] = $field; |
|
122 | + } |
|
123 | 123 | // $this->fill_in_additional_detail_fields(); |
124 | 124 | if(!empty($GLOBALS['app_list_strings']['duration_intervals'])) { |
125 | 125 | $this->minutes_values = $GLOBALS['app_list_strings']['duration_intervals']; |
126 | 126 | } |
127 | - } |
|
128 | - |
|
129 | - /** |
|
130 | - * Disable edit if meeting is recurring and source is not Sugar. It should be edited only from Outlook. |
|
131 | - * @param $view string |
|
132 | - * @param $is_owner bool |
|
133 | - */ |
|
134 | - function ACLAccess($view,$is_owner='not_set',$in_group='not_set'){ |
|
135 | - // don't check if meeting is being synced from Outlook |
|
136 | - if($this->syncing == false){ |
|
137 | - $view = strtolower($view); |
|
138 | - switch($view){ |
|
139 | - case 'edit': |
|
140 | - case 'save': |
|
141 | - case 'editview': |
|
142 | - case 'delete': |
|
143 | - if(!empty($this->recurring_source) && $this->recurring_source != "Sugar"){ |
|
144 | - return false; |
|
145 | - } |
|
146 | - } |
|
147 | - } |
|
148 | - return parent::ACLAccess($view,$is_owner,$in_group); |
|
149 | - } |
|
150 | - |
|
151 | - /** |
|
152 | - * Stub for integration |
|
153 | - * @return bool |
|
154 | - */ |
|
155 | - function hasIntegratedMeeting() { |
|
156 | - return false; |
|
157 | - } |
|
158 | - |
|
159 | - // save date_end by calculating user input |
|
160 | - // this is for calendar |
|
161 | - function save($check_notify = FALSE) { |
|
162 | - global $timedate; |
|
163 | - global $current_user; |
|
164 | - |
|
165 | - global $disable_date_format; |
|
127 | + } |
|
128 | + |
|
129 | + /** |
|
130 | + * Disable edit if meeting is recurring and source is not Sugar. It should be edited only from Outlook. |
|
131 | + * @param $view string |
|
132 | + * @param $is_owner bool |
|
133 | + */ |
|
134 | + function ACLAccess($view,$is_owner='not_set',$in_group='not_set'){ |
|
135 | + // don't check if meeting is being synced from Outlook |
|
136 | + if($this->syncing == false){ |
|
137 | + $view = strtolower($view); |
|
138 | + switch($view){ |
|
139 | + case 'edit': |
|
140 | + case 'save': |
|
141 | + case 'editview': |
|
142 | + case 'delete': |
|
143 | + if(!empty($this->recurring_source) && $this->recurring_source != "Sugar"){ |
|
144 | + return false; |
|
145 | + } |
|
146 | + } |
|
147 | + } |
|
148 | + return parent::ACLAccess($view,$is_owner,$in_group); |
|
149 | + } |
|
150 | + |
|
151 | + /** |
|
152 | + * Stub for integration |
|
153 | + * @return bool |
|
154 | + */ |
|
155 | + function hasIntegratedMeeting() { |
|
156 | + return false; |
|
157 | + } |
|
158 | + |
|
159 | + // save date_end by calculating user input |
|
160 | + // this is for calendar |
|
161 | + function save($check_notify = FALSE) { |
|
162 | + global $timedate; |
|
163 | + global $current_user; |
|
164 | + |
|
165 | + global $disable_date_format; |
|
166 | 166 | |
167 | 167 | if(isset($this->date_start)) |
168 | 168 | { |
169 | 169 | $td = $timedate->fromDb($this->date_start); |
170 | 170 | if(!$td){ |
171 | - $this->date_start = $timedate->to_db($this->date_start); |
|
172 | - $td = $timedate->fromDb($this->date_start); |
|
171 | + $this->date_start = $timedate->to_db($this->date_start); |
|
172 | + $td = $timedate->fromDb($this->date_start); |
|
173 | 173 | } |
174 | 174 | if($td) |
175 | 175 | { |
@@ -185,30 +185,30 @@ discard block |
||
185 | 185 | } |
186 | 186 | } |
187 | 187 | |
188 | - $check_notify =(!empty($_REQUEST['send_invites']) && $_REQUEST['send_invites'] == '1') ? true : false; |
|
189 | - if(empty($_REQUEST['send_invites'])) { |
|
190 | - if(!empty($this->id)) { |
|
191 | - $old_record = new Meeting(); |
|
192 | - $old_record->retrieve($this->id); |
|
193 | - $old_assigned_user_id = $old_record->assigned_user_id; |
|
194 | - } |
|
195 | - if((empty($this->id) && isset($_REQUEST['assigned_user_id']) && !empty($_REQUEST['assigned_user_id']) && $GLOBALS['current_user']->id != $_REQUEST['assigned_user_id']) || (isset($old_assigned_user_id) && !empty($old_assigned_user_id) && isset($_REQUEST['assigned_user_id']) && !empty($_REQUEST['assigned_user_id']) && $old_assigned_user_id != $_REQUEST['assigned_user_id']) ){ |
|
196 | - $this->special_notification = true; |
|
197 | - $check_notify = true; |
|
188 | + $check_notify =(!empty($_REQUEST['send_invites']) && $_REQUEST['send_invites'] == '1') ? true : false; |
|
189 | + if(empty($_REQUEST['send_invites'])) { |
|
190 | + if(!empty($this->id)) { |
|
191 | + $old_record = new Meeting(); |
|
192 | + $old_record->retrieve($this->id); |
|
193 | + $old_assigned_user_id = $old_record->assigned_user_id; |
|
194 | + } |
|
195 | + if((empty($this->id) && isset($_REQUEST['assigned_user_id']) && !empty($_REQUEST['assigned_user_id']) && $GLOBALS['current_user']->id != $_REQUEST['assigned_user_id']) || (isset($old_assigned_user_id) && !empty($old_assigned_user_id) && isset($_REQUEST['assigned_user_id']) && !empty($_REQUEST['assigned_user_id']) && $old_assigned_user_id != $_REQUEST['assigned_user_id']) ){ |
|
196 | + $this->special_notification = true; |
|
197 | + $check_notify = true; |
|
198 | 198 | if(isset($_REQUEST['assigned_user_name'])) { |
199 | 199 | $this->new_assigned_user_name = $_REQUEST['assigned_user_name']; |
200 | 200 | } |
201 | - } |
|
202 | - } |
|
203 | - /*nsingh 7/3/08 commenting out as bug #20814 is invalid |
|
201 | + } |
|
202 | + } |
|
203 | + /*nsingh 7/3/08 commenting out as bug #20814 is invalid |
|
204 | 204 | if($current_user->getPreference('reminder_time')!= -1 && isset($_POST['reminder_checked']) && isset($_POST['reminder_time']) && $_POST['reminder_checked']==0 && $_POST['reminder_time']==-1){ |
205 | 205 | $this->reminder_checked = '1'; |
206 | 206 | $this->reminder_time = $current_user->getPreference('reminder_time'); |
207 | 207 | }*/ |
208 | 208 | |
209 | - // prevent a mass mailing for recurring meetings created in Calendar module |
|
210 | - if(empty($this->id) && !empty($_REQUEST['module']) && $_REQUEST['module'] == "Calendar" && !empty($_REQUEST['repeat_type']) && !empty($this->repeat_parent_id)) |
|
211 | - $check_notify = false; |
|
209 | + // prevent a mass mailing for recurring meetings created in Calendar module |
|
210 | + if(empty($this->id) && !empty($_REQUEST['module']) && $_REQUEST['module'] == "Calendar" && !empty($_REQUEST['repeat_type']) && !empty($this->repeat_parent_id)) |
|
211 | + $check_notify = false; |
|
212 | 212 | |
213 | 213 | if (empty($this->status) ) { |
214 | 214 | $this->status = $this->getDefaultStatus(); |
@@ -229,8 +229,8 @@ discard block |
||
229 | 229 | } |
230 | 230 | |
231 | 231 | if (empty($this->type)) { |
232 | - $this->type = 'Sugar'; |
|
233 | - } |
|
232 | + $this->type = 'Sugar'; |
|
233 | + } |
|
234 | 234 | |
235 | 235 | if ( isset($api) && is_a($api,'WebMeeting') && empty($this->in_relationship_update) ) { |
236 | 236 | // Make sure the API initialized and it supports Web Meetings |
@@ -258,175 +258,175 @@ discard block |
||
258 | 258 | $api->logoff(); |
259 | 259 | } |
260 | 260 | |
261 | - $return_id = parent::save($check_notify); |
|
261 | + $return_id = parent::save($check_notify); |
|
262 | 262 | |
263 | - if($this->update_vcal) { |
|
264 | - vCal::cache_sugar_vcal($current_user); |
|
265 | - } |
|
263 | + if($this->update_vcal) { |
|
264 | + vCal::cache_sugar_vcal($current_user); |
|
265 | + } |
|
266 | 266 | |
267 | - if(isset($_REQUEST['reminders_data'])) { |
|
268 | - Reminder::saveRemindersDataJson('Meetings', $return_id, html_entity_decode($_REQUEST['reminders_data'])); |
|
269 | - } |
|
267 | + if(isset($_REQUEST['reminders_data'])) { |
|
268 | + Reminder::saveRemindersDataJson('Meetings', $return_id, html_entity_decode($_REQUEST['reminders_data'])); |
|
269 | + } |
|
270 | 270 | |
271 | 271 | |
272 | - return $return_id; |
|
273 | - } |
|
272 | + return $return_id; |
|
273 | + } |
|
274 | 274 | |
275 | - // this is for calendar |
|
276 | - function mark_deleted($id) { |
|
275 | + // this is for calendar |
|
276 | + function mark_deleted($id) { |
|
277 | 277 | |
278 | - require_once("modules/Calendar/CalendarUtils.php"); |
|
279 | - CalendarUtils::correctRecurrences($this, $id); |
|
278 | + require_once("modules/Calendar/CalendarUtils.php"); |
|
279 | + CalendarUtils::correctRecurrences($this, $id); |
|
280 | 280 | |
281 | - global $current_user; |
|
281 | + global $current_user; |
|
282 | 282 | |
283 | - parent::mark_deleted($id); |
|
283 | + parent::mark_deleted($id); |
|
284 | 284 | |
285 | - if($this->update_vcal) { |
|
286 | - vCal::cache_sugar_vcal($current_user); |
|
287 | - } |
|
288 | - } |
|
285 | + if($this->update_vcal) { |
|
286 | + vCal::cache_sugar_vcal($current_user); |
|
287 | + } |
|
288 | + } |
|
289 | 289 | |
290 | - function get_summary_text() { |
|
291 | - return "$this->name"; |
|
292 | - } |
|
290 | + function get_summary_text() { |
|
291 | + return "$this->name"; |
|
292 | + } |
|
293 | 293 | |
294 | 294 | function create_export_query($order_by, $where, $relate_link_join='') |
295 | 295 | { |
296 | 296 | $custom_join = $this->getCustomJoin(true, true, $where); |
297 | 297 | $custom_join['join'] .= $relate_link_join; |
298 | - $contact_required = stristr($where, "contacts"); |
|
298 | + $contact_required = stristr($where, "contacts"); |
|
299 | 299 | |
300 | - if($contact_required) { |
|
301 | - $query = "SELECT meetings.*, contacts.first_name, contacts.last_name, contacts.assigned_user_id contact_name_owner, users.user_name as assigned_user_name "; |
|
300 | + if($contact_required) { |
|
301 | + $query = "SELECT meetings.*, contacts.first_name, contacts.last_name, contacts.assigned_user_id contact_name_owner, users.user_name as assigned_user_name "; |
|
302 | 302 | $query .= $custom_join['select']; |
303 | - $query .= " FROM contacts, meetings, meetings_contacts "; |
|
304 | - $where_auto = " meetings_contacts.contact_id = contacts.id AND meetings_contacts.meeting_id = meetings.id AND meetings.deleted=0 AND contacts.deleted=0"; |
|
305 | - } else { |
|
306 | - $query = 'SELECT meetings.*, users.user_name as assigned_user_name '; |
|
303 | + $query .= " FROM contacts, meetings, meetings_contacts "; |
|
304 | + $where_auto = " meetings_contacts.contact_id = contacts.id AND meetings_contacts.meeting_id = meetings.id AND meetings.deleted=0 AND contacts.deleted=0"; |
|
305 | + } else { |
|
306 | + $query = 'SELECT meetings.*, users.user_name as assigned_user_name '; |
|
307 | 307 | $query .= $custom_join['select']; |
308 | - $query .= ' FROM meetings '; |
|
309 | - $where_auto = "meetings.deleted=0"; |
|
310 | - } |
|
311 | - $query .= " LEFT JOIN users ON meetings.assigned_user_id=users.id "; |
|
308 | + $query .= ' FROM meetings '; |
|
309 | + $where_auto = "meetings.deleted=0"; |
|
310 | + } |
|
311 | + $query .= " LEFT JOIN users ON meetings.assigned_user_id=users.id "; |
|
312 | 312 | |
313 | 313 | $query .= $custom_join['join']; |
314 | 314 | |
315 | - if($where != "") |
|
316 | - $query .= " where $where AND ".$where_auto; |
|
317 | - else |
|
318 | - $query .= " where ".$where_auto; |
|
315 | + if($where != "") |
|
316 | + $query .= " where $where AND ".$where_auto; |
|
317 | + else |
|
318 | + $query .= " where ".$where_auto; |
|
319 | 319 | |
320 | 320 | $order_by = $this->process_order_by($order_by); |
321 | 321 | if (!empty($order_by)) { |
322 | 322 | $query .= ' ORDER BY ' . $order_by; |
323 | 323 | } |
324 | 324 | |
325 | - return $query; |
|
326 | - } |
|
327 | - |
|
328 | - |
|
329 | - |
|
330 | - function fill_in_additional_detail_fields() { |
|
331 | - global $locale; |
|
332 | - // Fill in the assigned_user_name |
|
333 | - $this->assigned_user_name = get_assigned_user_name($this->assigned_user_id); |
|
334 | - |
|
335 | - if (!empty($this->contact_id)) { |
|
336 | - $query = "SELECT first_name, last_name FROM contacts "; |
|
337 | - $query .= "WHERE id='$this->contact_id' AND deleted=0"; |
|
338 | - $result = $this->db->limitQuery($query,0,1,true," Error filling in additional detail fields: "); |
|
325 | + return $query; |
|
326 | + } |
|
339 | 327 | |
340 | - // Get the contact name. |
|
341 | - $row = $this->db->fetchByAssoc($result); |
|
342 | - $GLOBALS['log']->info("additional call fields $query"); |
|
343 | - if($row != null) |
|
344 | - { |
|
345 | - $this->contact_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name'], '', ''); |
|
346 | - $GLOBALS['log']->debug("Call($this->id): contact_name = $this->contact_name"); |
|
347 | - $GLOBALS['log']->debug("Call($this->id): contact_id = $this->contact_id"); |
|
348 | - } |
|
349 | - } |
|
350 | 328 | |
351 | 329 | |
330 | + function fill_in_additional_detail_fields() { |
|
331 | + global $locale; |
|
332 | + // Fill in the assigned_user_name |
|
333 | + $this->assigned_user_name = get_assigned_user_name($this->assigned_user_id); |
|
352 | 334 | |
353 | - $this->created_by_name = get_assigned_user_name($this->created_by); |
|
354 | - $this->modified_by_name = get_assigned_user_name($this->modified_user_id); |
|
355 | - $this->fill_in_additional_parent_fields(); |
|
335 | + if (!empty($this->contact_id)) { |
|
336 | + $query = "SELECT first_name, last_name FROM contacts "; |
|
337 | + $query .= "WHERE id='$this->contact_id' AND deleted=0"; |
|
338 | + $result = $this->db->limitQuery($query,0,1,true," Error filling in additional detail fields: "); |
|
356 | 339 | |
357 | - if (!isset($this->time_hour_start)) { |
|
358 | - $this->time_start_hour = intval(substr($this->time_start, 0, 2)); |
|
359 | - } //if-else |
|
340 | + // Get the contact name. |
|
341 | + $row = $this->db->fetchByAssoc($result); |
|
342 | + $GLOBALS['log']->info("additional call fields $query"); |
|
343 | + if($row != null) |
|
344 | + { |
|
345 | + $this->contact_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name'], '', ''); |
|
346 | + $GLOBALS['log']->debug("Call($this->id): contact_name = $this->contact_name"); |
|
347 | + $GLOBALS['log']->debug("Call($this->id): contact_id = $this->contact_id"); |
|
348 | + } |
|
349 | + } |
|
360 | 350 | |
361 | - if (isset($this->time_minute_start)) { |
|
362 | - $time_start_minutes = $this->time_minute_start; |
|
363 | - } else { |
|
364 | - $time_start_minutes = substr($this->time_start, 3, 5); |
|
365 | - if ($time_start_minutes > 0 && $time_start_minutes < 15) { |
|
366 | - $time_start_minutes = "15"; |
|
367 | - } else if ($time_start_minutes > 15 && $time_start_minutes < 30) { |
|
368 | - $time_start_minutes = "30"; |
|
369 | - } else if ($time_start_minutes > 30 && $time_start_minutes < 45) { |
|
370 | - $time_start_minutes = "45"; |
|
371 | - } else if ($time_start_minutes > 45) { |
|
372 | - $this->time_start_hour += 1; |
|
373 | - $time_start_minutes = "00"; |
|
374 | - } //if-else |
|
375 | - } //if-else |
|
376 | 351 | |
377 | 352 | |
378 | - if (isset($this->time_hour_start)) { |
|
379 | - $time_start_hour = $this->time_hour_start; |
|
380 | - } else { |
|
381 | - $time_start_hour = intval(substr($this->time_start, 0, 2)); |
|
382 | - } |
|
353 | + $this->created_by_name = get_assigned_user_name($this->created_by); |
|
354 | + $this->modified_by_name = get_assigned_user_name($this->modified_user_id); |
|
355 | + $this->fill_in_additional_parent_fields(); |
|
356 | + |
|
357 | + if (!isset($this->time_hour_start)) { |
|
358 | + $this->time_start_hour = intval(substr($this->time_start, 0, 2)); |
|
359 | + } //if-else |
|
360 | + |
|
361 | + if (isset($this->time_minute_start)) { |
|
362 | + $time_start_minutes = $this->time_minute_start; |
|
363 | + } else { |
|
364 | + $time_start_minutes = substr($this->time_start, 3, 5); |
|
365 | + if ($time_start_minutes > 0 && $time_start_minutes < 15) { |
|
366 | + $time_start_minutes = "15"; |
|
367 | + } else if ($time_start_minutes > 15 && $time_start_minutes < 30) { |
|
368 | + $time_start_minutes = "30"; |
|
369 | + } else if ($time_start_minutes > 30 && $time_start_minutes < 45) { |
|
370 | + $time_start_minutes = "45"; |
|
371 | + } else if ($time_start_minutes > 45) { |
|
372 | + $this->time_start_hour += 1; |
|
373 | + $time_start_minutes = "00"; |
|
374 | + } //if-else |
|
375 | + } //if-else |
|
376 | + |
|
377 | + |
|
378 | + if (isset($this->time_hour_start)) { |
|
379 | + $time_start_hour = $this->time_hour_start; |
|
380 | + } else { |
|
381 | + $time_start_hour = intval(substr($this->time_start, 0, 2)); |
|
382 | + } |
|
383 | 383 | |
384 | - global $timedate; |
|
384 | + global $timedate; |
|
385 | 385 | $this->time_meridiem = $timedate->AMPMMenu('', $this->time_start, 'onchange="SugarWidgetScheduler.update_time();"'); |
386 | - $hours_arr = array (); |
|
387 | - $num_of_hours = 13; |
|
388 | - $start_at = 1; |
|
389 | - |
|
390 | - if (empty ($time_meridiem)) { |
|
391 | - $num_of_hours = 24; |
|
392 | - $start_at = 0; |
|
393 | - } //if |
|
394 | - |
|
395 | - for ($i = $start_at; $i < $num_of_hours; $i ++) { |
|
396 | - $i = $i.""; |
|
397 | - if (strlen($i) == 1) { |
|
398 | - $i = "0".$i; |
|
399 | - } |
|
400 | - $hours_arr[$i] = $i; |
|
401 | - } //for |
|
386 | + $hours_arr = array (); |
|
387 | + $num_of_hours = 13; |
|
388 | + $start_at = 1; |
|
389 | + |
|
390 | + if (empty ($time_meridiem)) { |
|
391 | + $num_of_hours = 24; |
|
392 | + $start_at = 0; |
|
393 | + } //if |
|
394 | + |
|
395 | + for ($i = $start_at; $i < $num_of_hours; $i ++) { |
|
396 | + $i = $i.""; |
|
397 | + if (strlen($i) == 1) { |
|
398 | + $i = "0".$i; |
|
399 | + } |
|
400 | + $hours_arr[$i] = $i; |
|
401 | + } //for |
|
402 | 402 | |
403 | 403 | if (!isset($this->duration_minutes)) { |
404 | - $this->duration_minutes = $this->minutes_value_default; |
|
405 | - } |
|
404 | + $this->duration_minutes = $this->minutes_value_default; |
|
405 | + } |
|
406 | 406 | |
407 | 407 | //setting default date and time |
408 | - if (is_null($this->date_start)) |
|
409 | - $this->date_start = $timedate->now(); |
|
410 | - if (is_null($this->time_start)) |
|
411 | - $this->time_start = $timedate->to_display_time(TimeDate::getInstance()->nowDb(), true); |
|
412 | - if (is_null($this->duration_hours)) { |
|
413 | - $this->duration_hours = "0"; |
|
414 | - } |
|
415 | - if (is_null($this->duration_minutes)) |
|
416 | - $this->duration_minutes = "1"; |
|
417 | - |
|
418 | - if(empty($this->id) && !empty($_REQUEST['date_start'])){ |
|
419 | - $this->date_start = $_REQUEST['date_start']; |
|
420 | - } |
|
408 | + if (is_null($this->date_start)) |
|
409 | + $this->date_start = $timedate->now(); |
|
410 | + if (is_null($this->time_start)) |
|
411 | + $this->time_start = $timedate->to_display_time(TimeDate::getInstance()->nowDb(), true); |
|
412 | + if (is_null($this->duration_hours)) { |
|
413 | + $this->duration_hours = "0"; |
|
414 | + } |
|
415 | + if (is_null($this->duration_minutes)) |
|
416 | + $this->duration_minutes = "1"; |
|
417 | + |
|
418 | + if(empty($this->id) && !empty($_REQUEST['date_start'])){ |
|
419 | + $this->date_start = $_REQUEST['date_start']; |
|
420 | + } |
|
421 | 421 | if(!empty($this->date_start)) |
422 | 422 | { |
423 | 423 | $td = SugarDateTime::createFromFormat($GLOBALS['timedate']->get_date_time_format(),$this->date_start); |
424 | 424 | if (!empty($td)) |
425 | 425 | { |
426 | - if (!empty($this->duration_hours) && $this->duration_hours != '') |
|
426 | + if (!empty($this->duration_hours) && $this->duration_hours != '') |
|
427 | 427 | { |
428 | - $td = $td->modify("+{$this->duration_hours} hours"); |
|
429 | - } |
|
428 | + $td = $td->modify("+{$this->duration_hours} hours"); |
|
429 | + } |
|
430 | 430 | if (!empty($this->duration_minutes) && $this->duration_minutes != '') |
431 | 431 | { |
432 | 432 | $td = $td->modify("+{$this->duration_minutes} mins"); |
@@ -437,77 +437,77 @@ discard block |
||
437 | 437 | { |
438 | 438 | $GLOBALS['log']->fatal("Meeting::save: Bad date {$this->date_start} for format ".$GLOBALS['timedate']->get_date_time_format()); |
439 | 439 | } |
440 | - } |
|
441 | - |
|
442 | - global $app_list_strings; |
|
443 | - $parent_types = $app_list_strings['record_type_display']; |
|
444 | - $disabled_parent_types = ACLController::disabledModuleList($parent_types,false, 'list'); |
|
445 | - foreach($disabled_parent_types as $disabled_parent_type){ |
|
446 | - if($disabled_parent_type != $this->parent_type){ |
|
447 | - unset($parent_types[$disabled_parent_type]); |
|
448 | - } |
|
449 | - } |
|
450 | - |
|
451 | - $this->parent_type_options = get_select_options_with_id($parent_types, $this->parent_type); |
|
452 | - if (empty($this->reminder_time)) { |
|
453 | - $this->reminder_time = -1; |
|
454 | - } |
|
455 | - |
|
456 | - if ( empty($this->id) ) { |
|
457 | - $reminder_t = $GLOBALS['current_user']->getPreference('reminder_time'); |
|
458 | - if ( isset($reminder_t) ) |
|
459 | - $this->reminder_time = $reminder_t; |
|
460 | - } |
|
461 | - $this->reminder_checked = $this->reminder_time == -1 ? false : true; |
|
462 | - |
|
463 | - if (empty($this->email_reminder_time)) { |
|
464 | - $this->email_reminder_time = -1; |
|
465 | - } |
|
466 | - if(empty($this->id)){ |
|
467 | - $reminder_t = $GLOBALS['current_user']->getPreference('email_reminder_time'); |
|
468 | - if(isset($reminder_t)) |
|
469 | - $this->email_reminder_time = $reminder_t; |
|
470 | - } |
|
471 | - $this->email_reminder_checked = $this->email_reminder_time == -1 ? false : true; |
|
472 | - |
|
473 | - if (isset ($_REQUEST['parent_type']) && empty($this->parent_type)) { |
|
474 | - $this->parent_type = $_REQUEST['parent_type']; |
|
475 | - } elseif (is_null($this->parent_type)) { |
|
476 | - $this->parent_type = $app_list_strings['record_type_default_key']; |
|
477 | - } |
|
478 | - |
|
479 | - } |
|
480 | - |
|
481 | - function get_list_view_data() { |
|
482 | - $meeting_fields = $this->get_list_view_array(); |
|
483 | - |
|
484 | - global $app_list_strings, $focus, $action, $currentModule; |
|
485 | - if(isset($this->parent_type)) |
|
486 | - $meeting_fields['PARENT_MODULE'] = $this->parent_type; |
|
487 | - if($this->status == "Planned") { |
|
488 | - //cn: added this if() to deal with sequential Closes in Meetings. this is a hack to a hack(formbase.php->handleRedirect) |
|
489 | - if(empty($action)) |
|
490 | - $action = "index"; |
|
440 | + } |
|
441 | + |
|
442 | + global $app_list_strings; |
|
443 | + $parent_types = $app_list_strings['record_type_display']; |
|
444 | + $disabled_parent_types = ACLController::disabledModuleList($parent_types,false, 'list'); |
|
445 | + foreach($disabled_parent_types as $disabled_parent_type){ |
|
446 | + if($disabled_parent_type != $this->parent_type){ |
|
447 | + unset($parent_types[$disabled_parent_type]); |
|
448 | + } |
|
449 | + } |
|
450 | + |
|
451 | + $this->parent_type_options = get_select_options_with_id($parent_types, $this->parent_type); |
|
452 | + if (empty($this->reminder_time)) { |
|
453 | + $this->reminder_time = -1; |
|
454 | + } |
|
455 | + |
|
456 | + if ( empty($this->id) ) { |
|
457 | + $reminder_t = $GLOBALS['current_user']->getPreference('reminder_time'); |
|
458 | + if ( isset($reminder_t) ) |
|
459 | + $this->reminder_time = $reminder_t; |
|
460 | + } |
|
461 | + $this->reminder_checked = $this->reminder_time == -1 ? false : true; |
|
462 | + |
|
463 | + if (empty($this->email_reminder_time)) { |
|
464 | + $this->email_reminder_time = -1; |
|
465 | + } |
|
466 | + if(empty($this->id)){ |
|
467 | + $reminder_t = $GLOBALS['current_user']->getPreference('email_reminder_time'); |
|
468 | + if(isset($reminder_t)) |
|
469 | + $this->email_reminder_time = $reminder_t; |
|
470 | + } |
|
471 | + $this->email_reminder_checked = $this->email_reminder_time == -1 ? false : true; |
|
472 | + |
|
473 | + if (isset ($_REQUEST['parent_type']) && empty($this->parent_type)) { |
|
474 | + $this->parent_type = $_REQUEST['parent_type']; |
|
475 | + } elseif (is_null($this->parent_type)) { |
|
476 | + $this->parent_type = $app_list_strings['record_type_default_key']; |
|
477 | + } |
|
478 | + |
|
479 | + } |
|
480 | + |
|
481 | + function get_list_view_data() { |
|
482 | + $meeting_fields = $this->get_list_view_array(); |
|
483 | + |
|
484 | + global $app_list_strings, $focus, $action, $currentModule; |
|
485 | + if(isset($this->parent_type)) |
|
486 | + $meeting_fields['PARENT_MODULE'] = $this->parent_type; |
|
487 | + if($this->status == "Planned") { |
|
488 | + //cn: added this if() to deal with sequential Closes in Meetings. this is a hack to a hack(formbase.php->handleRedirect) |
|
489 | + if(empty($action)) |
|
490 | + $action = "index"; |
|
491 | 491 | $setCompleteUrl = "<a id='{$this->id}' onclick='SUGAR.util.closeActivityPanel.show(\"{$this->module_dir}\",\"{$this->id}\",\"Held\",\"listview\",\"1\");'>"; |
492 | - if ($this->ACLAccess('edit')) { |
|
492 | + if ($this->ACLAccess('edit')) { |
|
493 | 493 | $meeting_fields['SET_COMPLETE'] = $setCompleteUrl . SugarThemeRegistry::current()->getImage("close_inline"," border='0'",null,null,'.gif',translate('LBL_CLOSEINLINE'))."</a>"; |
494 | 494 | } else { |
495 | 495 | $meeting_fields['SET_COMPLETE'] = ''; |
496 | 496 | } |
497 | - } |
|
498 | - global $timedate; |
|
499 | - $today = $timedate->nowDb(); |
|
500 | - $nextday = $timedate->asDbDate($timedate->getNow()->get("+1 day")); |
|
501 | - $mergeTime = $meeting_fields['DATE_START']; //$timedate->merge_date_time($meeting_fields['DATE_START'], $meeting_fields['TIME_START']); |
|
502 | - $date_db = $timedate->to_db($mergeTime); |
|
503 | - if($date_db < $today ) { |
|
504 | - $meeting_fields['DATE_START']= "<font class='overdueTask'>".$meeting_fields['DATE_START']."</font>"; |
|
505 | - }else if($date_db < $nextday) { |
|
506 | - $meeting_fields['DATE_START'] = "<font class='todaysTask'>".$meeting_fields['DATE_START']."</font>"; |
|
507 | - } else { |
|
508 | - $meeting_fields['DATE_START'] = "<font class='futureTask'>".$meeting_fields['DATE_START']."</font>"; |
|
509 | - } |
|
510 | - $this->fill_in_additional_detail_fields(); |
|
497 | + } |
|
498 | + global $timedate; |
|
499 | + $today = $timedate->nowDb(); |
|
500 | + $nextday = $timedate->asDbDate($timedate->getNow()->get("+1 day")); |
|
501 | + $mergeTime = $meeting_fields['DATE_START']; //$timedate->merge_date_time($meeting_fields['DATE_START'], $meeting_fields['TIME_START']); |
|
502 | + $date_db = $timedate->to_db($mergeTime); |
|
503 | + if($date_db < $today ) { |
|
504 | + $meeting_fields['DATE_START']= "<font class='overdueTask'>".$meeting_fields['DATE_START']."</font>"; |
|
505 | + }else if($date_db < $nextday) { |
|
506 | + $meeting_fields['DATE_START'] = "<font class='todaysTask'>".$meeting_fields['DATE_START']."</font>"; |
|
507 | + } else { |
|
508 | + $meeting_fields['DATE_START'] = "<font class='futureTask'>".$meeting_fields['DATE_START']."</font>"; |
|
509 | + } |
|
510 | + $this->fill_in_additional_detail_fields(); |
|
511 | 511 | |
512 | 512 | // make sure we grab the localized version of the contact name, if a contact is provided |
513 | 513 | if (!empty($this->contact_id)) |
@@ -523,342 +523,342 @@ discard block |
||
523 | 523 | |
524 | 524 | $meeting_fields['CONTACT_ID'] = $this->contact_id; |
525 | 525 | $meeting_fields['CONTACT_NAME'] = $this->contact_name; |
526 | - $meeting_fields['PARENT_NAME'] = $this->parent_name; |
|
526 | + $meeting_fields['PARENT_NAME'] = $this->parent_name; |
|
527 | 527 | $meeting_fields['REMINDER_CHECKED'] = $this->reminder_time==-1 ? false : true; |
528 | 528 | $meeting_fields['EMAIL_REMINDER_CHECKED'] = $this->email_reminder_time==-1 ? false : true; |
529 | 529 | |
530 | 530 | |
531 | - return $meeting_fields; |
|
532 | - } |
|
533 | - |
|
534 | - function set_notification_body($xtpl, &$meeting) { |
|
535 | - global $sugar_config; |
|
536 | - global $app_list_strings; |
|
537 | - global $current_user; |
|
538 | - global $timedate; |
|
539 | - |
|
540 | - |
|
541 | - // cn: bug 9494 - passing a contact breaks this call |
|
542 | - $notifyUser =($meeting->current_notify_user->object_name == 'User') ? $meeting->current_notify_user : $current_user; |
|
543 | - // cn: bug 8078 - fixed call to $timedate |
|
544 | - if(strtolower(get_class($meeting->current_notify_user)) == 'contact') { |
|
545 | - $xtpl->assign("ACCEPT_URL", $sugar_config['site_url']. |
|
546 | - '/index.php?entryPoint=acceptDecline&module=Meetings&contact_id='.$meeting->current_notify_user->id.'&record='.$meeting->id); |
|
547 | - } elseif(strtolower(get_class($meeting->current_notify_user)) == 'lead') { |
|
548 | - $xtpl->assign("ACCEPT_URL", $sugar_config['site_url']. |
|
549 | - '/index.php?entryPoint=acceptDecline&module=Meetings&lead_id='.$meeting->current_notify_user->id.'&record='.$meeting->id); |
|
550 | - } else { |
|
551 | - $xtpl->assign("ACCEPT_URL", $sugar_config['site_url']. |
|
552 | - '/index.php?entryPoint=acceptDecline&module=Meetings&user_id='.$meeting->current_notify_user->id.'&record='.$meeting->id); |
|
553 | - } |
|
554 | - $xtpl->assign("MEETING_TO", $meeting->current_notify_user->new_assigned_user_name); |
|
555 | - $xtpl->assign("MEETING_SUBJECT", trim($meeting->name)); |
|
556 | - $xtpl->assign("MEETING_STATUS",(isset($meeting->status)? $app_list_strings['meeting_status_dom'][$meeting->status]:"")); |
|
557 | - $typekey = strtolower($meeting->type); |
|
558 | - if(isset($meeting->type)) { |
|
559 | - if(!empty($app_list_strings['eapm_list'][$typekey])) { |
|
560 | - $typestring = $app_list_strings['eapm_list'][$typekey]; |
|
561 | - } else { |
|
562 | - $typestring = $app_list_strings['meeting_type_dom'][$meeting->type]; |
|
563 | - } |
|
564 | - } |
|
565 | - $xtpl->assign("MEETING_TYPE", isset($meeting->type)? $typestring:""); |
|
566 | - $startdate = $timedate->fromDb($meeting->date_start); |
|
567 | - $xtpl->assign("MEETING_STARTDATE", $timedate->asUser($startdate, $notifyUser)." ".TimeDate::userTimezoneSuffix($startdate, $notifyUser)); |
|
568 | - $enddate = $timedate->fromDb($meeting->date_end); |
|
569 | - $xtpl->assign("MEETING_ENDDATE", $timedate->asUser($enddate, $notifyUser)." ".TimeDate::userTimezoneSuffix($enddate, $notifyUser)); |
|
570 | - $xtpl->assign("MEETING_HOURS", $meeting->duration_hours); |
|
571 | - $xtpl->assign("MEETING_MINUTES", $meeting->duration_minutes); |
|
572 | - $xtpl->assign("MEETING_DESCRIPTION", $meeting->description); |
|
531 | + return $meeting_fields; |
|
532 | + } |
|
533 | + |
|
534 | + function set_notification_body($xtpl, &$meeting) { |
|
535 | + global $sugar_config; |
|
536 | + global $app_list_strings; |
|
537 | + global $current_user; |
|
538 | + global $timedate; |
|
539 | + |
|
540 | + |
|
541 | + // cn: bug 9494 - passing a contact breaks this call |
|
542 | + $notifyUser =($meeting->current_notify_user->object_name == 'User') ? $meeting->current_notify_user : $current_user; |
|
543 | + // cn: bug 8078 - fixed call to $timedate |
|
544 | + if(strtolower(get_class($meeting->current_notify_user)) == 'contact') { |
|
545 | + $xtpl->assign("ACCEPT_URL", $sugar_config['site_url']. |
|
546 | + '/index.php?entryPoint=acceptDecline&module=Meetings&contact_id='.$meeting->current_notify_user->id.'&record='.$meeting->id); |
|
547 | + } elseif(strtolower(get_class($meeting->current_notify_user)) == 'lead') { |
|
548 | + $xtpl->assign("ACCEPT_URL", $sugar_config['site_url']. |
|
549 | + '/index.php?entryPoint=acceptDecline&module=Meetings&lead_id='.$meeting->current_notify_user->id.'&record='.$meeting->id); |
|
550 | + } else { |
|
551 | + $xtpl->assign("ACCEPT_URL", $sugar_config['site_url']. |
|
552 | + '/index.php?entryPoint=acceptDecline&module=Meetings&user_id='.$meeting->current_notify_user->id.'&record='.$meeting->id); |
|
553 | + } |
|
554 | + $xtpl->assign("MEETING_TO", $meeting->current_notify_user->new_assigned_user_name); |
|
555 | + $xtpl->assign("MEETING_SUBJECT", trim($meeting->name)); |
|
556 | + $xtpl->assign("MEETING_STATUS",(isset($meeting->status)? $app_list_strings['meeting_status_dom'][$meeting->status]:"")); |
|
557 | + $typekey = strtolower($meeting->type); |
|
558 | + if(isset($meeting->type)) { |
|
559 | + if(!empty($app_list_strings['eapm_list'][$typekey])) { |
|
560 | + $typestring = $app_list_strings['eapm_list'][$typekey]; |
|
561 | + } else { |
|
562 | + $typestring = $app_list_strings['meeting_type_dom'][$meeting->type]; |
|
563 | + } |
|
564 | + } |
|
565 | + $xtpl->assign("MEETING_TYPE", isset($meeting->type)? $typestring:""); |
|
566 | + $startdate = $timedate->fromDb($meeting->date_start); |
|
567 | + $xtpl->assign("MEETING_STARTDATE", $timedate->asUser($startdate, $notifyUser)." ".TimeDate::userTimezoneSuffix($startdate, $notifyUser)); |
|
568 | + $enddate = $timedate->fromDb($meeting->date_end); |
|
569 | + $xtpl->assign("MEETING_ENDDATE", $timedate->asUser($enddate, $notifyUser)." ".TimeDate::userTimezoneSuffix($enddate, $notifyUser)); |
|
570 | + $xtpl->assign("MEETING_HOURS", $meeting->duration_hours); |
|
571 | + $xtpl->assign("MEETING_MINUTES", $meeting->duration_minutes); |
|
572 | + $xtpl->assign("MEETING_DESCRIPTION", $meeting->description); |
|
573 | 573 | if ( !empty($meeting->join_url) ) { |
574 | 574 | $xtpl->assign('MEETING_URL', $meeting->join_url); |
575 | 575 | $xtpl->parse('Meeting.Meeting_External_API'); |
576 | 576 | } |
577 | 577 | |
578 | - return $xtpl; |
|
579 | - } |
|
578 | + return $xtpl; |
|
579 | + } |
|
580 | 580 | |
581 | - /** |
|
582 | - * Redefine method to attach ics file to notification email |
|
583 | - */ |
|
584 | - public function create_notification_email($notify_user){ |
|
581 | + /** |
|
582 | + * Redefine method to attach ics file to notification email |
|
583 | + */ |
|
584 | + public function create_notification_email($notify_user){ |
|
585 | 585 | // reset acceptance status for non organizer if date is changed |
586 | 586 | if (($notify_user->id != $GLOBALS['current_user']->id) && $this->date_changed) { |
587 | 587 | $this->set_accept_status($notify_user, 'none'); |
588 | 588 | } |
589 | 589 | |
590 | - $notify_mail = parent::create_notification_email($notify_user); |
|
590 | + $notify_mail = parent::create_notification_email($notify_user); |
|
591 | 591 | |
592 | - $path = SugarConfig::getInstance()->get('upload_dir','upload/') . $this->id; |
|
592 | + $path = SugarConfig::getInstance()->get('upload_dir','upload/') . $this->id; |
|
593 | 593 | |
594 | - require_once("modules/vCals/vCal.php"); |
|
595 | - $content = vCal::get_ical_event($this, $GLOBALS['current_user']); |
|
594 | + require_once("modules/vCals/vCal.php"); |
|
595 | + $content = vCal::get_ical_event($this, $GLOBALS['current_user']); |
|
596 | 596 | |
597 | - if(file_put_contents($path,$content)){ |
|
598 | - $notify_mail->AddAttachment($path, 'meeting.ics', 'base64', 'text/calendar'); |
|
599 | - } |
|
600 | - return $notify_mail; |
|
601 | - } |
|
597 | + if(file_put_contents($path,$content)){ |
|
598 | + $notify_mail->AddAttachment($path, 'meeting.ics', 'base64', 'text/calendar'); |
|
599 | + } |
|
600 | + return $notify_mail; |
|
601 | + } |
|
602 | 602 | |
603 | - /** |
|
604 | - * Redefine method to remove ics after email is sent |
|
605 | - */ |
|
606 | - public function send_assignment_notifications($notify_user, $admin){ |
|
607 | - parent::send_assignment_notifications($notify_user, $admin); |
|
603 | + /** |
|
604 | + * Redefine method to remove ics after email is sent |
|
605 | + */ |
|
606 | + public function send_assignment_notifications($notify_user, $admin){ |
|
607 | + parent::send_assignment_notifications($notify_user, $admin); |
|
608 | 608 | |
609 | - $path = SugarConfig::getInstance()->get('upload_dir','upload/') . $this->id; |
|
610 | - unlink($path); |
|
611 | - } |
|
612 | - |
|
613 | - function get_meeting_users() { |
|
614 | - $template = new User(); |
|
615 | - // First, get the list of IDs. |
|
616 | - $query = "SELECT meetings_users.required, meetings_users.accept_status, meetings_users.user_id from meetings_users where meetings_users.meeting_id='$this->id' AND meetings_users.deleted=0"; |
|
617 | - $GLOBALS['log']->debug("Finding linked records $this->object_name: ".$query); |
|
618 | - $result = $this->db->query($query, true); |
|
619 | - $list = Array(); |
|
620 | - |
|
621 | - while($row = $this->db->fetchByAssoc($result)) { |
|
622 | - $template = new User(); // PHP 5 will retrieve by reference, always over-writing the "old" one |
|
623 | - $record = $template->retrieve($row['user_id']); |
|
624 | - $template->required = $row['required']; |
|
625 | - $template->accept_status = $row['accept_status']; |
|
626 | - |
|
627 | - if($record != null) { |
|
628 | - // this copies the object into the array |
|
629 | - $list[] = $template; |
|
630 | - } |
|
631 | - } |
|
632 | - return $list; |
|
633 | - } |
|
634 | - |
|
635 | - function get_invite_meetings(&$user) { |
|
636 | - $template = $this; |
|
637 | - // First, get the list of IDs. |
|
638 | - $GLOBALS['log']->debug("Finding linked records $this->object_name: ".$query); |
|
639 | - $query = "SELECT meetings_users.required, meetings_users.accept_status, meetings_users.meeting_id from meetings_users where meetings_users.user_id='$user->id' AND( meetings_users.accept_status IS NULL OR meetings_users.accept_status='none') AND meetings_users.deleted=0"; |
|
640 | - $result = $this->db->query($query, true); |
|
641 | - $list = Array(); |
|
642 | - |
|
643 | - while($row = $this->db->fetchByAssoc($result)) { |
|
644 | - $record = $template->retrieve($row['meeting_id']); |
|
645 | - $template->required = $row['required']; |
|
646 | - $template->accept_status = $row['accept_status']; |
|
647 | - |
|
648 | - |
|
649 | - if($record != null) |
|
650 | - { |
|
651 | - // this copies the object into the array |
|
652 | - $list[] = $template; |
|
653 | - } |
|
654 | - } |
|
655 | - return $list; |
|
656 | - } |
|
657 | - |
|
658 | - |
|
659 | - function set_accept_status(&$user,$status) |
|
660 | - { |
|
661 | - if($user->object_name == 'User') |
|
662 | - { |
|
663 | - $relate_values = array('user_id'=>$user->id,'meeting_id'=>$this->id); |
|
664 | - $data_values = array('accept_status'=>$status); |
|
665 | - $this->set_relationship($this->rel_users_table, $relate_values, true, true,$data_values); |
|
666 | - global $current_user; |
|
667 | - |
|
668 | - if($this->update_vcal) |
|
669 | - { |
|
670 | - vCal::cache_sugar_vcal($user); |
|
671 | - } |
|
672 | - } |
|
673 | - else if($user->object_name == 'Contact') |
|
674 | - { |
|
675 | - $relate_values = array('contact_id'=>$user->id,'meeting_id'=>$this->id); |
|
676 | - $data_values = array('accept_status'=>$status); |
|
677 | - $this->set_relationship($this->rel_contacts_table, $relate_values, true, true,$data_values); |
|
678 | - } |
|
609 | + $path = SugarConfig::getInstance()->get('upload_dir','upload/') . $this->id; |
|
610 | + unlink($path); |
|
611 | + } |
|
612 | + |
|
613 | + function get_meeting_users() { |
|
614 | + $template = new User(); |
|
615 | + // First, get the list of IDs. |
|
616 | + $query = "SELECT meetings_users.required, meetings_users.accept_status, meetings_users.user_id from meetings_users where meetings_users.meeting_id='$this->id' AND meetings_users.deleted=0"; |
|
617 | + $GLOBALS['log']->debug("Finding linked records $this->object_name: ".$query); |
|
618 | + $result = $this->db->query($query, true); |
|
619 | + $list = Array(); |
|
620 | + |
|
621 | + while($row = $this->db->fetchByAssoc($result)) { |
|
622 | + $template = new User(); // PHP 5 will retrieve by reference, always over-writing the "old" one |
|
623 | + $record = $template->retrieve($row['user_id']); |
|
624 | + $template->required = $row['required']; |
|
625 | + $template->accept_status = $row['accept_status']; |
|
626 | + |
|
627 | + if($record != null) { |
|
628 | + // this copies the object into the array |
|
629 | + $list[] = $template; |
|
630 | + } |
|
631 | + } |
|
632 | + return $list; |
|
633 | + } |
|
634 | + |
|
635 | + function get_invite_meetings(&$user) { |
|
636 | + $template = $this; |
|
637 | + // First, get the list of IDs. |
|
638 | + $GLOBALS['log']->debug("Finding linked records $this->object_name: ".$query); |
|
639 | + $query = "SELECT meetings_users.required, meetings_users.accept_status, meetings_users.meeting_id from meetings_users where meetings_users.user_id='$user->id' AND( meetings_users.accept_status IS NULL OR meetings_users.accept_status='none') AND meetings_users.deleted=0"; |
|
640 | + $result = $this->db->query($query, true); |
|
641 | + $list = Array(); |
|
642 | + |
|
643 | + while($row = $this->db->fetchByAssoc($result)) { |
|
644 | + $record = $template->retrieve($row['meeting_id']); |
|
645 | + $template->required = $row['required']; |
|
646 | + $template->accept_status = $row['accept_status']; |
|
647 | + |
|
648 | + |
|
649 | + if($record != null) |
|
650 | + { |
|
651 | + // this copies the object into the array |
|
652 | + $list[] = $template; |
|
653 | + } |
|
654 | + } |
|
655 | + return $list; |
|
656 | + } |
|
657 | + |
|
658 | + |
|
659 | + function set_accept_status(&$user,$status) |
|
660 | + { |
|
661 | + if($user->object_name == 'User') |
|
662 | + { |
|
663 | + $relate_values = array('user_id'=>$user->id,'meeting_id'=>$this->id); |
|
664 | + $data_values = array('accept_status'=>$status); |
|
665 | + $this->set_relationship($this->rel_users_table, $relate_values, true, true,$data_values); |
|
666 | + global $current_user; |
|
667 | + |
|
668 | + if($this->update_vcal) |
|
669 | + { |
|
670 | + vCal::cache_sugar_vcal($user); |
|
671 | + } |
|
672 | + } |
|
673 | + else if($user->object_name == 'Contact') |
|
674 | + { |
|
675 | + $relate_values = array('contact_id'=>$user->id,'meeting_id'=>$this->id); |
|
676 | + $data_values = array('accept_status'=>$status); |
|
677 | + $this->set_relationship($this->rel_contacts_table, $relate_values, true, true,$data_values); |
|
678 | + } |
|
679 | 679 | else if($user->object_name == 'Lead') |
680 | - { |
|
681 | - $relate_values = array('lead_id'=>$user->id,'meeting_id'=>$this->id); |
|
682 | - $data_values = array('accept_status'=>$status); |
|
683 | - $this->set_relationship($this->rel_leads_table, $relate_values, true, true,$data_values); |
|
684 | - } |
|
685 | - } |
|
680 | + { |
|
681 | + $relate_values = array('lead_id'=>$user->id,'meeting_id'=>$this->id); |
|
682 | + $data_values = array('accept_status'=>$status); |
|
683 | + $this->set_relationship($this->rel_leads_table, $relate_values, true, true,$data_values); |
|
684 | + } |
|
685 | + } |
|
686 | 686 | |
687 | 687 | |
688 | - function get_notification_recipients() { |
|
689 | - if($this->special_notification) { |
|
690 | - return parent::get_notification_recipients(); |
|
691 | - } |
|
688 | + function get_notification_recipients() { |
|
689 | + if($this->special_notification) { |
|
690 | + return parent::get_notification_recipients(); |
|
691 | + } |
|
692 | 692 | |
693 | - $list = array(); |
|
694 | - if(!is_array($this->contacts_arr)) { |
|
695 | - $this->contacts_arr = array(); |
|
696 | - } |
|
693 | + $list = array(); |
|
694 | + if(!is_array($this->contacts_arr)) { |
|
695 | + $this->contacts_arr = array(); |
|
696 | + } |
|
697 | 697 | |
698 | - if(!is_array($this->users_arr)) { |
|
699 | - $this->users_arr = array(); |
|
700 | - } |
|
698 | + if(!is_array($this->users_arr)) { |
|
699 | + $this->users_arr = array(); |
|
700 | + } |
|
701 | 701 | |
702 | 702 | if(!is_array($this->leads_arr)) { |
703 | - $this->leads_arr = array(); |
|
704 | - } |
|
705 | - |
|
706 | - foreach($this->users_arr as $user_id) { |
|
707 | - $notify_user = new User(); |
|
708 | - $notify_user->retrieve($user_id); |
|
709 | - $notify_user->new_assigned_user_name = $notify_user->full_name; |
|
710 | - $GLOBALS['log']->info("Notifications: recipient is $notify_user->new_assigned_user_name"); |
|
711 | - $list[$notify_user->id] = $notify_user; |
|
712 | - } |
|
713 | - |
|
714 | - foreach($this->contacts_arr as $contact_id) { |
|
715 | - $notify_user = new Contact(); |
|
716 | - $notify_user->retrieve($contact_id); |
|
717 | - $notify_user->new_assigned_user_name = $notify_user->full_name; |
|
718 | - $GLOBALS['log']->info("Notifications: recipient is $notify_user->new_assigned_user_name"); |
|
719 | - $list[$notify_user->id] = $notify_user; |
|
720 | - } |
|
703 | + $this->leads_arr = array(); |
|
704 | + } |
|
705 | + |
|
706 | + foreach($this->users_arr as $user_id) { |
|
707 | + $notify_user = new User(); |
|
708 | + $notify_user->retrieve($user_id); |
|
709 | + $notify_user->new_assigned_user_name = $notify_user->full_name; |
|
710 | + $GLOBALS['log']->info("Notifications: recipient is $notify_user->new_assigned_user_name"); |
|
711 | + $list[$notify_user->id] = $notify_user; |
|
712 | + } |
|
713 | + |
|
714 | + foreach($this->contacts_arr as $contact_id) { |
|
715 | + $notify_user = new Contact(); |
|
716 | + $notify_user->retrieve($contact_id); |
|
717 | + $notify_user->new_assigned_user_name = $notify_user->full_name; |
|
718 | + $GLOBALS['log']->info("Notifications: recipient is $notify_user->new_assigned_user_name"); |
|
719 | + $list[$notify_user->id] = $notify_user; |
|
720 | + } |
|
721 | 721 | |
722 | 722 | foreach($this->leads_arr as $lead_id) { |
723 | - $notify_user = new Lead(); |
|
724 | - $notify_user->retrieve($lead_id); |
|
725 | - $notify_user->new_assigned_user_name = $notify_user->full_name; |
|
726 | - $GLOBALS['log']->info("Notifications: recipient is $notify_user->new_assigned_user_name"); |
|
727 | - $list[$notify_user->id] = $notify_user; |
|
728 | - } |
|
729 | - |
|
730 | - global $sugar_config; |
|
731 | - if(isset($sugar_config['disable_notify_current_user']) && $sugar_config['disable_notify_current_user']) { |
|
732 | - global $current_user; |
|
733 | - if(isset($list[$current_user->id])) |
|
734 | - unset($list[$current_user->id]); |
|
735 | - } |
|
736 | - return $list; |
|
737 | - } |
|
738 | - |
|
739 | - |
|
740 | - function bean_implements($interface) { |
|
741 | - switch($interface) { |
|
742 | - case 'ACL':return true; |
|
743 | - } |
|
744 | - return false; |
|
745 | - } |
|
746 | - |
|
747 | - function listviewACLHelper() { |
|
748 | - $array_assign = parent::listviewACLHelper(); |
|
749 | - $is_owner = false; |
|
750 | - $in_group = false; //SECURITY GROUPS |
|
751 | - if(!empty($this->parent_name)) { |
|
752 | - |
|
753 | - if(!empty($this->parent_name_owner)) { |
|
754 | - global $current_user; |
|
755 | - $is_owner = $current_user->id == $this->parent_name_owner; |
|
756 | - } |
|
757 | - /* BEGIN - SECURITY GROUPS */ |
|
758 | - //parent_name_owner not being set for whatever reason so we need to figure this out |
|
759 | - else if(!empty($this->parent_type) && !empty($this->parent_id)) { |
|
760 | - global $current_user; |
|
723 | + $notify_user = new Lead(); |
|
724 | + $notify_user->retrieve($lead_id); |
|
725 | + $notify_user->new_assigned_user_name = $notify_user->full_name; |
|
726 | + $GLOBALS['log']->info("Notifications: recipient is $notify_user->new_assigned_user_name"); |
|
727 | + $list[$notify_user->id] = $notify_user; |
|
728 | + } |
|
729 | + |
|
730 | + global $sugar_config; |
|
731 | + if(isset($sugar_config['disable_notify_current_user']) && $sugar_config['disable_notify_current_user']) { |
|
732 | + global $current_user; |
|
733 | + if(isset($list[$current_user->id])) |
|
734 | + unset($list[$current_user->id]); |
|
735 | + } |
|
736 | + return $list; |
|
737 | + } |
|
738 | + |
|
739 | + |
|
740 | + function bean_implements($interface) { |
|
741 | + switch($interface) { |
|
742 | + case 'ACL':return true; |
|
743 | + } |
|
744 | + return false; |
|
745 | + } |
|
746 | + |
|
747 | + function listviewACLHelper() { |
|
748 | + $array_assign = parent::listviewACLHelper(); |
|
749 | + $is_owner = false; |
|
750 | + $in_group = false; //SECURITY GROUPS |
|
751 | + if(!empty($this->parent_name)) { |
|
752 | + |
|
753 | + if(!empty($this->parent_name_owner)) { |
|
754 | + global $current_user; |
|
755 | + $is_owner = $current_user->id == $this->parent_name_owner; |
|
756 | + } |
|
757 | + /* BEGIN - SECURITY GROUPS */ |
|
758 | + //parent_name_owner not being set for whatever reason so we need to figure this out |
|
759 | + else if(!empty($this->parent_type) && !empty($this->parent_id)) { |
|
760 | + global $current_user; |
|
761 | 761 | $parent_bean = BeanFactory::getBean($this->parent_type,$this->parent_id); |
762 | 762 | if($parent_bean !== false) { |
763 | - $is_owner = $current_user->id == $parent_bean->assigned_user_id; |
|
763 | + $is_owner = $current_user->id == $parent_bean->assigned_user_id; |
|
764 | 764 | } |
765 | - } |
|
766 | - require_once("modules/SecurityGroups/SecurityGroup.php"); |
|
767 | - $in_group = SecurityGroup::groupHasAccess($this->parent_type, $this->parent_id, 'view'); |
|
768 | - /* END - SECURITY GROUPS */ |
|
769 | - } |
|
770 | - |
|
771 | - /* BEGIN - SECURITY GROUPS */ |
|
772 | - /** |
|
765 | + } |
|
766 | + require_once("modules/SecurityGroups/SecurityGroup.php"); |
|
767 | + $in_group = SecurityGroup::groupHasAccess($this->parent_type, $this->parent_id, 'view'); |
|
768 | + /* END - SECURITY GROUPS */ |
|
769 | + } |
|
770 | + |
|
771 | + /* BEGIN - SECURITY GROUPS */ |
|
772 | + /** |
|
773 | 773 | if(!ACLController::moduleSupportsACL($this->parent_type) || ACLController::checkAccess($this->parent_type, 'view', $is_owner)) { |
774 | - */ |
|
775 | - if(!ACLController::moduleSupportsACL($this->parent_type) || ACLController::checkAccess($this->parent_type, 'view', $is_owner, 'module', $in_group)){ |
|
774 | + */ |
|
775 | + if(!ACLController::moduleSupportsACL($this->parent_type) || ACLController::checkAccess($this->parent_type, 'view', $is_owner, 'module', $in_group)){ |
|
776 | 776 | /* END - SECURITY GROUPS */ |
777 | - $array_assign['PARENT'] = 'a'; |
|
778 | - } else { |
|
779 | - $array_assign['PARENT'] = 'span'; |
|
780 | - } |
|
781 | - |
|
782 | - $is_owner = false; |
|
783 | - $in_group = false; //SECURITY GROUPS |
|
784 | - |
|
785 | - if(!empty($this->contact_name)) { |
|
786 | - if(!empty($this->contact_name_owner)) { |
|
787 | - global $current_user; |
|
788 | - $is_owner = $current_user->id == $this->contact_name_owner; |
|
789 | - } |
|
790 | - /* BEGIN - SECURITY GROUPS */ |
|
791 | - //contact_name_owner not being set for whatever reason so we need to figure this out |
|
792 | - else { |
|
793 | - global $current_user; |
|
777 | + $array_assign['PARENT'] = 'a'; |
|
778 | + } else { |
|
779 | + $array_assign['PARENT'] = 'span'; |
|
780 | + } |
|
781 | + |
|
782 | + $is_owner = false; |
|
783 | + $in_group = false; //SECURITY GROUPS |
|
784 | + |
|
785 | + if(!empty($this->contact_name)) { |
|
786 | + if(!empty($this->contact_name_owner)) { |
|
787 | + global $current_user; |
|
788 | + $is_owner = $current_user->id == $this->contact_name_owner; |
|
789 | + } |
|
790 | + /* BEGIN - SECURITY GROUPS */ |
|
791 | + //contact_name_owner not being set for whatever reason so we need to figure this out |
|
792 | + else { |
|
793 | + global $current_user; |
|
794 | 794 | $parent_bean = BeanFactory::getBean('Contacts',$this->contact_id); |
795 | 795 | if($parent_bean !== false) { |
796 | - $is_owner = $current_user->id == $parent_bean->assigned_user_id; |
|
796 | + $is_owner = $current_user->id == $parent_bean->assigned_user_id; |
|
797 | 797 | } |
798 | - } |
|
799 | - require_once("modules/SecurityGroups/SecurityGroup.php"); |
|
800 | - $in_group = SecurityGroup::groupHasAccess('Contacts', $this->contact_id, 'view'); |
|
801 | - /* END - SECURITY GROUPS */ |
|
802 | - } |
|
803 | - |
|
804 | - /* BEGIN - SECURITY GROUPS */ |
|
805 | - /** |
|
798 | + } |
|
799 | + require_once("modules/SecurityGroups/SecurityGroup.php"); |
|
800 | + $in_group = SecurityGroup::groupHasAccess('Contacts', $this->contact_id, 'view'); |
|
801 | + /* END - SECURITY GROUPS */ |
|
802 | + } |
|
803 | + |
|
804 | + /* BEGIN - SECURITY GROUPS */ |
|
805 | + /** |
|
806 | 806 | if(ACLController::checkAccess('Contacts', 'view', $is_owner)) { |
807 | - */ |
|
808 | - if(ACLController::checkAccess('Contacts', 'view', $is_owner, 'module', $in_group)) { |
|
807 | + */ |
|
808 | + if(ACLController::checkAccess('Contacts', 'view', $is_owner, 'module', $in_group)) { |
|
809 | 809 | /* END - SECURITY GROUPS */ |
810 | - $array_assign['CONTACT'] = 'a'; |
|
811 | - } else { |
|
812 | - $array_assign['CONTACT'] = 'span'; |
|
813 | - } |
|
814 | - return $array_assign; |
|
815 | - } |
|
816 | - |
|
817 | - |
|
818 | - function save_relationship_changes($is_update, $exclude = array()) { |
|
819 | - if(empty($this->in_workflow)) { |
|
820 | - if(empty($this->in_import)){//if a meeting is being imported then contact_id should not be excluded |
|
821 | - //if the global soap_server_object variable is not empty (as in from a soap/OPI call), then process the assigned_user_id relationship, otherwise |
|
822 | - //add assigned_user_id to exclude list and let the logic from MeetingFormBase determine whether assigned user id gets added to the relationship |
|
823 | - if(!empty($GLOBALS['soap_server_object'])){ |
|
824 | - $exclude = array('contact_id', 'user_id'); |
|
825 | - }else{ |
|
826 | - $exclude = array('contact_id', 'user_id','assigned_user_id'); |
|
827 | - } |
|
828 | - } |
|
829 | - else{ |
|
830 | - $exclude = array('user_id'); |
|
831 | - } |
|
832 | - } |
|
833 | - parent::save_relationship_changes($is_update, $exclude); |
|
834 | - } |
|
835 | - |
|
836 | - |
|
837 | - /** |
|
838 | - * @see SugarBean::afterImportSave() |
|
839 | - */ |
|
840 | - public function afterImportSave() |
|
841 | - { |
|
842 | - if ( $this->parent_type == 'Contacts' ) { |
|
843 | - $this->load_relationship('contacts'); |
|
844 | - if ( !$this->contacts->relationship_exists('contacts',array('id'=>$this->parent_id)) ) |
|
845 | - $this->contacts->add($this->parent_id); |
|
846 | - } |
|
847 | - elseif ( $this->parent_type == 'Leads' ) { |
|
848 | - $this->load_relationship('leads'); |
|
849 | - if ( !$this->leads->relationship_exists('leads',array('id'=>$this->parent_id)) ) |
|
850 | - $this->leads->add($this->parent_id); |
|
851 | - } |
|
852 | - |
|
853 | - parent::afterImportSave(); |
|
854 | - } |
|
810 | + $array_assign['CONTACT'] = 'a'; |
|
811 | + } else { |
|
812 | + $array_assign['CONTACT'] = 'span'; |
|
813 | + } |
|
814 | + return $array_assign; |
|
815 | + } |
|
816 | + |
|
817 | + |
|
818 | + function save_relationship_changes($is_update, $exclude = array()) { |
|
819 | + if(empty($this->in_workflow)) { |
|
820 | + if(empty($this->in_import)){//if a meeting is being imported then contact_id should not be excluded |
|
821 | + //if the global soap_server_object variable is not empty (as in from a soap/OPI call), then process the assigned_user_id relationship, otherwise |
|
822 | + //add assigned_user_id to exclude list and let the logic from MeetingFormBase determine whether assigned user id gets added to the relationship |
|
823 | + if(!empty($GLOBALS['soap_server_object'])){ |
|
824 | + $exclude = array('contact_id', 'user_id'); |
|
825 | + }else{ |
|
826 | + $exclude = array('contact_id', 'user_id','assigned_user_id'); |
|
827 | + } |
|
828 | + } |
|
829 | + else{ |
|
830 | + $exclude = array('user_id'); |
|
831 | + } |
|
832 | + } |
|
833 | + parent::save_relationship_changes($is_update, $exclude); |
|
834 | + } |
|
835 | + |
|
836 | + |
|
837 | + /** |
|
838 | + * @see SugarBean::afterImportSave() |
|
839 | + */ |
|
840 | + public function afterImportSave() |
|
841 | + { |
|
842 | + if ( $this->parent_type == 'Contacts' ) { |
|
843 | + $this->load_relationship('contacts'); |
|
844 | + if ( !$this->contacts->relationship_exists('contacts',array('id'=>$this->parent_id)) ) |
|
845 | + $this->contacts->add($this->parent_id); |
|
846 | + } |
|
847 | + elseif ( $this->parent_type == 'Leads' ) { |
|
848 | + $this->load_relationship('leads'); |
|
849 | + if ( !$this->leads->relationship_exists('leads',array('id'=>$this->parent_id)) ) |
|
850 | + $this->leads->add($this->parent_id); |
|
851 | + } |
|
852 | + |
|
853 | + parent::afterImportSave(); |
|
854 | + } |
|
855 | 855 | |
856 | 856 | public function getDefaultStatus() |
857 | 857 | { |
858 | - $def = $this->field_defs['status']; |
|
859 | - if (isset($def['default'])) { |
|
860 | - return $def['default']; |
|
861 | - } else { |
|
858 | + $def = $this->field_defs['status']; |
|
859 | + if (isset($def['default'])) { |
|
860 | + return $def['default']; |
|
861 | + } else { |
|
862 | 862 | $app = return_app_list_strings_language($GLOBALS['current_language']); |
863 | 863 | if (isset($def['options']) && isset($app[$def['options']])) { |
864 | 864 | $keys = array_keys($app[$def['options']]); |
@@ -874,9 +874,9 @@ discard block |
||
874 | 874 | //TODO: do we really need focus, name and view params for this function |
875 | 875 | function getMeetingsExternalApiDropDown($focus = null, $name = null, $value = null, $view = null) |
876 | 876 | { |
877 | - global $dictionary, $app_list_strings; |
|
877 | + global $dictionary, $app_list_strings; |
|
878 | 878 | |
879 | - $cacheKeyName = 'meetings_type_drop_down'; |
|
879 | + $cacheKeyName = 'meetings_type_drop_down'; |
|
880 | 880 | |
881 | 881 | $apiList = sugar_cache_retrieve($cacheKeyName); |
882 | 882 | if ($apiList === null) |
@@ -888,17 +888,17 @@ discard block |
||
888 | 888 | sugar_cache_put($cacheKeyName, $apiList); |
889 | 889 | } |
890 | 890 | |
891 | - if(!empty($value) && empty($apiList[$value])) |
|
892 | - { |
|
893 | - $apiList[$value] = $value; |
|
891 | + if(!empty($value) && empty($apiList[$value])) |
|
892 | + { |
|
893 | + $apiList[$value] = $value; |
|
894 | 894 | } |
895 | - //bug 46294: adding list of options to dropdown list (if it is not the default list) |
|
895 | + //bug 46294: adding list of options to dropdown list (if it is not the default list) |
|
896 | 896 | if ($dictionary['Meeting']['fields']['type']['options'] != "eapm_list") |
897 | 897 | { |
898 | 898 | $apiList = array_merge(getMeetingTypeOptions($dictionary, $app_list_strings), $apiList); |
899 | 899 | } |
900 | 900 | |
901 | - return $apiList; |
|
901 | + return $apiList; |
|
902 | 902 | } |
903 | 903 | |
904 | 904 | /** |
@@ -909,20 +909,20 @@ discard block |
||
909 | 909 | */ |
910 | 910 | function getMeetingTypeOptions($dictionary, $app_list_strings) |
911 | 911 | { |
912 | - $result = array(); |
|
912 | + $result = array(); |
|
913 | 913 | |
914 | 914 | // getting name of meeting type to fill dropdown list by its values |
915 | 915 | if (isset($dictionary['Meeting']['fields']['type']['options'])) |
916 | - { |
|
917 | - $typeName = $dictionary['Meeting']['fields']['type']['options']; |
|
916 | + { |
|
917 | + $typeName = $dictionary['Meeting']['fields']['type']['options']; |
|
918 | 918 | |
919 | 919 | if (!empty($app_list_strings[$typeName])) |
920 | - { |
|
921 | - $typeList = $app_list_strings[$typeName]; |
|
920 | + { |
|
921 | + $typeList = $app_list_strings[$typeName]; |
|
922 | 922 | |
923 | 923 | foreach ($typeList as $key => $value) |
924 | - { |
|
925 | - $result[$value] = $value; |
|
924 | + { |
|
925 | + $result[$value] = $value; |
|
926 | 926 | } |
927 | 927 | } |
928 | 928 | } |
@@ -39,134 +39,134 @@ discard block |
||
39 | 39 | |
40 | 40 | $viewdefs ['Meetings'] = |
41 | 41 | array ( |
42 | - 'EditView' => |
|
43 | - array ( |
|
42 | + 'EditView' => |
|
43 | + array ( |
|
44 | 44 | 'templateMeta' => |
45 | 45 | array ( |
46 | 46 | 'includes' => array( |
47 | 47 | array('file' => 'modules/Reminders/Reminders.js'), |
48 | 48 | ), |
49 | - 'maxColumns' => '2', |
|
50 | - 'form' => |
|
51 | - array ( |
|
49 | + 'maxColumns' => '2', |
|
50 | + 'form' => |
|
51 | + array ( |
|
52 | 52 | 'hidden' => |
53 | 53 | array ( |
54 | - 0 => '<input type="hidden" name="isSaveAndNew" value="false">', |
|
54 | + 0 => '<input type="hidden" name="isSaveAndNew" value="false">', |
|
55 | 55 | ), |
56 | 56 | 'buttons' => |
57 | 57 | array ( |
58 | - 0 => |
|
59 | - array ( |
|
60 | - 'customCode' => '<input title="{$APP.LBL_SAVE_BUTTON_TITLE}" id ="SAVE_HEADER" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}" class="button primary" onclick="SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\'; document.EditView.return_action.value=\'DetailView\'; {if isset($smarty.request.isDuplicate) && $smarty.request.isDuplicate eq "true"}document.EditView.return_id.value=\'\'; {/if} formSubmitCheck();"type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}">', |
|
61 | - ), |
|
62 | - 1 => 'CANCEL', |
|
63 | - 2 => |
|
64 | - array ( |
|
65 | - 'customCode' => '<input title="{$MOD.LBL_SEND_BUTTON_TITLE}" id="save_and_send_invites_header" class="button" onclick="document.EditView.send_invites.value=\'1\';SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\';document.EditView.return_action.value=\'EditView\';document.EditView.return_module.value=\'{$smarty.request.return_module}\'; formSubmitCheck();"type="button" name="button" value="{$MOD.LBL_SEND_BUTTON_LABEL}">', |
|
66 | - ), |
|
67 | - 3 => |
|
68 | - array ( |
|
58 | + 0 => |
|
59 | + array ( |
|
60 | + 'customCode' => '<input title="{$APP.LBL_SAVE_BUTTON_TITLE}" id ="SAVE_HEADER" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}" class="button primary" onclick="SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\'; document.EditView.return_action.value=\'DetailView\'; {if isset($smarty.request.isDuplicate) && $smarty.request.isDuplicate eq "true"}document.EditView.return_id.value=\'\'; {/if} formSubmitCheck();"type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}">', |
|
61 | + ), |
|
62 | + 1 => 'CANCEL', |
|
63 | + 2 => |
|
64 | + array ( |
|
65 | + 'customCode' => '<input title="{$MOD.LBL_SEND_BUTTON_TITLE}" id="save_and_send_invites_header" class="button" onclick="document.EditView.send_invites.value=\'1\';SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\';document.EditView.return_action.value=\'EditView\';document.EditView.return_module.value=\'{$smarty.request.return_module}\'; formSubmitCheck();"type="button" name="button" value="{$MOD.LBL_SEND_BUTTON_LABEL}">', |
|
66 | + ), |
|
67 | + 3 => |
|
68 | + array ( |
|
69 | 69 | 'customCode' => '{if $fields.status.value != "Held"}<input title="{$APP.LBL_CLOSE_AND_CREATE_BUTTON_TITLE}" id="close_and_create_new_header" class="button" onclick="SUGAR.meetings.fill_invitees(); document.EditView.status.value=\'Held\'; document.EditView.action.value=\'Save\'; document.EditView.return_module.value=\'Meetings\'; document.EditView.isDuplicate.value=true; document.EditView.isSaveAndNew.value=true; document.EditView.return_action.value=\'EditView\'; document.EditView.return_id.value=\'{$fields.id.value}\'; formSubmitCheck();"type="button" name="button" value="{$APP.LBL_CLOSE_AND_CREATE_BUTTON_LABEL}">{/if}', |
70 | - ), |
|
70 | + ), |
|
71 | 71 | ), |
72 | 72 | 'headerTpl' => 'modules/Meetings/tpls/header.tpl', |
73 | 73 | |
74 | - 'buttons_footer' => |
|
74 | + 'buttons_footer' => |
|
75 | 75 | array ( |
76 | - 0 => |
|
77 | - array ( |
|
78 | - 'customCode' => '<input title="{$APP.LBL_SAVE_BUTTON_TITLE}" id ="SAVE_FOOTER" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}" class="button primary" onclick="SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\'; document.EditView.return_action.value=\'DetailView\'; {if isset($smarty.request.isDuplicate) && $smarty.request.isDuplicate eq "true"}document.EditView.return_id.value=\'\'; {/if} formSubmitCheck();"type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}">', |
|
79 | - ), |
|
80 | - 1 => 'CANCEL', |
|
81 | - 2 => |
|
82 | - array ( |
|
83 | - 'customCode' => '<input title="{$MOD.LBL_SEND_BUTTON_TITLE}" id="save_and_send_invites_footer" class="button" onclick="document.EditView.send_invites.value=\'1\';SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\';document.EditView.return_action.value=\'EditView\';document.EditView.return_module.value=\'{$smarty.request.return_module}\'; formSubmitCheck();"type="button" name="button" value="{$MOD.LBL_SEND_BUTTON_LABEL}">', |
|
84 | - ), |
|
85 | - 3 => |
|
86 | - array ( |
|
76 | + 0 => |
|
77 | + array ( |
|
78 | + 'customCode' => '<input title="{$APP.LBL_SAVE_BUTTON_TITLE}" id ="SAVE_FOOTER" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}" class="button primary" onclick="SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\'; document.EditView.return_action.value=\'DetailView\'; {if isset($smarty.request.isDuplicate) && $smarty.request.isDuplicate eq "true"}document.EditView.return_id.value=\'\'; {/if} formSubmitCheck();"type="button" name="button" value="{$APP.LBL_SAVE_BUTTON_LABEL}">', |
|
79 | + ), |
|
80 | + 1 => 'CANCEL', |
|
81 | + 2 => |
|
82 | + array ( |
|
83 | + 'customCode' => '<input title="{$MOD.LBL_SEND_BUTTON_TITLE}" id="save_and_send_invites_footer" class="button" onclick="document.EditView.send_invites.value=\'1\';SUGAR.meetings.fill_invitees();document.EditView.action.value=\'Save\';document.EditView.return_action.value=\'EditView\';document.EditView.return_module.value=\'{$smarty.request.return_module}\'; formSubmitCheck();"type="button" name="button" value="{$MOD.LBL_SEND_BUTTON_LABEL}">', |
|
84 | + ), |
|
85 | + 3 => |
|
86 | + array ( |
|
87 | 87 | 'customCode' => '{if $fields.status.value != "Held"}<input title="{$APP.LBL_CLOSE_AND_CREATE_BUTTON_TITLE}" id="close_and_create_new_footer" class="button" onclick="SUGAR.meetings.fill_invitees(); document.EditView.status.value=\'Held\'; document.EditView.action.value=\'Save\'; document.EditView.return_module.value=\'Meetings\'; document.EditView.isDuplicate.value=true; document.EditView.isSaveAndNew.value=true; document.EditView.return_action.value=\'EditView\'; document.EditView.return_id.value=\'{$fields.id.value}\'; formSubmitCheck();"type="button" name="button" value="{$APP.LBL_CLOSE_AND_CREATE_BUTTON_LABEL}">{/if}', |
88 | - ), |
|
88 | + ), |
|
89 | 89 | ), |
90 | 90 | 'footerTpl' => 'modules/Meetings/tpls/footer.tpl', |
91 | - ), |
|
92 | - 'widths' => |
|
93 | - array ( |
|
91 | + ), |
|
92 | + 'widths' => |
|
93 | + array ( |
|
94 | 94 | 0 => |
95 | 95 | array ( |
96 | - 'label' => '10', |
|
97 | - 'field' => '30', |
|
96 | + 'label' => '10', |
|
97 | + 'field' => '30', |
|
98 | 98 | ), |
99 | 99 | 1 => |
100 | 100 | array ( |
101 | - 'label' => '10', |
|
102 | - 'field' => '30', |
|
101 | + 'label' => '10', |
|
102 | + 'field' => '30', |
|
103 | + ), |
|
103 | 104 | ), |
104 | - ), |
|
105 | - 'javascript' => '<script type="text/javascript">{$JSON_CONFIG_JAVASCRIPT}</script> |
|
105 | + 'javascript' => '<script type="text/javascript">{$JSON_CONFIG_JAVASCRIPT}</script> |
|
106 | 106 | {sugar_getscript file="cache/include/javascript/sugar_grp_jsolait.js"} |
107 | 107 | <script>toggle_portal_flag();function toggle_portal_flag() {ldelim} {$TOGGLE_JS} {rdelim} |
108 | 108 | function formSubmitCheck(){ldelim}if(check_form(\'EditView\')){ldelim}document.EditView.submit();{rdelim}{rdelim}</script>', |
109 | - 'useTabs' => false, |
|
109 | + 'useTabs' => false, |
|
110 | 110 | ), |
111 | 111 | 'panels' => |
112 | 112 | array ( |
113 | - 'lbl_meeting_information' => |
|
114 | - array ( |
|
113 | + 'lbl_meeting_information' => |
|
115 | 114 | array ( |
116 | - array ( |
|
115 | + array ( |
|
116 | + array ( |
|
117 | 117 | 'name' => 'name', |
118 | 118 | |
119 | - ), |
|
120 | - array ( |
|
119 | + ), |
|
120 | + array ( |
|
121 | 121 | 'name' => 'status', |
122 | 122 | 'fields' => |
123 | 123 | array ( |
124 | - array ( |
|
124 | + array ( |
|
125 | 125 | 'name' => 'status', |
126 | - ), |
|
126 | + ), |
|
127 | + ), |
|
127 | 128 | ), |
128 | - ), |
|
129 | - ), |
|
129 | + ), |
|
130 | 130 | |
131 | 131 | |
132 | - array ( |
|
133 | - array ( |
|
132 | + array ( |
|
133 | + array ( |
|
134 | 134 | 'name' => 'date_start', |
135 | 135 | 'type' => 'datetimecombo', |
136 | 136 | 'displayParams' => |
137 | 137 | array ( |
138 | - 'required' => true, |
|
139 | - 'updateCallback' => 'SugarWidgetScheduler.update_time();', |
|
138 | + 'required' => true, |
|
139 | + 'updateCallback' => 'SugarWidgetScheduler.update_time();', |
|
140 | + ), |
|
140 | 141 | ), |
141 | - ), |
|
142 | 142 | |
143 | - array ( |
|
143 | + array ( |
|
144 | 144 | 'name' => 'parent_name', |
145 | 145 | 'label' => 'LBL_LIST_RELATED_TO', |
146 | - ), |
|
146 | + ), |
|
147 | 147 | ), |
148 | 148 | |
149 | 149 | |
150 | - array ( |
|
151 | - array ( |
|
150 | + array ( |
|
151 | + array ( |
|
152 | 152 | 'name' => 'date_end', |
153 | 153 | 'type' => 'datetimecombo', |
154 | 154 | 'displayParams' => |
155 | 155 | array ( |
156 | - 'required' => true, |
|
157 | - 'updateCallback' => 'SugarWidgetScheduler.update_time();', |
|
156 | + 'required' => true, |
|
157 | + 'updateCallback' => 'SugarWidgetScheduler.update_time();', |
|
158 | + ), |
|
158 | 159 | ), |
159 | - ), |
|
160 | 160 | |
161 | - array ( |
|
161 | + array ( |
|
162 | 162 | 'name' => 'location', |
163 | 163 | 'comment' => 'Meeting location', |
164 | 164 | 'label' => 'LBL_LOCATION', |
165 | - ), |
|
165 | + ), |
|
166 | 166 | ), |
167 | 167 | |
168 | 168 | array( |
169 | - array ( |
|
169 | + array ( |
|
170 | 170 | 'name' => 'duration', |
171 | 171 | 'customCode' => ' |
172 | 172 | @@FIELD@@ |
@@ -184,7 +184,7 @@ discard block |
||
184 | 184 | </script> |
185 | 185 | ', |
186 | 186 | 'customCodeReadOnly' => '{$fields.duration_hours.value}{$MOD.LBL_HOURS_ABBREV} {$fields.duration_minutes.value}{$MOD.LBL_MINSS_ABBREV} ', |
187 | - ), |
|
187 | + ), |
|
188 | 188 | ), |
189 | 189 | // array ( |
190 | 190 | // array ( |
@@ -193,31 +193,31 @@ discard block |
||
193 | 193 | // 'label' => 'LBL_REMINDER', |
194 | 194 | // ), |
195 | 195 | // ), |
196 | - array( |
|
197 | - array ( |
|
198 | - 'name' => 'reminders', |
|
199 | - 'customCode' => '{include file="modules/Reminders/tpls/reminders.tpl"}', |
|
200 | - 'label' => 'LBL_REMINDERS', |
|
201 | - ), |
|
202 | - ), |
|
196 | + array( |
|
197 | + array ( |
|
198 | + 'name' => 'reminders', |
|
199 | + 'customCode' => '{include file="modules/Reminders/tpls/reminders.tpl"}', |
|
200 | + 'label' => 'LBL_REMINDERS', |
|
201 | + ), |
|
202 | + ), |
|
203 | 203 | array ( |
204 | - array ( |
|
204 | + array ( |
|
205 | 205 | 'name' => 'description', |
206 | 206 | 'comment' => 'Full text of the note', |
207 | 207 | 'label' => 'LBL_DESCRIPTION', |
208 | - ), |
|
208 | + ), |
|
209 | + ), |
|
209 | 210 | ), |
210 | - ), |
|
211 | - 'LBL_PANEL_ASSIGNMENT' => |
|
212 | - array ( |
|
211 | + 'LBL_PANEL_ASSIGNMENT' => |
|
213 | 212 | array ( |
214 | - array ( |
|
213 | + array ( |
|
214 | + array ( |
|
215 | 215 | 'name' => 'assigned_user_name', |
216 | 216 | 'label' => 'LBL_ASSIGNED_TO_NAME', |
217 | - ), |
|
217 | + ), |
|
218 | 218 | ), |
219 | - ), |
|
219 | + ), |
|
220 | + ), |
|
220 | 221 | ), |
221 | - ), |
|
222 | 222 | ); |
223 | 223 | ?> |
@@ -39,85 +39,85 @@ |
||
39 | 39 | |
40 | 40 | $searchdefs ['Meetings'] = |
41 | 41 | array ( |
42 | - 'layout' => |
|
43 | - array ( |
|
42 | + 'layout' => |
|
43 | + array ( |
|
44 | 44 | 'basic_search' => |
45 | 45 | array ( |
46 | - 'name' => |
|
47 | - array ( |
|
46 | + 'name' => |
|
47 | + array ( |
|
48 | 48 | 'name' => 'name', |
49 | 49 | 'default' => true, |
50 | 50 | 'width' => '10%', |
51 | - ), |
|
52 | - 'current_user_only' => |
|
53 | - array ( |
|
51 | + ), |
|
52 | + 'current_user_only' => |
|
53 | + array ( |
|
54 | 54 | 'name' => 'current_user_only', |
55 | 55 | 'label' => 'LBL_CURRENT_USER_FILTER', |
56 | 56 | 'type' => 'bool', |
57 | 57 | 'default' => true, |
58 | 58 | 'width' => '10%', |
59 | - ), |
|
60 | - array ('name' => 'open_only', 'label' => 'LBL_OPEN_ITEMS', 'type' => 'bool', 'default' => false, 'width' => '10%'), |
|
61 | - array ('name' => 'favorites_only','label' => 'LBL_FAVORITES_FILTER','type' => 'bool',), |
|
59 | + ), |
|
60 | + array ('name' => 'open_only', 'label' => 'LBL_OPEN_ITEMS', 'type' => 'bool', 'default' => false, 'width' => '10%'), |
|
61 | + array ('name' => 'favorites_only','label' => 'LBL_FAVORITES_FILTER','type' => 'bool',), |
|
62 | 62 | ), |
63 | 63 | 'advanced_search' => |
64 | 64 | array ( |
65 | - 'name' => |
|
66 | - array ( |
|
65 | + 'name' => |
|
66 | + array ( |
|
67 | 67 | 'name' => 'name', |
68 | 68 | 'default' => true, |
69 | 69 | 'width' => '10%', |
70 | - ), |
|
71 | - 'parent_name' => |
|
72 | - array ( |
|
70 | + ), |
|
71 | + 'parent_name' => |
|
72 | + array ( |
|
73 | 73 | 'type' => 'parent', |
74 | 74 | 'label' => 'LBL_LIST_RELATED_TO', |
75 | 75 | 'width' => '10%', |
76 | 76 | 'default' => true, |
77 | 77 | 'name' => 'parent_name', |
78 | - ), |
|
79 | - 'current_user_only' => |
|
80 | - array ( |
|
78 | + ), |
|
79 | + 'current_user_only' => |
|
80 | + array ( |
|
81 | 81 | 'name' => 'current_user_only', |
82 | 82 | 'label' => 'LBL_CURRENT_USER_FILTER', |
83 | 83 | 'type' => 'bool', |
84 | 84 | 'default' => true, |
85 | 85 | 'width' => '10%', |
86 | - ), |
|
87 | - 'status' => |
|
88 | - array ( |
|
86 | + ), |
|
87 | + 'status' => |
|
88 | + array ( |
|
89 | 89 | 'name' => 'status', |
90 | 90 | 'default' => true, |
91 | 91 | 'width' => '10%', |
92 | - ), |
|
93 | - 'assigned_user_id' => |
|
94 | - array ( |
|
92 | + ), |
|
93 | + 'assigned_user_id' => |
|
94 | + array ( |
|
95 | 95 | 'name' => 'assigned_user_id', |
96 | 96 | 'type' => 'enum', |
97 | 97 | 'label' => 'LBL_ASSIGNED_TO', |
98 | 98 | 'function' => |
99 | 99 | array ( |
100 | - 'name' => 'get_user_array', |
|
101 | - 'params' => |
|
102 | - array ( |
|
100 | + 'name' => 'get_user_array', |
|
101 | + 'params' => |
|
102 | + array ( |
|
103 | 103 | 0 => false, |
104 | - ), |
|
104 | + ), |
|
105 | 105 | ), |
106 | 106 | 'default' => true, |
107 | 107 | 'width' => '10%', |
108 | - ), |
|
108 | + ), |
|
109 | 109 | |
110 | 110 | ), |
111 | - ), |
|
112 | - 'templateMeta' => |
|
113 | - array ( |
|
111 | + ), |
|
112 | + 'templateMeta' => |
|
113 | + array ( |
|
114 | 114 | 'maxColumns' => '3', |
115 | 115 | 'maxColumnsBasic' => '4', |
116 | 116 | 'widths' => |
117 | 117 | array ( |
118 | - 'label' => '10', |
|
119 | - 'field' => '30', |
|
118 | + 'label' => '10', |
|
119 | + 'field' => '30', |
|
120 | + ), |
|
120 | 121 | ), |
121 | - ), |
|
122 | 122 | ); |
123 | 123 | ?> |