]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/Campaigns/tpls/WizardCampaignTracker.tpl
Release 6.2.0
[Github/sugarcrm.git] / modules / Campaigns / tpls / WizardCampaignTracker.tpl
1 {*
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
5  * 
6  * This program is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  * 
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
16  * details.
17  * 
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  * 
23  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
25  * 
26  * The interactive user interfaces in modified source and object code versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  * 
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the "Powered by
32  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33  * technical reasons, the Appropriate Legal Notices must display the words
34  * "Powered by SugarCRM".
35  ********************************************************************************/
36
37 /*********************************************************************************
38
39  ********************************************************************************/
40 *}
41
42         <input type="hidden" id="existing_tracker_count" name="existing_tracker_count" value="{$TRACKER_COUNT}">                        
43         <input type="hidden" id="added_tracker_count" name="added_tracker_count" value=''>                              
44         <input type="hidden" id="wiz_list_of_existing_trackers" name="wiz_list_of_existing_trackers" value="">                          
45         <input type="hidden" id="wiz_list_of_trackers" name="wiz_list_of_trackers" value="">                            
46         <input type="hidden" id="wiz_remove_tracker_list" name="wiz_remove_tracker_list" value="">                              
47
48
49         <table width="100%" border="0" cellspacing="0" cellpadding="0">
50                 <tr>
51                 <th colspan="4" align="left" ><h4>{$MOD.LBL_WIZ_NEWSLETTER_TITLE_STEP3}</h4></th>
52                 </tr>
53                 <tr><td class="datalabel" colspan="3">{$MOD.LBL_WIZARD_TRACKER_MESSAGE}<br></td><td>&nbsp;</td></tr>
54                 <tr><td class="datalabel" colspan="4">&nbsp;</td></tr>
55         
56         </table>
57         <div id='tracker_input_div'>
58                 <table width="100%" border="0" cellspacing="0" cellpadding="0">
59                 <tr>
60                 <td width="15%" scope="row"><slot>{$MOD.LBL_EDIT_TRACKER_NAME}<span class="required">&nbsp;</span></slot></td>
61                 <td width="25%" ><slot><input id="tracker_name" type="text" size="30" tabindex='1' name="tracker_name" title="{$MOD.LBL_EDIT_TRACKER_NAME}" value="{$TRACKER_NAME}"></slot></td>
62                 <td width="25%" scope="row"><slot><input onclick="toggle_tracker_url(this);" name="is_optout" title="{$MOD.LBL_EDIT_OPT_OUT}" id="is_optout" tabindex='2' class="checkbox" type="checkbox" />&nbsp;{$MOD.LBL_EDIT_OPT_OUT_}</slot></td>
63             <td width="35%" ><slot>&nbsp;</slot></td>   
64                 </tr>
65                 <tr>
66                 <td scope="row"><slot>{$MOD.LBL_EDIT_TRACKER_URL}&nbsp;<span class="required"></span></slot></td>
67                 <td  colspan=3><slot><input type="text" size="80" maxlength='255' tabindex='3' {$TRACKER_URL_DISABLED} name="tracker_url" title="{$MOD.LBL_EDIT_TRACKER_URL}" id="tracker_url" value="http://"></slot> <input type='button' value ='{$MOD.LBL_ADD_TRACKER}' class= 'button' onclick='javascript:add_tracker();'></td>
68                 </tr>
69                 <tr><td colspan='4'>&nbsp;</td></tr>
70                 </table>
71         </div>
72         <table width='100%' border="0" cellspacing="0" cellpadding="0">
73                 <tr><td>{$MOD.LBL_TRACKERS_ADDED}</td></tr>
74                 <tr><td class='list view'>
75                 
76                         <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr >
77                             <td width='15%' scope="col" nowrap>{$MOD.LBL_EDIT_OPT_OUT}</td>
78                                 <td width='40%' scope="col">{$MOD.LBL_EDIT_TRACKER_NAME}</td>
79                             <td width='45%' scope="col" colspan="2">{$MOD.LBL_EDIT_TRACKER_URL}</td>
80                     </tr>
81                         </table>
82                         <div id='added_trackers'>
83                                 {$EXISTING_TRACKERS}
84                         </div>
85         
86         
87                 </td></tr>
88         </table>
89         <p>
90                 <script>
91                 var image_path = '{$IMAGE_PATH}';
92                 {literal}
93                         //this function toggles the tracker values based on whether the opt out check box is selected
94                         function toggle_tracker_url(isoptout) {
95                                 tracker_url = document.getElementById('tracker_url');
96                                 if (isoptout.checked) {
97                                         tracker_url.disabled=true;
98                                         tracker_url.value="index.php?entryPoint=removeme";                                      
99                                 } else {
100                                         tracker_url.disabled=false;                     
101                                 }
102                         }
103                         
104                         //create variables that will be used to monitor the number of tracker url
105                         var trackers_added = 0;
106                         //variable that will be passed back to server to specify list of trackers
107                         var list_of_trackers_array = new Array();
108                         
109                         //this function adds selected tracker to list
110                         function add_tracker(){
111                                 //perform validation
112                                 if(validate_step3()){
113                                 //increment tracker count value
114                                         trackers_added++;
115                                         document.getElementById('added_tracker_count').value = trackers_added ;
116                                         //get the appropriate values from tracker form
117                                         var trkr_name = document.getElementById('tracker_name');
118                                         var trkr_url = document.getElementById('tracker_url');
119                                         var trkr_opt = document.getElementById('is_optout');
120                                         var trkr_opt_checked = '';
121                                         if(trkr_opt.checked){trkr_opt_checked = 'checked';      }
122                         {/literal}                      
123                                         //construct html to display chosen tracker
124                                         var trkr_name_html = "<input id='tracker_name"+trackers_added +"' type='text' size='20' maxlength='255' name='wiz_step3_tracker_name"+trackers_added+"' title='{$MOD.LBL_EDIT_TRACKER_NAME}"+trackers_added+"' value='"+trkr_name.value+"' >";
125                                         var trkr_url_html = "<input type='text' size='60' maxlength='255' name='wiz_step3_tracker_url"+trackers_added+"' title='{$MOD.LBL_EDIT_TRACKER_URL}"+trackers_added+"' id='tracker_url"+trackers_added+"' value='"+trkr_url.value+"' >";
126                                         var trkr_opt_html = "<input name='wiz_step3_is_optout"+trackers_added+"' title='{$MOD.LBL_EDIT_OPT_OUT}"+trackers_added+"' id='is_optout"+trackers_added+"' class='checkbox' type='checkbox' "+trkr_opt_checked+" />";
127                                         //display the html
128                                         var trkr_html = "<div id='trkr_added_"+trackers_added+"'> <table width='100%' border='0' cellspacing='0' cellpadding='0'><tr class='evenListRowS1'><td width='15%'>"+trkr_opt_html+"</td><td width='40%'>"+trkr_name_html+"</td><td width='40%'>"+trkr_url_html+"</td><td><a href='#' onclick=\"javascript:remove_tracker('trkr_added_"+trackers_added+"','"+trackers_added+"'); \" >  <img src='{sugar_getimagepath file='delete_inline.gif'}' alt='rem' align='absmiddle' border='0' height='12' width='12'>{$MOD.LBL_REMOVE}</a></td></tr></table></div>";                                           
129                                         document.getElementById('added_trackers').innerHTML = document.getElementById('added_trackers').innerHTML + trkr_html;
130
131                                         //add values to array in string, seperated by "@@" characters
132                                         list_of_trackers_array[trackers_added] = trkr_name.value+"@@"+trkr_opt.checked+"@@"+trkr_url.value;                                     
133                                         //assign array to hidden input, which will be used by server to process array of trackers
134                                         document.getElementById('wiz_list_of_trackers').value = list_of_trackers_array.toString();                                      
135                                         
136                                         //now lets clear the form to allow input of new tracker 
137                                         trkr_name.value = '';
138                                         trkr_url.disabled = false;
139                                         trkr_url.value = 'http://';                             
140                                         trkr_opt.checked = false;                               
141                                         {literal}
142                                         if(trackers_added ==1){
143                                                 document.getElementById('no_trackers').style.display='none';
144                                         }
145                                 }
146                         }
147                         
148                         //this function will remove the selected tracker from the ui, and from the tracker array
149                         function remove_tracker(div,num){
150                                         //clear UI
151                                         var trkr_div = document.getElementById(div);
152                                         trkr_div.style.display = 'none';
153                                         trkr_div.parentNode.removeChild(trkr_div);
154                                         //clear tracker array from this entry and assign to form input
155                                         list_of_trackers_array[num] = '';                                                                               
156                                         document.getElementById('wiz_list_of_trackers').value = list_of_trackers_array.toString();                                      
157                         }
158
159                         //this function will remove the existing tracker from the ui, and add it's value to an array for removal upon save
160                         function remove_existing_tracker(div,id){
161                                         //clear UI
162                                         var trkr_div = document.getElementById(div);
163                                         trkr_div.style.display = 'none';
164                                         trkr_div.parentNode.removeChild(trkr_div);
165                                         //assign this id to form input for removal
166                                         document.getElementById('wiz_remove_tracker_list').value += ','+id;                                     
167                         }
168                         
169                         /**
170                         *This function will iterate through list of trackers and gather all the values.  It will
171                         *populate these values, seperated by delimiters into hidden inputs for processing
172                         */
173                         function gatherTrackers(){
174                                 //start with the newly added trackers, get count of total added
175                                 count = parseInt(trackers_added);
176                                 final_list_of_trackers_array = new Array();
177                                 //iterate through list of added trackers
178                                 for(i=1;i<=count;i++){
179                                         //make sure all values exist
180                                         if( document.getElementById('tracker_name'+i)  &&  document.getElementById('is_optout'+i)  &&  document.getElementById('tracker_url'+i) ){
181                                                 //make sure the check box value is int (0/1)
182                                                 var opt_val = '0';
183                                                 if(document.getElementById('is_optout'+i).checked){opt_val =1;}
184                                                 //add values for this tracker entry into array of tracker entries
185                                                 final_list_of_trackers_array[i] = document.getElementById('tracker_name'+i).value+"@@"+opt_val+"@@"+document.getElementById('tracker_url'+i).value;
186                                         }
187                                 }
188                                 //assign array of tracker entries to hidden input, which will be used by server to process array of trackers                            
189                                 document.getElementById('wiz_list_of_trackers').value = final_list_of_trackers_array.toString();                                        
190
191                                 //Now lets process existing trackers, get count of existing trackers
192                                 count = parseInt(document.getElementById('existing_tracker_count').value);
193                                 final_list_of_existing_trackers_array = new Array();
194                                 //iterate through list of existing trackers
195                                 for(i=0;i<count;i++){
196                                         //make sure all values exist
197                                         if( document.getElementById('existing_tracker_name'+i)  &&  document.getElementById('existing_is_optout'+i)  &&  document.getElementById('existing_tracker_url'+i) ){
198                                                 //make sure the check box value is int (0/1)
199                                                 var opt_val = '0';
200                                                 if(document.getElementById('existing_is_optout'+i).checked){opt_val =1;}
201                                                 //add values for this tracker entry into array of tracker entries
202                                                 final_list_of_existing_trackers_array[i] = document.getElementById('existing_tracker_id'+i).value+"@@"+document.getElementById('existing_tracker_name'+i).value+"@@"+opt_val+"@@"+document.getElementById('existing_tracker_url'+i).value;
203                                         }
204                                 }
205                                 //assign array of tracker entries to hidden input, which will be used by server to process array of trackers                            
206                                 document.getElementById('wiz_list_of_existing_trackers').value = final_list_of_existing_trackers_array.toString();                                      
207
208
209                         }
210
211
212            /*
213              * this is the custom validation script that will validate the fields on step3 of wizard
214              * this is called directly from the add tracker button
215              */
216             
217             function validate_step3(){
218                 
219                 requiredTxt = SUGAR.language.get('app_strings', 'ERR_MISSING_REQUIRED_FIELDS');
220                 var stepname = 'wiz_step3_';
221                 var has_error = 0;
222                 var fields = new Array();
223                 fields[0] = 'tracker_name'; 
224                 fields[1] = 'tracker_url';
225                 //loop through and check for empty strings ('  ')
226                 var field_value = ''; 
227
228                 if( 
229                         (trim(document.getElementById(fields[0]).value) !='') 
230                         ||  ((trim(document.getElementById(fields[1]).value) !='') 
231                                 &&  (trim(document.getElementById(fields[1]).value) !='http://'))
232                 ){
233                     for (i=0; i < fields.length; i++){
234                         field_value = trim(document.getElementById(fields[i]).value);
235                         if(field_value.length<1 || field_value == 'http://'){
236                           add_error_style('wizform', fields[i], requiredTxt +' ' +document.getElementById(fields[i]).title );
237                           has_error = 1;
238                         }
239                     }
240                 }else{
241                     //no values have been entered, return false without error
242                     return false;
243                 }
244                 //error has been thrown, return false
245                 if(has_error == 1){
246                     return false;
247                 }
248         
249                 //add fields to validation and call generic validation script
250                 if(validate['wizform']!='undefined'){delete validate['wizform']};
251                 addToValidate('wizform', 'tracker_name', 'alphanumeric', false,  document.getElementById('tracker_name').title);
252                 addToValidate('wizform', 'tracker_url', 'alphanumeric', false,  document.getElementById('tracker_url').title);
253                 return check_form('wizform');
254         
255             } 
256                         </script>
257                         {/literal}