@@ -125,6 +125,6 @@ |
||
125 | 125 | include('metadata/securitygroups_usersMetaData.php'); |
126 | 126 | |
127 | 127 | if(file_exists('custom/application/Ext/TableDictionary/tabledictionary.ext.php')){ |
128 | - include('custom/application/Ext/TableDictionary/tabledictionary.ext.php'); |
|
128 | + include('custom/application/Ext/TableDictionary/tabledictionary.ext.php'); |
|
129 | 129 | } |
130 | 130 | ?> |
@@ -1,49 +1,49 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * Advanced OpenReports, SugarCRM Reporting. |
|
4 | - * @package Advanced OpenReports for SugarCRM |
|
5 | - * @copyright SalesAgility Ltd http://www.salesagility.com |
|
6 | - * |
|
7 | - * This program is free software; you can redistribute it and/or modify |
|
8 | - * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by |
|
9 | - * the Free Software Foundation; either version 3 of the License, or |
|
10 | - * (at your option) any later version. |
|
11 | - * |
|
12 | - * This program is distributed in the hope that it will be useful, |
|
13 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 | - * GNU General Public License for more details. |
|
16 | - * |
|
17 | - * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|
18 | - * along with this program; if not, see http://www.gnu.org/licenses |
|
19 | - * or write to the Free Software Foundation,Inc., 51 Franklin Street, |
|
20 | - * Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | - * |
|
22 | - * @author SalesAgility <[email protected]> |
|
23 | - */ |
|
3 | + * Advanced OpenReports, SugarCRM Reporting. |
|
4 | + * @package Advanced OpenReports for SugarCRM |
|
5 | + * @copyright SalesAgility Ltd http://www.salesagility.com |
|
6 | + * |
|
7 | + * This program is free software; you can redistribute it and/or modify |
|
8 | + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by |
|
9 | + * the Free Software Foundation; either version 3 of the License, or |
|
10 | + * (at your option) any later version. |
|
11 | + * |
|
12 | + * This program is distributed in the hope that it will be useful, |
|
13 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 | + * GNU General Public License for more details. |
|
16 | + * |
|
17 | + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|
18 | + * along with this program; if not, see http://www.gnu.org/licenses |
|
19 | + * or write to the Free Software Foundation,Inc., 51 Franklin Street, |
|
20 | + * Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | + * |
|
22 | + * @author SalesAgility <[email protected]> |
|
23 | + */ |
|
24 | 24 | |
25 | 25 | class AOR_Chart extends Basic { |
26 | 26 | |
27 | 27 | var $colours = "['#1f78b4','#a6cee3','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#ffff99','#b15928']"; |
28 | - var $new_schema = true; |
|
29 | - var $module_dir = 'AOR_Charts'; |
|
30 | - var $object_name = 'AOR_Chart'; |
|
31 | - var $table_name = 'aor_charts'; |
|
32 | - var $importable = true; |
|
33 | - var $disable_row_level_security = true ; |
|
28 | + var $new_schema = true; |
|
29 | + var $module_dir = 'AOR_Charts'; |
|
30 | + var $object_name = 'AOR_Chart'; |
|
31 | + var $table_name = 'aor_charts'; |
|
32 | + var $importable = true; |
|
33 | + var $disable_row_level_security = true ; |
|
34 | 34 | |
35 | - var $id; |
|
36 | - var $name; |
|
37 | - var $date_entered; |
|
38 | - var $date_modified; |
|
39 | - var $modified_user_id; |
|
40 | - var $modified_by_name; |
|
41 | - var $created_by; |
|
42 | - var $created_by_name; |
|
43 | - var $description; |
|
44 | - var $deleted; |
|
45 | - var $created_by_link; |
|
46 | - var $modified_user_link; |
|
35 | + var $id; |
|
36 | + var $name; |
|
37 | + var $date_entered; |
|
38 | + var $date_modified; |
|
39 | + var $modified_user_id; |
|
40 | + var $modified_by_name; |
|
41 | + var $created_by; |
|
42 | + var $created_by_name; |
|
43 | + var $description; |
|
44 | + var $deleted; |
|
45 | + var $created_by_link; |
|
46 | + var $modified_user_link; |
|
47 | 47 | |
48 | 48 | var $type; |
49 | 49 | var $x_field; |
@@ -52,9 +52,9 @@ discard block |
||
52 | 52 | |
53 | 53 | |
54 | 54 | |
55 | - function AOR_Chart(){ |
|
56 | - parent::Basic(); |
|
57 | - } |
|
55 | + function AOR_Chart(){ |
|
56 | + parent::Basic(); |
|
57 | + } |
|
58 | 58 | |
59 | 59 | function save_lines(array $post,AOR_Report $bean,$postKey){ |
60 | 60 | $seenIds = array(); |
@@ -23,43 +23,43 @@ discard block |
||
23 | 23 | */ |
24 | 24 | |
25 | 25 | $dictionary['AOS_Products_Quotes'] = array( |
26 | - 'table'=>'aos_products_quotes', |
|
27 | - 'audited'=>true, |
|
28 | - 'fields'=>array ( |
|
29 | - 'name' => |
|
26 | + 'table'=>'aos_products_quotes', |
|
27 | + 'audited'=>true, |
|
28 | + 'fields'=>array ( |
|
29 | + 'name' => |
|
30 | 30 | array ( |
31 | - 'name' => 'name', |
|
32 | - 'vname' => 'LBL_NAME', |
|
33 | - 'type' => 'text', |
|
34 | - 'link' => true, |
|
35 | - 'unified_search' => true, |
|
36 | - 'required' => true, |
|
37 | - 'importable' => 'required', |
|
31 | + 'name' => 'name', |
|
32 | + 'vname' => 'LBL_NAME', |
|
33 | + 'type' => 'text', |
|
34 | + 'link' => true, |
|
35 | + 'unified_search' => true, |
|
36 | + 'required' => true, |
|
37 | + 'importable' => 'required', |
|
38 | 38 | ), |
39 | 39 | 'currency_id' => |
40 | - array ( |
|
41 | - 'required' => false, |
|
42 | - 'name' => 'currency_id', |
|
43 | - 'vname' => 'LBL_CURRENCY', |
|
44 | - 'type' => 'id', |
|
45 | - 'massupdate' => 0, |
|
46 | - 'comments' => '', |
|
47 | - 'help' => '', |
|
48 | - 'importable' => 'true', |
|
49 | - 'duplicate_merge' => 'disabled', |
|
50 | - 'duplicate_merge_dom_value' => 0, |
|
51 | - 'audited' => false, |
|
52 | - 'reportable' => false, |
|
53 | - 'len' => 36, |
|
54 | - 'size' => '20', |
|
55 | - 'studio' => 'visible', |
|
56 | - 'function' => |
|
40 | + array ( |
|
41 | + 'required' => false, |
|
42 | + 'name' => 'currency_id', |
|
43 | + 'vname' => 'LBL_CURRENCY', |
|
44 | + 'type' => 'id', |
|
45 | + 'massupdate' => 0, |
|
46 | + 'comments' => '', |
|
47 | + 'help' => '', |
|
48 | + 'importable' => 'true', |
|
49 | + 'duplicate_merge' => 'disabled', |
|
50 | + 'duplicate_merge_dom_value' => 0, |
|
51 | + 'audited' => false, |
|
52 | + 'reportable' => false, |
|
53 | + 'len' => 36, |
|
54 | + 'size' => '20', |
|
55 | + 'studio' => 'visible', |
|
56 | + 'function' => |
|
57 | 57 | array ( |
58 | 58 | 'name' => 'getCurrencyDropDown', |
59 | 59 | 'returns' => 'html', |
60 | 60 | ), |
61 | 61 | ), |
62 | - 'part_number' => |
|
62 | + 'part_number' => |
|
63 | 63 | array ( |
64 | 64 | 'required' => false, |
65 | 65 | 'name' => 'part_number', |
@@ -90,8 +90,8 @@ discard block |
||
90 | 90 | 'rows' => 6, |
91 | 91 | 'cols' => 80, |
92 | 92 | ), |
93 | - 'number' => |
|
94 | - array ( |
|
93 | + 'number' => |
|
94 | + array ( |
|
95 | 95 | 'required' => false, |
96 | 96 | 'name' => 'number', |
97 | 97 | 'vname' => 'LBL_LIST_NUM', |
@@ -106,9 +106,9 @@ discard block |
||
106 | 106 | 'reportable' => true, |
107 | 107 | 'len' => '11', |
108 | 108 | 'disable_num_format' => '', |
109 | - ), |
|
110 | - 'product_qty' => |
|
111 | - array ( |
|
109 | + ), |
|
110 | + 'product_qty' => |
|
111 | + array ( |
|
112 | 112 | 'required' => false, |
113 | 113 | 'name' => 'product_qty', |
114 | 114 | 'vname' => 'LBL_PRODUCT_QTY', |
@@ -125,9 +125,9 @@ discard block |
||
125 | 125 | 'size' => '20', |
126 | 126 | 'enable_range_search' => false, |
127 | 127 | 'precision' => '4', |
128 | - ), |
|
129 | - 'product_cost_price' => |
|
130 | - array ( |
|
128 | + ), |
|
129 | + 'product_cost_price' => |
|
130 | + array ( |
|
131 | 131 | 'required' => false, |
132 | 132 | 'name' => 'product_cost_price', |
133 | 133 | 'vname' => 'LBL_PRODUCT_COST_PRICE', |
@@ -141,7 +141,7 @@ discard block |
||
141 | 141 | 'audited' => 0, |
142 | 142 | 'reportable' => true, |
143 | 143 | 'len' => '26,6', |
144 | - ), |
|
144 | + ), |
|
145 | 145 | 'product_cost_price_usdollar' => |
146 | 146 | array ( |
147 | 147 | 'name' => 'product_cost_price_usdollar', |
@@ -159,8 +159,8 @@ discard block |
||
159 | 159 | ), |
160 | 160 | 'len' => '26,6', |
161 | 161 | ), |
162 | - 'product_list_price' => |
|
163 | - array ( |
|
162 | + 'product_list_price' => |
|
163 | + array ( |
|
164 | 164 | 'required' => false, |
165 | 165 | 'name' => 'product_list_price', |
166 | 166 | 'vname' => 'LBL_PRODUCT_LIST_PRICE', |
@@ -174,7 +174,7 @@ discard block |
||
174 | 174 | 'audited' => 1, |
175 | 175 | 'reportable' => true, |
176 | 176 | 'len' => '26,6', |
177 | - ), |
|
177 | + ), |
|
178 | 178 | 'product_list_price_usdollar' => |
179 | 179 | array ( |
180 | 180 | 'name' => 'product_list_price_usdollar', |
@@ -192,8 +192,8 @@ discard block |
||
192 | 192 | ), |
193 | 193 | 'len' => '26,6', |
194 | 194 | ), |
195 | - 'product_discount' => |
|
196 | - array ( |
|
195 | + 'product_discount' => |
|
196 | + array ( |
|
197 | 197 | 'required' => false, |
198 | 198 | 'name' => 'product_discount', |
199 | 199 | 'vname' => 'LBL_PRODUCT_DISCOUNT', |
@@ -207,7 +207,7 @@ discard block |
||
207 | 207 | 'audited' => 1, |
208 | 208 | 'reportable' => true, |
209 | 209 | 'len' => '26,6', |
210 | - ), |
|
210 | + ), |
|
211 | 211 | 'product_discount_usdollar' => |
212 | 212 | array ( |
213 | 213 | 'name' => 'product_discount_usdollar', |
@@ -225,8 +225,8 @@ discard block |
||
225 | 225 | ), |
226 | 226 | 'len' => '26,6', |
227 | 227 | ), |
228 | - 'product_discount_amount' => |
|
229 | - array ( |
|
228 | + 'product_discount_amount' => |
|
229 | + array ( |
|
230 | 230 | 'required' => false, |
231 | 231 | 'name' => 'product_discount_amount', |
232 | 232 | 'vname' => 'LBL_PRODUCT_DISCOUNT_AMOUNT', |
@@ -240,7 +240,7 @@ discard block |
||
240 | 240 | 'audited' => 1, |
241 | 241 | 'reportable' => true, |
242 | 242 | 'len' => '26,6', |
243 | - ), |
|
243 | + ), |
|
244 | 244 | 'product_discount_amount_usdollar' => |
245 | 245 | array ( |
246 | 246 | 'name' => 'product_discount_amount_usdollar', |
@@ -258,8 +258,8 @@ discard block |
||
258 | 258 | ), |
259 | 259 | 'len' => '26,6', |
260 | 260 | ), |
261 | - 'discount' => |
|
262 | - array ( |
|
261 | + 'discount' => |
|
262 | + array ( |
|
263 | 263 | 'required' => false, |
264 | 264 | 'name' => 'discount', |
265 | 265 | 'vname' => 'LBL_DISCOUNT', |
@@ -276,10 +276,10 @@ discard block |
||
276 | 276 | 'len' => 255, |
277 | 277 | 'options' => 'discount_list', |
278 | 278 | 'studio' => 'visible', |
279 | - ), |
|
279 | + ), |
|
280 | 280 | |
281 | - 'product_unit_price' => |
|
282 | - array ( |
|
281 | + 'product_unit_price' => |
|
282 | + array ( |
|
283 | 283 | 'required' => '1', |
284 | 284 | 'name' => 'product_unit_price', |
285 | 285 | 'vname' => 'LBL_PRODUCT_UNIT_PRICE', |
@@ -293,7 +293,7 @@ discard block |
||
293 | 293 | 'audited' => 1, |
294 | 294 | 'reportable' => true, |
295 | 295 | 'len' => '26,6', |
296 | - ), |
|
296 | + ), |
|
297 | 297 | 'product_unit_price_usdollar' => |
298 | 298 | array ( |
299 | 299 | 'name' => 'product_unit_price_usdollar', |
@@ -311,8 +311,8 @@ discard block |
||
311 | 311 | ), |
312 | 312 | 'len' => '26,6', |
313 | 313 | ), |
314 | - 'vat_amt' => |
|
315 | - array ( |
|
314 | + 'vat_amt' => |
|
315 | + array ( |
|
316 | 316 | 'required' => '1', |
317 | 317 | 'name' => 'vat_amt', |
318 | 318 | 'vname' => 'LBL_VAT_AMT', |
@@ -326,7 +326,7 @@ discard block |
||
326 | 326 | 'audited' => 1, |
327 | 327 | 'reportable' => true, |
328 | 328 | 'len' => '26,6', |
329 | - ), |
|
329 | + ), |
|
330 | 330 | 'vat_amt_usdollar' => |
331 | 331 | array ( |
332 | 332 | 'name' => 'vat_amt_usdollar', |
@@ -344,8 +344,8 @@ discard block |
||
344 | 344 | ), |
345 | 345 | 'len' => '26,6', |
346 | 346 | ), |
347 | - 'product_total_price' => |
|
348 | - array ( |
|
347 | + 'product_total_price' => |
|
348 | + array ( |
|
349 | 349 | 'required' => '1', |
350 | 350 | 'name' => 'product_total_price', |
351 | 351 | 'vname' => 'LBL_PRODUCT_TOTAL_PRICE', |
@@ -359,7 +359,7 @@ discard block |
||
359 | 359 | 'audited' => 1, |
360 | 360 | 'reportable' => true, |
361 | 361 | 'len' => '26,6', |
362 | - ), |
|
362 | + ), |
|
363 | 363 | 'product_total_price_usdollar' => |
364 | 364 | array ( |
365 | 365 | 'name' => 'product_total_price_usdollar', |
@@ -377,8 +377,8 @@ discard block |
||
377 | 377 | ), |
378 | 378 | 'len' => '26,6', |
379 | 379 | ), |
380 | - 'vat' => |
|
381 | - array ( |
|
380 | + 'vat' => |
|
381 | + array ( |
|
382 | 382 | 'required' => false, |
383 | 383 | 'name' => 'vat', |
384 | 384 | 'vname' => 'LBL_VAT', |
@@ -395,9 +395,9 @@ discard block |
||
395 | 395 | 'len' => 100, |
396 | 396 | 'options' => 'vat_list', |
397 | 397 | 'studio' => 'visible', |
398 | - ), |
|
399 | - 'parent_name' => |
|
400 | - array ( |
|
398 | + ), |
|
399 | + 'parent_name' => |
|
400 | + array ( |
|
401 | 401 | 'required' => false, |
402 | 402 | 'source' => 'non-db', |
403 | 403 | 'name' => 'parent_name', |
@@ -417,9 +417,9 @@ discard block |
||
417 | 417 | 'type_name' => 'parent_type', |
418 | 418 | 'id_name' => 'parent_id', |
419 | 419 | 'parent_type' => 'record_type_display', |
420 | - ), |
|
421 | - 'parent_type' => |
|
422 | - array ( |
|
420 | + ), |
|
421 | + 'parent_type' => |
|
422 | + array ( |
|
423 | 423 | 'required' => false, |
424 | 424 | 'name' => 'parent_type', |
425 | 425 | 'vname' => 'LBL_PARENT_TYPE', |
@@ -435,9 +435,9 @@ discard block |
||
435 | 435 | 'len' => 100, |
436 | 436 | 'dbType' => 'varchar', |
437 | 437 | 'studio' => 'hidden', |
438 | - ), |
|
439 | - 'parent_id' => |
|
440 | - array ( |
|
438 | + ), |
|
439 | + 'parent_id' => |
|
440 | + array ( |
|
441 | 441 | 'required' => false, |
442 | 442 | 'name' => 'parent_id', |
443 | 443 | 'vname' => 'LBL_PARENT_ID', |
@@ -451,9 +451,9 @@ discard block |
||
451 | 451 | 'audited' => 0, |
452 | 452 | 'reportable' => 0, |
453 | 453 | 'len' => 36, |
454 | - ), |
|
455 | - 'product_id' => |
|
456 | - array ( |
|
454 | + ), |
|
455 | + 'product_id' => |
|
456 | + array ( |
|
457 | 457 | 'required' => false, |
458 | 458 | 'name' => 'product_id', |
459 | 459 | 'vname' => '', |
@@ -467,9 +467,9 @@ discard block |
||
467 | 467 | 'audited' => 0, |
468 | 468 | 'reportable' => 0, |
469 | 469 | 'len' => 36, |
470 | - ), |
|
471 | - 'group_name' => |
|
472 | - array( |
|
470 | + ), |
|
471 | + 'group_name' => |
|
472 | + array( |
|
473 | 473 | 'name'=>'group_name', |
474 | 474 | 'rname'=>'name', |
475 | 475 | 'vname' => 'LBL_GROUP_NAME', |
@@ -480,9 +480,9 @@ discard block |
||
480 | 480 | 'id_name' => 'group_id', |
481 | 481 | 'module'=>'AOS_Line_Item_Groups', |
482 | 482 | 'duplicate_merge'=>'disabled', |
483 | - ), |
|
484 | - 'group_id' => |
|
485 | - array ( |
|
483 | + ), |
|
484 | + 'group_id' => |
|
485 | + array ( |
|
486 | 486 | 'required' => false, |
487 | 487 | 'name' => 'group_id', |
488 | 488 | 'vname' => '', |
@@ -496,37 +496,37 @@ discard block |
||
496 | 496 | 'audited' => 0, |
497 | 497 | 'reportable' => 0, |
498 | 498 | 'len' => 36, |
499 | - ), |
|
500 | - 'aos_products' => |
|
501 | - array ( |
|
502 | - 'name' => 'aos_products', |
|
499 | + ), |
|
500 | + 'aos_products' => |
|
501 | + array ( |
|
502 | + 'name' => 'aos_products', |
|
503 | 503 | 'type' => 'link', |
504 | 504 | 'relationship' => 'aos_product_quotes_aos_products', |
505 | 505 | 'module'=>'AOS_Products', |
506 | 506 | 'bean_name'=>'AOS_Products', |
507 | 507 | 'source'=>'non-db', |
508 | - ), |
|
508 | + ), |
|
509 | 509 | ), |
510 | 510 | 'indices' => array ( |
511 | 511 | array ( |
512 | - 'name' => 'idx_aospq_par_del', |
|
513 | - 'type' => 'index', |
|
514 | - 'fields' => array('parent_id','parent_type','deleted') |
|
512 | + 'name' => 'idx_aospq_par_del', |
|
513 | + 'type' => 'index', |
|
514 | + 'fields' => array('parent_id','parent_type','deleted') |
|
515 | 515 | ) |
516 | 516 | ), |
517 | 517 | 'relationships'=>array ( |
518 | - 'aos_product_quotes_aos_products' => |
|
519 | - array ( |
|
520 | - 'lhs_module'=> 'AOS_Products', |
|
521 | - 'lhs_table'=> 'aos_products', |
|
522 | - 'lhs_key' => 'id', |
|
523 | - 'rhs_module'=> 'AOS_Products_Quotes', |
|
524 | - 'rhs_table'=> 'aos_products_quotes', |
|
525 | - 'rhs_key' => 'product_id', |
|
526 | - 'relationship_type'=>'one-to-many', |
|
527 | - ), |
|
518 | + 'aos_product_quotes_aos_products' => |
|
519 | + array ( |
|
520 | + 'lhs_module'=> 'AOS_Products', |
|
521 | + 'lhs_table'=> 'aos_products', |
|
522 | + 'lhs_key' => 'id', |
|
523 | + 'rhs_module'=> 'AOS_Products_Quotes', |
|
524 | + 'rhs_table'=> 'aos_products_quotes', |
|
525 | + 'rhs_key' => 'product_id', |
|
526 | + 'relationship_type'=>'one-to-many', |
|
527 | + ), |
|
528 | 528 | ), |
529 | - 'optimistic_lock'=>true, |
|
529 | + 'optimistic_lock'=>true, |
|
530 | 530 | ); |
531 | 531 | require_once('include/SugarObjects/VardefManager.php'); |
532 | 532 | VardefManager::createVardef('AOS_Products_Quotes','AOS_Products_Quotes', array('basic','assignable')); |
@@ -1,26 +1,26 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * Advanced OpenSales, Advanced, robust set of sales modules. |
|
4 | - * @package Advanced OpenSales for SugarCRM |
|
5 | - * @copyright SalesAgility Ltd http://www.salesagility.com |
|
6 | - * |
|
7 | - * This program is free software; you can redistribute it and/or modify |
|
8 | - * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by |
|
9 | - * the Free Software Foundation; either version 3 of the License, or |
|
10 | - * (at your option) any later version. |
|
11 | - * |
|
12 | - * This program is distributed in the hope that it will be useful, |
|
13 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 | - * GNU General Public License for more details. |
|
16 | - * |
|
17 | - * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|
18 | - * along with this program; if not, see http://www.gnu.org/licenses |
|
19 | - * or write to the Free Software Foundation,Inc., 51 Franklin Street, |
|
20 | - * Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | - * |
|
22 | - * @author SalesAgility <[email protected]> |
|
23 | - */ |
|
3 | + * Advanced OpenSales, Advanced, robust set of sales modules. |
|
4 | + * @package Advanced OpenSales for SugarCRM |
|
5 | + * @copyright SalesAgility Ltd http://www.salesagility.com |
|
6 | + * |
|
7 | + * This program is free software; you can redistribute it and/or modify |
|
8 | + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by |
|
9 | + * the Free Software Foundation; either version 3 of the License, or |
|
10 | + * (at your option) any later version. |
|
11 | + * |
|
12 | + * This program is distributed in the hope that it will be useful, |
|
13 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 | + * GNU General Public License for more details. |
|
16 | + * |
|
17 | + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|
18 | + * along with this program; if not, see http://www.gnu.org/licenses |
|
19 | + * or write to the Free Software Foundation,Inc., 51 Franklin Street, |
|
20 | + * Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | + * |
|
22 | + * @author SalesAgility <[email protected]> |
|
23 | + */ |
|
24 | 24 | |
25 | 25 | require_once('modules/AOS_Products_Quotes/AOS_Products_Quotes_sugar.php'); |
26 | 26 | class AOS_Products_Quotes extends AOS_Products_Quotes_sugar { |
@@ -1,82 +1,82 @@ |
||
1 | 1 | <?php |
2 | 2 | /** |
3 | - * Advanced OpenSales, Advanced, robust set of sales modules. |
|
4 | - * @package Advanced OpenSales for SugarCRM |
|
5 | - * @copyright SalesAgility Ltd http://www.salesagility.com |
|
6 | - * |
|
7 | - * This program is free software; you can redistribute it and/or modify |
|
8 | - * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by |
|
9 | - * the Free Software Foundation; either version 3 of the License, or |
|
10 | - * (at your option) any later version. |
|
11 | - * |
|
12 | - * This program is distributed in the hope that it will be useful, |
|
13 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 | - * GNU General Public License for more details. |
|
16 | - * |
|
17 | - * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|
18 | - * along with this program; if not, see http://www.gnu.org/licenses |
|
19 | - * or write to the Free Software Foundation,Inc., 51 Franklin Street, |
|
20 | - * Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | - * |
|
22 | - * @author SalesAgility <[email protected]> |
|
23 | - */ |
|
3 | + * Advanced OpenSales, Advanced, robust set of sales modules. |
|
4 | + * @package Advanced OpenSales for SugarCRM |
|
5 | + * @copyright SalesAgility Ltd http://www.salesagility.com |
|
6 | + * |
|
7 | + * This program is free software; you can redistribute it and/or modify |
|
8 | + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by |
|
9 | + * the Free Software Foundation; either version 3 of the License, or |
|
10 | + * (at your option) any later version. |
|
11 | + * |
|
12 | + * This program is distributed in the hope that it will be useful, |
|
13 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 | + * GNU General Public License for more details. |
|
16 | + * |
|
17 | + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE |
|
18 | + * along with this program; if not, see http://www.gnu.org/licenses |
|
19 | + * or write to the Free Software Foundation,Inc., 51 Franklin Street, |
|
20 | + * Fifth Floor, Boston, MA 02110-1301 USA |
|
21 | + * |
|
22 | + * @author SalesAgility <[email protected]> |
|
23 | + */ |
|
24 | 24 | |
25 | 25 | |
26 | 26 | class AOS_Products_Quotes_sugar extends Basic { |
27 | - var $new_schema = true; |
|
28 | - var $module_dir = 'AOS_Products_Quotes'; |
|
29 | - var $object_name = 'AOS_Products_Quotes'; |
|
30 | - var $table_name = 'aos_products_quotes'; |
|
31 | - var $tracker_visibility = false; |
|
32 | - var $importable = true; |
|
27 | + var $new_schema = true; |
|
28 | + var $module_dir = 'AOS_Products_Quotes'; |
|
29 | + var $object_name = 'AOS_Products_Quotes'; |
|
30 | + var $table_name = 'aos_products_quotes'; |
|
31 | + var $tracker_visibility = false; |
|
32 | + var $importable = true; |
|
33 | 33 | |
34 | - var $disable_row_level_security = true ; // to ensure that modules created and deployed under CE will continue to function under team security if the instance is upgraded to PRO |
|
34 | + var $disable_row_level_security = true ; // to ensure that modules created and deployed under CE will continue to function under team security if the instance is upgraded to PRO |
|
35 | 35 | |
36 | - var $id; |
|
37 | - var $name; |
|
38 | - var $date_entered; |
|
39 | - var $date_modified; |
|
40 | - var $modified_user_id; |
|
41 | - var $modified_by_name; |
|
42 | - var $created_by; |
|
43 | - var $created_by_name; |
|
44 | - var $description; |
|
45 | - var $deleted; |
|
46 | - var $created_by_link; |
|
47 | - var $modified_user_link; |
|
48 | - var $assigned_user_id; |
|
49 | - var $assigned_user_name; |
|
50 | - var $assigned_user_link; |
|
51 | - var $product_qty; |
|
52 | - var $product_cost_price; |
|
53 | - var $product_list_price; |
|
54 | - var $product_discount; |
|
55 | - var $product_discount_amount; |
|
56 | - var $product_unit_price; |
|
57 | - var $vat_amt; |
|
58 | - var $product_total_price; |
|
59 | - var $discount; |
|
60 | - var $vat; |
|
61 | - var $parent_name; |
|
62 | - var $parent_type; |
|
63 | - var $parent_id; |
|
64 | - var $product_id; |
|
65 | - var $product; |
|
36 | + var $id; |
|
37 | + var $name; |
|
38 | + var $date_entered; |
|
39 | + var $date_modified; |
|
40 | + var $modified_user_id; |
|
41 | + var $modified_by_name; |
|
42 | + var $created_by; |
|
43 | + var $created_by_name; |
|
44 | + var $description; |
|
45 | + var $deleted; |
|
46 | + var $created_by_link; |
|
47 | + var $modified_user_link; |
|
48 | + var $assigned_user_id; |
|
49 | + var $assigned_user_name; |
|
50 | + var $assigned_user_link; |
|
51 | + var $product_qty; |
|
52 | + var $product_cost_price; |
|
53 | + var $product_list_price; |
|
54 | + var $product_discount; |
|
55 | + var $product_discount_amount; |
|
56 | + var $product_unit_price; |
|
57 | + var $vat_amt; |
|
58 | + var $product_total_price; |
|
59 | + var $discount; |
|
60 | + var $vat; |
|
61 | + var $parent_name; |
|
62 | + var $parent_type; |
|
63 | + var $parent_id; |
|
64 | + var $product_id; |
|
65 | + var $product; |
|
66 | 66 | |
67 | 67 | |
68 | 68 | |
69 | 69 | |
70 | 70 | |
71 | - function AOS_Products_Quotes_sugar(){ |
|
72 | - parent::Basic(); |
|
73 | - } |
|
71 | + function AOS_Products_Quotes_sugar(){ |
|
72 | + parent::Basic(); |
|
73 | + } |
|
74 | 74 | |
75 | - function bean_implements($interface){ |
|
76 | - switch($interface){ |
|
77 | - case 'ACL': return false; |
|
78 | - } |
|
79 | - return false; |
|
75 | + function bean_implements($interface){ |
|
76 | + switch($interface){ |
|
77 | + case 'ACL': return false; |
|
78 | + } |
|
79 | + return false; |
|
80 | 80 | } |
81 | 81 | |
82 | 82 | } |
@@ -55,7 +55,7 @@ discard block |
||
55 | 55 | 'LBL_EMAIL_ADDRESS' => 'Email Address:', |
56 | 56 | 'LBL_MY_PIPELINE_FORM_TITLE' => 'My Pipeline', |
57 | 57 | 'LBL_PIPELINE_FORM_TITLE' => 'Pipeline By Sales Stage', |
58 | - 'LBL_RGraph_PIPELINE_FORM_TITLE' => 'Pipeline By Sales Stage', |
|
58 | + 'LBL_RGraph_PIPELINE_FORM_TITLE' => 'Pipeline By Sales Stage', |
|
59 | 59 | 'LBL_CAMPAIGN_ROI_FORM_TITLE' => 'Campaign ROI', |
60 | 60 | 'LBL_MY_CLOSED_OPPORTUNITIES_GAUGE' => 'My Closed Won Opportunities Gauge', |
61 | 61 | 'LNK_NEW_CONTACT' => 'Create Contact', |
@@ -80,35 +80,35 @@ discard block |
||
80 | 80 | 'LBL_NO_RESULTS' => '<h2>There were no results found. Please search again.</h2><br>', |
81 | 81 | 'LBL_NO_RESULTS_TIPS' => '<h3>Search Tips:</h3><ul><li>Make sure you have the proper categories selected above.</li><li>Broaden your search criteria.</li><li>If you still cannot find any results try the advanced search option.</li></ul>', |
82 | 82 | |
83 | - 'LBL_RELOAD_PAGE' => 'Please <a href="javascript: window.location.reload()">reload the window</a> to use this SuiteCRM Dashlet.', |
|
84 | - 'LBL_ADD_DASHLETS' => 'Add SuiteCRM Dashlets', |
|
85 | - 'LBL_ADD_PAGE' => 'Add Page', |
|
86 | - 'LBL_DEL_PAGE' => 'Delete Page', |
|
87 | - 'LBL_WEBSITE_TITLE' => 'Website', |
|
88 | - 'LBL_RSS_TITLE' => 'News Feed', |
|
89 | - 'LBL_DELETE_PAGE' => 'Delete Page', |
|
90 | - 'LBL_CHANGE_LAYOUT' => 'Change Layout', |
|
91 | - 'LBL_RENAME_PAGE' => 'Rename Page', |
|
92 | - 'LBL_CLOSE_DASHLETS' => 'Close', |
|
93 | - 'LBL_OPTIONS' => 'Options', |
|
94 | - // dashlet search fields |
|
95 | - 'LBL_TODAY'=>'Today', |
|
96 | - 'LBL_YESTERDAY' => 'Yesterday', |
|
97 | - 'LBL_TOMORROW'=>'Tomorrow', |
|
98 | - 'LBL_LAST_WEEK'=>'Last Week', |
|
99 | - 'LBL_NEXT_WEEK'=>'Next Week', |
|
100 | - 'LBL_LAST_7_DAYS'=>'Last 7 Days', |
|
101 | - 'LBL_NEXT_7_DAYS'=>'Next 7 Days', |
|
102 | - 'LBL_LAST_MONTH'=>'Last Month', |
|
103 | - 'LBL_NEXT_MONTH'=>'Next Month', |
|
104 | - 'LBL_LAST_QUARTER'=>'Last Quarter', |
|
105 | - 'LBL_THIS_QUARTER'=>'This Quarter', |
|
106 | - 'LBL_LAST_YEAR'=>'Last Year', |
|
107 | - 'LBL_NEXT_YEAR'=>'Next Year', |
|
108 | - 'LBL_LAST_30_DAYS' => 'Last 30 Days', |
|
109 | - 'LBL_NEXT_30_DAYS' => 'Next 30 Days', |
|
110 | - 'LBL_THIS_MONTH' => 'This Month', |
|
111 | - 'LBL_THIS_YEAR' => 'This Year', |
|
83 | + 'LBL_RELOAD_PAGE' => 'Please <a href="javascript: window.location.reload()">reload the window</a> to use this SuiteCRM Dashlet.', |
|
84 | + 'LBL_ADD_DASHLETS' => 'Add SuiteCRM Dashlets', |
|
85 | + 'LBL_ADD_PAGE' => 'Add Page', |
|
86 | + 'LBL_DEL_PAGE' => 'Delete Page', |
|
87 | + 'LBL_WEBSITE_TITLE' => 'Website', |
|
88 | + 'LBL_RSS_TITLE' => 'News Feed', |
|
89 | + 'LBL_DELETE_PAGE' => 'Delete Page', |
|
90 | + 'LBL_CHANGE_LAYOUT' => 'Change Layout', |
|
91 | + 'LBL_RENAME_PAGE' => 'Rename Page', |
|
92 | + 'LBL_CLOSE_DASHLETS' => 'Close', |
|
93 | + 'LBL_OPTIONS' => 'Options', |
|
94 | + // dashlet search fields |
|
95 | + 'LBL_TODAY'=>'Today', |
|
96 | + 'LBL_YESTERDAY' => 'Yesterday', |
|
97 | + 'LBL_TOMORROW'=>'Tomorrow', |
|
98 | + 'LBL_LAST_WEEK'=>'Last Week', |
|
99 | + 'LBL_NEXT_WEEK'=>'Next Week', |
|
100 | + 'LBL_LAST_7_DAYS'=>'Last 7 Days', |
|
101 | + 'LBL_NEXT_7_DAYS'=>'Next 7 Days', |
|
102 | + 'LBL_LAST_MONTH'=>'Last Month', |
|
103 | + 'LBL_NEXT_MONTH'=>'Next Month', |
|
104 | + 'LBL_LAST_QUARTER'=>'Last Quarter', |
|
105 | + 'LBL_THIS_QUARTER'=>'This Quarter', |
|
106 | + 'LBL_LAST_YEAR'=>'Last Year', |
|
107 | + 'LBL_NEXT_YEAR'=>'Next Year', |
|
108 | + 'LBL_LAST_30_DAYS' => 'Last 30 Days', |
|
109 | + 'LBL_NEXT_30_DAYS' => 'Next 30 Days', |
|
110 | + 'LBL_THIS_MONTH' => 'This Month', |
|
111 | + 'LBL_THIS_YEAR' => 'This Year', |
|
112 | 112 | |
113 | 113 | 'LBL_MODULES' => 'Modules', |
114 | 114 | 'LBL_CHARTS' => 'Charts', |
@@ -116,44 +116,44 @@ discard block |
||
116 | 116 | 'LBL_WEB' => 'Web', |
117 | 117 | 'LBL_SEARCH_RESULTS' => 'Search Result', |
118 | 118 | |
119 | - // Dashlet Categories |
|
120 | - 'dashlet_categories_dom' => array( |
|
121 | - 'Module Views' => 'Module Views', |
|
122 | - 'Portal' => 'Portal', |
|
123 | - 'Charts' => 'Charts', |
|
124 | - 'Tools' => 'Tools', |
|
125 | - 'Miscellaneous' => 'Miscellaneous'), |
|
126 | - 'LBL_MAX_DASHLETS_REACHED' => 'You have reached the maximum number of SuiteCRM Dashlets your administrator has set. Please remove a SuiteCRM Dashlet to add a new one.', |
|
127 | - 'LBL_ADDING_DASHLET' => 'Adding SuiteCRM Dashlet ...', |
|
128 | - 'LBL_ADDED_DASHLET' => 'SuiteCRM Dashlet Added', |
|
129 | - 'LBL_REMOVE_DASHLET_CONFIRM' => 'Are you sure you want to remove this SuiteCRM Dashlet?', |
|
130 | - 'LBL_REMOVING_DASHLET' => 'Removing SuiteCRM Dashlet ...', |
|
131 | - 'LBL_REMOVED_DASHLET' => 'SuiteCRM Dashlet Removed', |
|
132 | - 'LBL_DASHLET_CONFIGURE_GENERAL' => 'General', |
|
133 | - 'LBL_DASHLET_CONFIGURE_FILTERS' => 'Filters', |
|
134 | - 'LBL_DASHLET_CONFIGURE_MY_ITEMS_ONLY' => 'Only My Items', |
|
135 | - 'LBL_DASHLET_CONFIGURE_TITLE' => 'Title', |
|
136 | - 'LBL_DASHLET_CONFIGURE_DISPLAY_ROWS' => 'Display Rows', |
|
119 | + // Dashlet Categories |
|
120 | + 'dashlet_categories_dom' => array( |
|
121 | + 'Module Views' => 'Module Views', |
|
122 | + 'Portal' => 'Portal', |
|
123 | + 'Charts' => 'Charts', |
|
124 | + 'Tools' => 'Tools', |
|
125 | + 'Miscellaneous' => 'Miscellaneous'), |
|
126 | + 'LBL_MAX_DASHLETS_REACHED' => 'You have reached the maximum number of SuiteCRM Dashlets your administrator has set. Please remove a SuiteCRM Dashlet to add a new one.', |
|
127 | + 'LBL_ADDING_DASHLET' => 'Adding SuiteCRM Dashlet ...', |
|
128 | + 'LBL_ADDED_DASHLET' => 'SuiteCRM Dashlet Added', |
|
129 | + 'LBL_REMOVE_DASHLET_CONFIRM' => 'Are you sure you want to remove this SuiteCRM Dashlet?', |
|
130 | + 'LBL_REMOVING_DASHLET' => 'Removing SuiteCRM Dashlet ...', |
|
131 | + 'LBL_REMOVED_DASHLET' => 'SuiteCRM Dashlet Removed', |
|
132 | + 'LBL_DASHLET_CONFIGURE_GENERAL' => 'General', |
|
133 | + 'LBL_DASHLET_CONFIGURE_FILTERS' => 'Filters', |
|
134 | + 'LBL_DASHLET_CONFIGURE_MY_ITEMS_ONLY' => 'Only My Items', |
|
135 | + 'LBL_DASHLET_CONFIGURE_TITLE' => 'Title', |
|
136 | + 'LBL_DASHLET_CONFIGURE_DISPLAY_ROWS' => 'Display Rows', |
|
137 | 137 | |
138 | - 'LBL_DASHLET_DELETE' => 'Delete SuiteCRM Dashlet', |
|
139 | - 'LBL_DASHLET_REFRESH' => 'Refresh SuiteCRM Dashlet', |
|
140 | - 'LBL_DASHLET_EDIT' => 'Edit SuiteCRM Dashlet', |
|
138 | + 'LBL_DASHLET_DELETE' => 'Delete SuiteCRM Dashlet', |
|
139 | + 'LBL_DASHLET_REFRESH' => 'Refresh SuiteCRM Dashlet', |
|
140 | + 'LBL_DASHLET_EDIT' => 'Edit SuiteCRM Dashlet', |
|
141 | 141 | |
142 | 142 | 'LBL_TRAINING_TITLE' => 'Training', |
143 | 143 | |
144 | - 'LBL_CREATING_NEW_PAGE' => 'Creating New Page...', |
|
145 | - 'LBL_NEW_PAGE_FEEDBACK' => 'You have created a new page. You can add new content with the Add SuiteCRM Dashlets option.', |
|
146 | - 'LBL_DELETE_PAGE_CONFIRM' => 'Are you sure you want to delete this page?', |
|
147 | - 'LBL_SAVING_PAGE_TITLE' => 'Saving Page Title...', |
|
148 | - 'LBL_RETRIEVING_PAGE' => 'Retrieving Page...', |
|
144 | + 'LBL_CREATING_NEW_PAGE' => 'Creating New Page...', |
|
145 | + 'LBL_NEW_PAGE_FEEDBACK' => 'You have created a new page. You can add new content with the Add SuiteCRM Dashlets option.', |
|
146 | + 'LBL_DELETE_PAGE_CONFIRM' => 'Are you sure you want to delete this page?', |
|
147 | + 'LBL_SAVING_PAGE_TITLE' => 'Saving Page Title...', |
|
148 | + 'LBL_RETRIEVING_PAGE' => 'Retrieving Page...', |
|
149 | 149 | |
150 | - // Default out-of-box names for tabs |
|
151 | - 'LBL_HOME_PAGE_1_NAME' => 'My SuiteCRM', |
|
152 | - 'LBL_HOME_PAGE_2_NAME' => 'Sales', |
|
153 | - 'LBL_HOME_PAGE_3_NAME' => 'Support', |
|
154 | - 'LBL_HOME_PAGE_6_NAME' => 'Marketing',//bug 16510, separate the support and marketing page from each other |
|
155 | - 'LBL_HOME_PAGE_4_NAME' => 'Tracker', |
|
156 | - 'LBL_CLOSE_SITEMAP' => 'Close', |
|
150 | + // Default out-of-box names for tabs |
|
151 | + 'LBL_HOME_PAGE_1_NAME' => 'My SuiteCRM', |
|
152 | + 'LBL_HOME_PAGE_2_NAME' => 'Sales', |
|
153 | + 'LBL_HOME_PAGE_3_NAME' => 'Support', |
|
154 | + 'LBL_HOME_PAGE_6_NAME' => 'Marketing',//bug 16510, separate the support and marketing page from each other |
|
155 | + 'LBL_HOME_PAGE_4_NAME' => 'Tracker', |
|
156 | + 'LBL_CLOSE_SITEMAP' => 'Close', |
|
157 | 157 | |
158 | 158 | 'LBL_SEARCH' => 'Search', |
159 | 159 | 'LBL_CLEAR' => 'Clear', |
@@ -166,7 +166,7 @@ discard block |
||
166 | 166 | 'LBL_MY_TEAM_REPORT_CHARTS' => 'My Team Reports', |
167 | 167 | 'LBL_MY_SAVED_REPORT_CHARTS' => 'My Saved Reports', |
168 | 168 | |
169 | - 'LBL_DASHLET_SEARCH' => 'Find SuiteCRM Dashlet', |
|
169 | + 'LBL_DASHLET_SEARCH' => 'Find SuiteCRM Dashlet', |
|
170 | 170 | |
171 | 171 | //ABOUT page |
172 | 172 | 'LBL_VERSION' => 'Version', |
@@ -177,77 +177,77 @@ discard block |
||
177 | 177 | 'LBL_ADD_TERM_COM' => '<P>The interactive user interfaces in modified source and object code versions of this program must display Appropriate Legal Notices, as required under Section 5 of the GNU Affero General Public License version 3. In accordance with Section 7(b) of the GNU General Public License version 3, these Appropriate Legal Notices must retain the display of the "Powered by SugarCRM" logo. If the display of the logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices must display the words "Powered by SugarCRM".</P>', |
178 | 178 | |
179 | 179 | |
180 | - 'LBL_SUGAR_COMMUNITY_EDITION' => 'Sugar Community Edition', |
|
181 | - 'LBL_AND' => "and", |
|
182 | - 'LBL_ARE' => "are", |
|
183 | - 'LBL_TRADEMARKS' => 'trademarks', |
|
184 | - 'LBL_OF' => 'of', |
|
185 | - 'LBL_FOUNDERS' => 'Founders', |
|
186 | - 'LBL_JOIN_SUGAR_COMMUNITY' => 'Join the SuiteCRM Community', |
|
187 | - 'LBL_DETAILS_SUGARFORGE' => 'Collaborate and develop SuiteCRM extensions', |
|
188 | - 'LBL_DETAILS_SUGAREXCHANGE' => 'Buy and sell certified SuiteCRM extensions', |
|
189 | - 'LBL_TRAINING' => 'Training', |
|
190 | - 'LBL_DETAILS_TRAINING' => 'Learn about SuiteCRM using online and interactive learning content', |
|
191 | - 'LBL_FORUMS' => 'Forums', |
|
192 | - 'LBL_DETAILS_FORUMS' => 'Discuss SuiteCRM with expert community users and developers', |
|
193 | - 'LBL_WIKI' => 'Wiki', |
|
194 | - 'LBL_DETAILS_WIKI' => 'Search the knowledge base of user and developer topics', |
|
195 | - 'LBL_DEVSITE' => 'Developer Site', |
|
196 | - 'LBL_DETAILS_DEVSITE' => 'Discover resources, tutorials, and helpful links to get you up to speed on SuiteCRM development', |
|
197 | - 'LBL_GET_SUGARCRM_RSS' => 'Get SuiteCRM RSS', |
|
198 | - 'LBL_SUGARCRM_NEWS' => 'SuiteCRM News', |
|
199 | - 'LBL_SUGARCRM_TRAINING_NEWS' => 'SuiteCRM Training News', |
|
200 | - 'LBL_SUGARCRM_FORUMS' => 'SuiteCRM Forums', |
|
201 | - 'LBL_SUGARFORGE_NEWS' => 'SuiteCRM News', |
|
202 | - 'LBL_ALL_NEWS' => 'All News', |
|
203 | - 'LBL_SOURCE_CODE' => 'Source Code', |
|
180 | + 'LBL_SUGAR_COMMUNITY_EDITION' => 'Sugar Community Edition', |
|
181 | + 'LBL_AND' => "and", |
|
182 | + 'LBL_ARE' => "are", |
|
183 | + 'LBL_TRADEMARKS' => 'trademarks', |
|
184 | + 'LBL_OF' => 'of', |
|
185 | + 'LBL_FOUNDERS' => 'Founders', |
|
186 | + 'LBL_JOIN_SUGAR_COMMUNITY' => 'Join the SuiteCRM Community', |
|
187 | + 'LBL_DETAILS_SUGARFORGE' => 'Collaborate and develop SuiteCRM extensions', |
|
188 | + 'LBL_DETAILS_SUGAREXCHANGE' => 'Buy and sell certified SuiteCRM extensions', |
|
189 | + 'LBL_TRAINING' => 'Training', |
|
190 | + 'LBL_DETAILS_TRAINING' => 'Learn about SuiteCRM using online and interactive learning content', |
|
191 | + 'LBL_FORUMS' => 'Forums', |
|
192 | + 'LBL_DETAILS_FORUMS' => 'Discuss SuiteCRM with expert community users and developers', |
|
193 | + 'LBL_WIKI' => 'Wiki', |
|
194 | + 'LBL_DETAILS_WIKI' => 'Search the knowledge base of user and developer topics', |
|
195 | + 'LBL_DEVSITE' => 'Developer Site', |
|
196 | + 'LBL_DETAILS_DEVSITE' => 'Discover resources, tutorials, and helpful links to get you up to speed on SuiteCRM development', |
|
197 | + 'LBL_GET_SUGARCRM_RSS' => 'Get SuiteCRM RSS', |
|
198 | + 'LBL_SUGARCRM_NEWS' => 'SuiteCRM News', |
|
199 | + 'LBL_SUGARCRM_TRAINING_NEWS' => 'SuiteCRM Training News', |
|
200 | + 'LBL_SUGARCRM_FORUMS' => 'SuiteCRM Forums', |
|
201 | + 'LBL_SUGARFORGE_NEWS' => 'SuiteCRM News', |
|
202 | + 'LBL_ALL_NEWS' => 'All News', |
|
203 | + 'LBL_SOURCE_CODE' => 'Source Code', |
|
204 | 204 | 'LBL_SOURCE_SUGAR' => 'SugarCRM Inc - providers of CE framework', |
205 | - 'LBL_SOURCE_XTEMPLATE' => 'XTemplate - A template engine for PHP created by Barnabás Debreceni', |
|
206 | - 'LBL_SOURCE_NUSOAP' => 'NuSOAP - A set of PHP classes that allow developers to create and consume web services created by NuSphere Corporation and Dietrich Ayala', |
|
207 | - 'LBL_SOURCE_JSCALENDAR' => 'JS Calendar - A calendar for entering dates created by Mihai Bazon', |
|
208 | - 'LBL_SOURCE_PHPPDF' => 'PHP PDF - A library for creating PDF documents created by Wayne Munro', |
|
209 | - 'LBL_SOURCE_HTTP_WEBDAV_SERVER' => 'HTTP_WebDAV_Server - A WebDAV Server Implementation in PHP.', |
|
210 | - 'LBL_SOURCE_PCLZIP' => 'PclZip - library offers compression and extraction functions for Zip formatted archives by Vincent Blavet', |
|
211 | - 'LBL_SOURCE_SMARTY' => 'Smarty - A template engine for PHP.', |
|
212 | - 'LBL_SOURCE_YAHOO_UI_LIB' => 'Yahoo! User Interface Library - The UI Library Utilities facilitate the implementation of rich client-side features.', |
|
213 | - 'LBL_SOURCE_PHPMAILER' => 'PHPMailer - A full featured email transfer class for PHP', |
|
214 | - 'LBL_SOURCE_JSHRINK' => 'JShrink - A Javascript minifier written in PHP', |
|
215 | - 'LBL_SOURCE_CRYPT_BLOWFISH' => 'Crypt_Blowfish - Allows for quick two-way blowfish encryption without requiring the MCrypt PHP extension.', |
|
216 | - 'LBL_SOURCE_XML_HTMLSAX3' => 'XML_HTMLSax3 - A SAX parser for HTML and other badly formed XML documents', |
|
217 | - 'LBL_SOURCE_YAHOO_UI_LIB_EXT' => 'Yahoo! UI Extensions Library - Extensions to the Yahoo! User Interface Library by Jack Slocum', |
|
218 | - 'LBL_SOURCE_SWFOBJECT' => 'SWFObject - Javascript Flash Player detection and embed script.', |
|
219 | - 'LBL_SOURCE_TINYMCE' => 'TinyMCE - A WYSIWYG editor control for web browsers that enables the user to edit HTML contents', |
|
220 | - 'LBL_SOURCE_EXT' => 'Ext - A client-side JavaScript framework for building web applications.', |
|
221 | - 'LBL_SOURCE_RECAPTCHA' => 'reCAPTCHA - A free CAPTCHA service that helps to digitize books, newspapers and old time radio shows.', |
|
222 | - 'LBL_SOURCE_TCPDF' => 'TCPDF - A PHP class for generating PDF documents.', |
|
223 | - 'LBL_SOURCE_CSSMIN' => 'CssMin - A css parser and minifier.', |
|
224 | - 'LBL_SOURCE_PHPSAML' => 'PHP-SAML - A simple SAML toolkit for PHP.', |
|
225 | - 'LBL_SOURCE_ISCROLL' => 'iScroll - The overflow:scroll for mobile webkit. Native scrolling inside a fixed width/height element.', |
|
226 | - 'LBL_SOURCE_FLASHCANVAS' => 'FlashCanvas - FlashCanvas is a JavaScript library which adds the HTML5 Canvas support to Internet Explorer. It renders shapes and images via Flash drawing API. It supports almost all Canvas APIs and, in many cases, runs faster than other similar libraries which use VML or Silverlight.', |
|
227 | - 'LBL_SOURCE_JIT' => 'JavaScript InfoVis Toolkit - The JavaScript InfoVis Toolkit provides tools for creating Interactive Data Visualizations for the Web.', |
|
228 | - 'LBL_SOURCE_ZEND' => 'Zend Framework - An open source, object oriented web application framework for PHP5.', |
|
229 | - 'LBL_SOURCE_PARSECSV' => 'parseCSV - CSV data parser for PHP', |
|
230 | - 'LBL_SOURCE_PHPJS' => 'php.js - Use PHP functions in JavaScript', |
|
231 | - 'LBL_SOURCE_PHPSQL' => 'PHP SQL Parser', |
|
232 | - 'LBL_SOURCE_HTMLPURIFIER' => 'HTML Purifier - A standards-compliant HTML filtering library.', |
|
233 | - 'LBL_SOURCE_XHPROF' => 'XHProf - A function-level hierarchical profiler for PHP.', |
|
234 | - 'LBL_SOURCE_ELASTICA' => 'Elastica - PHP client for the distributed search engine elasticsearch ', |
|
235 | - 'LBL_SOURCE_FACEBOOKSDK' => 'Facebook PHP SDK', |
|
236 | - 'LBL_SOURCE_JQUERY' => 'jQuery - jQuery is a fast, small, and feature-rich JavaScript library.', |
|
237 | - 'LBL_SOURCE_JQUERY_UI' => 'jQuery UI - jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.', |
|
238 | - 'LBL_SOURCE_OVERLIB' => 'OverlibMWS - The overlibmws library uses javascript for DHTML popups that serve as informational and navigational aids for websites.', |
|
205 | + 'LBL_SOURCE_XTEMPLATE' => 'XTemplate - A template engine for PHP created by Barnabás Debreceni', |
|
206 | + 'LBL_SOURCE_NUSOAP' => 'NuSOAP - A set of PHP classes that allow developers to create and consume web services created by NuSphere Corporation and Dietrich Ayala', |
|
207 | + 'LBL_SOURCE_JSCALENDAR' => 'JS Calendar - A calendar for entering dates created by Mihai Bazon', |
|
208 | + 'LBL_SOURCE_PHPPDF' => 'PHP PDF - A library for creating PDF documents created by Wayne Munro', |
|
209 | + 'LBL_SOURCE_HTTP_WEBDAV_SERVER' => 'HTTP_WebDAV_Server - A WebDAV Server Implementation in PHP.', |
|
210 | + 'LBL_SOURCE_PCLZIP' => 'PclZip - library offers compression and extraction functions for Zip formatted archives by Vincent Blavet', |
|
211 | + 'LBL_SOURCE_SMARTY' => 'Smarty - A template engine for PHP.', |
|
212 | + 'LBL_SOURCE_YAHOO_UI_LIB' => 'Yahoo! User Interface Library - The UI Library Utilities facilitate the implementation of rich client-side features.', |
|
213 | + 'LBL_SOURCE_PHPMAILER' => 'PHPMailer - A full featured email transfer class for PHP', |
|
214 | + 'LBL_SOURCE_JSHRINK' => 'JShrink - A Javascript minifier written in PHP', |
|
215 | + 'LBL_SOURCE_CRYPT_BLOWFISH' => 'Crypt_Blowfish - Allows for quick two-way blowfish encryption without requiring the MCrypt PHP extension.', |
|
216 | + 'LBL_SOURCE_XML_HTMLSAX3' => 'XML_HTMLSax3 - A SAX parser for HTML and other badly formed XML documents', |
|
217 | + 'LBL_SOURCE_YAHOO_UI_LIB_EXT' => 'Yahoo! UI Extensions Library - Extensions to the Yahoo! User Interface Library by Jack Slocum', |
|
218 | + 'LBL_SOURCE_SWFOBJECT' => 'SWFObject - Javascript Flash Player detection and embed script.', |
|
219 | + 'LBL_SOURCE_TINYMCE' => 'TinyMCE - A WYSIWYG editor control for web browsers that enables the user to edit HTML contents', |
|
220 | + 'LBL_SOURCE_EXT' => 'Ext - A client-side JavaScript framework for building web applications.', |
|
221 | + 'LBL_SOURCE_RECAPTCHA' => 'reCAPTCHA - A free CAPTCHA service that helps to digitize books, newspapers and old time radio shows.', |
|
222 | + 'LBL_SOURCE_TCPDF' => 'TCPDF - A PHP class for generating PDF documents.', |
|
223 | + 'LBL_SOURCE_CSSMIN' => 'CssMin - A css parser and minifier.', |
|
224 | + 'LBL_SOURCE_PHPSAML' => 'PHP-SAML - A simple SAML toolkit for PHP.', |
|
225 | + 'LBL_SOURCE_ISCROLL' => 'iScroll - The overflow:scroll for mobile webkit. Native scrolling inside a fixed width/height element.', |
|
226 | + 'LBL_SOURCE_FLASHCANVAS' => 'FlashCanvas - FlashCanvas is a JavaScript library which adds the HTML5 Canvas support to Internet Explorer. It renders shapes and images via Flash drawing API. It supports almost all Canvas APIs and, in many cases, runs faster than other similar libraries which use VML or Silverlight.', |
|
227 | + 'LBL_SOURCE_JIT' => 'JavaScript InfoVis Toolkit - The JavaScript InfoVis Toolkit provides tools for creating Interactive Data Visualizations for the Web.', |
|
228 | + 'LBL_SOURCE_ZEND' => 'Zend Framework - An open source, object oriented web application framework for PHP5.', |
|
229 | + 'LBL_SOURCE_PARSECSV' => 'parseCSV - CSV data parser for PHP', |
|
230 | + 'LBL_SOURCE_PHPJS' => 'php.js - Use PHP functions in JavaScript', |
|
231 | + 'LBL_SOURCE_PHPSQL' => 'PHP SQL Parser', |
|
232 | + 'LBL_SOURCE_HTMLPURIFIER' => 'HTML Purifier - A standards-compliant HTML filtering library.', |
|
233 | + 'LBL_SOURCE_XHPROF' => 'XHProf - A function-level hierarchical profiler for PHP.', |
|
234 | + 'LBL_SOURCE_ELASTICA' => 'Elastica - PHP client for the distributed search engine elasticsearch ', |
|
235 | + 'LBL_SOURCE_FACEBOOKSDK' => 'Facebook PHP SDK', |
|
236 | + 'LBL_SOURCE_JQUERY' => 'jQuery - jQuery is a fast, small, and feature-rich JavaScript library.', |
|
237 | + 'LBL_SOURCE_JQUERY_UI' => 'jQuery UI - jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.', |
|
238 | + 'LBL_SOURCE_OVERLIB' => 'OverlibMWS - The overlibmws library uses javascript for DHTML popups that serve as informational and navigational aids for websites.', |
|
239 | 239 | |
240 | - 'LBL_DASHLET_TITLE' => 'My Sites', |
|
241 | - 'LBL_DASHLET_OPT_TITLE' => 'Title', |
|
242 | - 'LBL_DASHLET_INCORRECT_URL' => 'Incorrect website location is specified', |
|
243 | - 'LBL_DASHLET_OPT_URL' => 'Website Location', |
|
244 | - 'LBL_DASHLET_OPT_HEIGHT' => 'Dashlet Height (in pixels)', |
|
245 | - 'LBL_DASHLET_SUGAR_NEWS' => 'SuiteCRM News', |
|
246 | - 'LBL_DASHLET_DISCOVER_SUGAR_PRO' => 'Discover SuiteCRM', |
|
247 | - 'LBL_POWERED_BY_SUGAR' => 'Powered By SugarCRM' /*for 508 compliance fix*/, |
|
248 | - 'LBL_MORE_DETAIL' => 'More Detail' /*for 508 compliance fix*/, |
|
249 | - 'LBL_BASIC_SEARCH' => 'Basic Search' /*for 508 compliance fix*/, |
|
250 | - 'LBL_ADVANCED_SEARCH' => 'Advanced Search' /*for 508 compliance fix*/, |
|
240 | + 'LBL_DASHLET_TITLE' => 'My Sites', |
|
241 | + 'LBL_DASHLET_OPT_TITLE' => 'Title', |
|
242 | + 'LBL_DASHLET_INCORRECT_URL' => 'Incorrect website location is specified', |
|
243 | + 'LBL_DASHLET_OPT_URL' => 'Website Location', |
|
244 | + 'LBL_DASHLET_OPT_HEIGHT' => 'Dashlet Height (in pixels)', |
|
245 | + 'LBL_DASHLET_SUGAR_NEWS' => 'SuiteCRM News', |
|
246 | + 'LBL_DASHLET_DISCOVER_SUGAR_PRO' => 'Discover SuiteCRM', |
|
247 | + 'LBL_POWERED_BY_SUGAR' => 'Powered By SugarCRM' /*for 508 compliance fix*/, |
|
248 | + 'LBL_MORE_DETAIL' => 'More Detail' /*for 508 compliance fix*/, |
|
249 | + 'LBL_BASIC_SEARCH' => 'Basic Search' /*for 508 compliance fix*/, |
|
250 | + 'LBL_ADVANCED_SEARCH' => 'Advanced Search' /*for 508 compliance fix*/, |
|
251 | 251 | 'LBL_TOUR_HOME' => 'Home Icon', |
252 | 252 | 'LBL_TOUR_HOME_DESCRIPTION' => 'Quickly get back to your Home Page dashboard in one click.', |
253 | 253 | 'LBL_TOUR_MODULES' => 'Modules', |
@@ -69,93 +69,93 @@ discard block |
||
69 | 69 | $this->cache_display = sugar_cached('modules/unified_search_modules_display.php'); |
70 | 70 | } |
71 | 71 | |
72 | - function getDropDownDiv($tpl = 'modules/Home/UnifiedSearchAdvanced.tpl') { |
|
73 | - global $app_list_strings, $app_strings; |
|
72 | + function getDropDownDiv($tpl = 'modules/Home/UnifiedSearchAdvanced.tpl') { |
|
73 | + global $app_list_strings, $app_strings; |
|
74 | 74 | |
75 | - if(!file_exists($this->cache_search)) |
|
76 | - { |
|
77 | - $this->buildCache(); |
|
78 | - } |
|
75 | + if(!file_exists($this->cache_search)) |
|
76 | + { |
|
77 | + $this->buildCache(); |
|
78 | + } |
|
79 | 79 | |
80 | - $unified_search_modules_display = $this->getUnifiedSearchModulesDisplay(); |
|
80 | + $unified_search_modules_display = $this->getUnifiedSearchModulesDisplay(); |
|
81 | 81 | |
82 | - global $mod_strings, $modListHeader, $app_list_strings, $current_user, $app_strings, $beanList; |
|
83 | - $users_modules = $current_user->getPreference('globalSearch', 'search'); |
|
82 | + global $mod_strings, $modListHeader, $app_list_strings, $current_user, $app_strings, $beanList; |
|
83 | + $users_modules = $current_user->getPreference('globalSearch', 'search'); |
|
84 | 84 | |
85 | - // preferences are empty, select all |
|
86 | - if(empty($users_modules)) { |
|
87 | - $users_modules = array(); |
|
88 | - foreach($unified_search_modules_display as $module=>$data) { |
|
89 | - if (!empty($data['visible']) ) { |
|
85 | + // preferences are empty, select all |
|
86 | + if(empty($users_modules)) { |
|
87 | + $users_modules = array(); |
|
88 | + foreach($unified_search_modules_display as $module=>$data) { |
|
89 | + if (!empty($data['visible']) ) { |
|
90 | 90 | $users_modules[$module] = $beanList[$module]; |
91 | 91 | } |
92 | - } |
|
93 | - $current_user->setPreference('globalSearch', $users_modules, 0, 'search'); |
|
94 | - } |
|
92 | + } |
|
93 | + $current_user->setPreference('globalSearch', $users_modules, 0, 'search'); |
|
94 | + } |
|
95 | 95 | |
96 | - $sugar_smarty = new Sugar_Smarty(); |
|
96 | + $sugar_smarty = new Sugar_Smarty(); |
|
97 | 97 | |
98 | - $modules_to_search = array(); |
|
98 | + $modules_to_search = array(); |
|
99 | 99 | |
100 | - foreach($users_modules as $key=>$module) |
|
101 | - { |
|
100 | + foreach($users_modules as $key=>$module) |
|
101 | + { |
|
102 | 102 | if(ACLController::checkAccess($key, 'list', true)) |
103 | 103 | { |
104 | 104 | $modules_to_search[$key]['checked'] = true; |
105 | 105 | } |
106 | - } |
|
107 | - |
|
108 | - if(!empty($this->query_string)) |
|
109 | - { |
|
110 | - $sugar_smarty->assign('query_string', securexss($this->query_string)); |
|
111 | - } else { |
|
112 | - $sugar_smarty->assign('query_string', ''); |
|
113 | - } |
|
114 | - |
|
115 | - $sugar_smarty->assign('MOD', return_module_language($GLOBALS['current_language'], 'Administration')); |
|
116 | - $sugar_smarty->assign('APP', $app_strings); |
|
117 | - $sugar_smarty->assign('USE_SEARCH_GIF', 0); |
|
118 | - $sugar_smarty->assign('LBL_SEARCH_BUTTON_LABEL', $app_strings['LBL_SEARCH_BUTTON_LABEL']); |
|
119 | - |
|
120 | - $json_enabled = array(); |
|
121 | - $json_disabled = array(); |
|
122 | - |
|
123 | - //Now add the rest of the modules that are searchable via Global Search settings |
|
124 | - foreach($unified_search_modules_display as $module=>$data) |
|
125 | - { |
|
126 | - if(!isset($modules_to_search[$module]) && $data['visible'] && ACLController::checkAccess($module, 'list', true)) |
|
127 | - { |
|
128 | - $modules_to_search[$module]['checked'] = false; |
|
129 | - } else if (isset($modules_to_search[$module]) && !$data['visible']) { |
|
130 | - unset($modules_to_search[$module]); |
|
131 | - } |
|
132 | - } |
|
133 | - |
|
134 | - //Create the two lists (doing it this way preserves the user's ordering choice for enabled modules) |
|
135 | - foreach($modules_to_search as $module=>$data) |
|
136 | - { |
|
137 | - $label = isset($app_list_strings['moduleList'][$module]) ? $app_list_strings['moduleList'][$module] : $module; |
|
138 | - if(!empty($data['checked'])) |
|
139 | - { |
|
140 | - $json_enabled[] = array("module" => $module, 'label' => $label); |
|
141 | - } else { |
|
142 | - $json_disabled[] = array("module" => $module, 'label' => $label); |
|
143 | - } |
|
144 | - } |
|
145 | - |
|
146 | - $sugar_smarty->assign('enabled_modules', json_encode($json_enabled)); |
|
147 | - $sugar_smarty->assign('disabled_modules', json_encode($json_disabled)); |
|
148 | - |
|
149 | - $showDiv = $current_user->getPreference('showGSDiv', 'search'); |
|
150 | - if(!isset($showDiv)) |
|
151 | - { |
|
152 | - $showDiv = 'no'; |
|
153 | - } |
|
154 | - |
|
155 | - $sugar_smarty->assign('SHOWGSDIV', $showDiv); |
|
156 | - $sugar_smarty->debugging = true; |
|
157 | - return $sugar_smarty->fetch($tpl); |
|
158 | - } |
|
106 | + } |
|
107 | + |
|
108 | + if(!empty($this->query_string)) |
|
109 | + { |
|
110 | + $sugar_smarty->assign('query_string', securexss($this->query_string)); |
|
111 | + } else { |
|
112 | + $sugar_smarty->assign('query_string', ''); |
|
113 | + } |
|
114 | + |
|
115 | + $sugar_smarty->assign('MOD', return_module_language($GLOBALS['current_language'], 'Administration')); |
|
116 | + $sugar_smarty->assign('APP', $app_strings); |
|
117 | + $sugar_smarty->assign('USE_SEARCH_GIF', 0); |
|
118 | + $sugar_smarty->assign('LBL_SEARCH_BUTTON_LABEL', $app_strings['LBL_SEARCH_BUTTON_LABEL']); |
|
119 | + |
|
120 | + $json_enabled = array(); |
|
121 | + $json_disabled = array(); |
|
122 | + |
|
123 | + //Now add the rest of the modules that are searchable via Global Search settings |
|
124 | + foreach($unified_search_modules_display as $module=>$data) |
|
125 | + { |
|
126 | + if(!isset($modules_to_search[$module]) && $data['visible'] && ACLController::checkAccess($module, 'list', true)) |
|
127 | + { |
|
128 | + $modules_to_search[$module]['checked'] = false; |
|
129 | + } else if (isset($modules_to_search[$module]) && !$data['visible']) { |
|
130 | + unset($modules_to_search[$module]); |
|
131 | + } |
|
132 | + } |
|
133 | + |
|
134 | + //Create the two lists (doing it this way preserves the user's ordering choice for enabled modules) |
|
135 | + foreach($modules_to_search as $module=>$data) |
|
136 | + { |
|
137 | + $label = isset($app_list_strings['moduleList'][$module]) ? $app_list_strings['moduleList'][$module] : $module; |
|
138 | + if(!empty($data['checked'])) |
|
139 | + { |
|
140 | + $json_enabled[] = array("module" => $module, 'label' => $label); |
|
141 | + } else { |
|
142 | + $json_disabled[] = array("module" => $module, 'label' => $label); |
|
143 | + } |
|
144 | + } |
|
145 | + |
|
146 | + $sugar_smarty->assign('enabled_modules', json_encode($json_enabled)); |
|
147 | + $sugar_smarty->assign('disabled_modules', json_encode($json_disabled)); |
|
148 | + |
|
149 | + $showDiv = $current_user->getPreference('showGSDiv', 'search'); |
|
150 | + if(!isset($showDiv)) |
|
151 | + { |
|
152 | + $showDiv = 'no'; |
|
153 | + } |
|
154 | + |
|
155 | + $sugar_smarty->assign('SHOWGSDIV', $showDiv); |
|
156 | + $sugar_smarty->debugging = true; |
|
157 | + return $sugar_smarty->fetch($tpl); |
|
158 | + } |
|
159 | 159 | |
160 | 160 | |
161 | 161 | /** |
@@ -168,70 +168,70 @@ discard block |
||
168 | 168 | * |
169 | 169 | * |
170 | 170 | */ |
171 | - function search() { |
|
171 | + function search() { |
|
172 | 172 | |
173 | 173 | $unified_search_modules = $this->getUnifiedSearchModules(); |
174 | - $unified_search_modules_display = $this->getUnifiedSearchModulesDisplay(); |
|
174 | + $unified_search_modules_display = $this->getUnifiedSearchModulesDisplay(); |
|
175 | 175 | |
176 | 176 | |
177 | - require_once 'include/ListView/ListViewSmarty.php'; |
|
177 | + require_once 'include/ListView/ListViewSmarty.php'; |
|
178 | 178 | |
179 | - global $modListHeader, $beanList, $beanFiles, $current_language, $app_strings, $current_user, $mod_strings; |
|
180 | - $home_mod_strings = return_module_language($current_language, 'Home'); |
|
179 | + global $modListHeader, $beanList, $beanFiles, $current_language, $app_strings, $current_user, $mod_strings; |
|
180 | + $home_mod_strings = return_module_language($current_language, 'Home'); |
|
181 | 181 | |
182 | - $this->query_string = $GLOBALS['db']->quote(securexss(from_html(clean_string($this->query_string, 'UNIFIED_SEARCH')))); |
|
182 | + $this->query_string = $GLOBALS['db']->quote(securexss(from_html(clean_string($this->query_string, 'UNIFIED_SEARCH')))); |
|
183 | 183 | |
184 | - if(!empty($_REQUEST['advanced']) && $_REQUEST['advanced'] != 'false') { |
|
185 | - $modules_to_search = array(); |
|
186 | - if(!empty($_REQUEST['search_modules'])) |
|
187 | - { |
|
188 | - foreach(explode (',', $_REQUEST['search_modules'] ) as $key) |
|
189 | - { |
|
184 | + if(!empty($_REQUEST['advanced']) && $_REQUEST['advanced'] != 'false') { |
|
185 | + $modules_to_search = array(); |
|
186 | + if(!empty($_REQUEST['search_modules'])) |
|
187 | + { |
|
188 | + foreach(explode (',', $_REQUEST['search_modules'] ) as $key) |
|
189 | + { |
|
190 | 190 | if (isset($unified_search_modules_display[$key]) && !empty($unified_search_modules_display[$key]['visible'])) |
191 | 191 | { |
192 | 192 | $modules_to_search[$key] = $beanList[$key]; |
193 | 193 | } |
194 | - } |
|
195 | - } |
|
196 | - |
|
197 | - $current_user->setPreference('showGSDiv', isset($_REQUEST['showGSDiv']) ? $_REQUEST['showGSDiv'] : 'no', 0, 'search'); |
|
198 | - $current_user->setPreference('globalSearch', $modules_to_search, 0, 'search'); // save selections to user preference |
|
199 | - } else { |
|
200 | - $users_modules = $current_user->getPreference('globalSearch', 'search'); |
|
201 | - $modules_to_search = array(); |
|
202 | - |
|
203 | - if(!empty($users_modules)) { |
|
204 | - // use user's previous selections |
|
205 | - foreach ( $users_modules as $key => $value ) { |
|
206 | - if (isset($unified_search_modules_display[$key]) && !empty($unified_search_modules_display[$key]['visible'])) { |
|
207 | - $modules_to_search[$key] = $beanList[$key]; |
|
208 | - } |
|
209 | - } |
|
210 | - } else { |
|
211 | - foreach($unified_search_modules_display as $module=>$data) { |
|
212 | - if (!empty($data['visible']) ) { |
|
213 | - $modules_to_search[$module] = $beanList[$module]; |
|
214 | - } |
|
215 | - } |
|
216 | - } |
|
217 | - $current_user->setPreference('globalSearch', $modules_to_search, 'search'); |
|
218 | - } |
|
219 | - |
|
220 | - |
|
221 | - $templateFile = 'modules/Home/UnifiedSearchAdvancedForm.tpl'; |
|
222 | - if(file_exists('custom/' . $templateFile)) |
|
223 | - { |
|
224 | - $templateFile = 'custom/'.$templateFile; |
|
225 | - } |
|
226 | - |
|
227 | - echo $this->getDropDownDiv($templateFile); |
|
228 | - |
|
229 | - $module_results = array(); |
|
230 | - $module_counts = array(); |
|
231 | - $has_results = false; |
|
232 | - |
|
233 | - if(!empty($this->query_string)) { |
|
234 | - foreach($modules_to_search as $moduleName => $beanName) { |
|
194 | + } |
|
195 | + } |
|
196 | + |
|
197 | + $current_user->setPreference('showGSDiv', isset($_REQUEST['showGSDiv']) ? $_REQUEST['showGSDiv'] : 'no', 0, 'search'); |
|
198 | + $current_user->setPreference('globalSearch', $modules_to_search, 0, 'search'); // save selections to user preference |
|
199 | + } else { |
|
200 | + $users_modules = $current_user->getPreference('globalSearch', 'search'); |
|
201 | + $modules_to_search = array(); |
|
202 | + |
|
203 | + if(!empty($users_modules)) { |
|
204 | + // use user's previous selections |
|
205 | + foreach ( $users_modules as $key => $value ) { |
|
206 | + if (isset($unified_search_modules_display[$key]) && !empty($unified_search_modules_display[$key]['visible'])) { |
|
207 | + $modules_to_search[$key] = $beanList[$key]; |
|
208 | + } |
|
209 | + } |
|
210 | + } else { |
|
211 | + foreach($unified_search_modules_display as $module=>$data) { |
|
212 | + if (!empty($data['visible']) ) { |
|
213 | + $modules_to_search[$module] = $beanList[$module]; |
|
214 | + } |
|
215 | + } |
|
216 | + } |
|
217 | + $current_user->setPreference('globalSearch', $modules_to_search, 'search'); |
|
218 | + } |
|
219 | + |
|
220 | + |
|
221 | + $templateFile = 'modules/Home/UnifiedSearchAdvancedForm.tpl'; |
|
222 | + if(file_exists('custom/' . $templateFile)) |
|
223 | + { |
|
224 | + $templateFile = 'custom/'.$templateFile; |
|
225 | + } |
|
226 | + |
|
227 | + echo $this->getDropDownDiv($templateFile); |
|
228 | + |
|
229 | + $module_results = array(); |
|
230 | + $module_counts = array(); |
|
231 | + $has_results = false; |
|
232 | + |
|
233 | + if(!empty($this->query_string)) { |
|
234 | + foreach($modules_to_search as $moduleName => $beanName) { |
|
235 | 235 | require_once $beanFiles[$beanName] ; |
236 | 236 | $seed = new $beanName(); |
237 | 237 | |
@@ -241,7 +241,7 @@ discard block |
||
241 | 241 | |
242 | 242 | //retrieve the original list view defs and store for processing in case of custom layout changes |
243 | 243 | require('modules/'.$seed->module_dir.'/metadata/listviewdefs.php'); |
244 | - $orig_listViewDefs = $listViewDefs; |
|
244 | + $orig_listViewDefs = $listViewDefs; |
|
245 | 245 | |
246 | 246 | if(file_exists('custom/modules/'.$seed->module_dir.'/metadata/listviewdefs.php')) |
247 | 247 | { |
@@ -253,20 +253,20 @@ discard block |
||
253 | 253 | continue; |
254 | 254 | } |
255 | 255 | |
256 | - $unifiedSearchFields = array () ; |
|
256 | + $unifiedSearchFields = array () ; |
|
257 | 257 | $innerJoins = array(); |
258 | 258 | foreach ( $unified_search_modules[ $moduleName ]['fields'] as $field=>$def ) |
259 | 259 | { |
260 | - $listViewCheckField = strtoupper($field); |
|
261 | - //check to see if the field is in listview defs |
|
262 | - if ( empty($listViewDefs[$seed->module_dir][$listViewCheckField]['default']) ) { |
|
263 | - //check to see if field is in original list view defs (in case we are using custom layout defs) |
|
264 | - if (!empty($orig_listViewDefs[$seed->module_dir][$listViewCheckField]['default']) ) { |
|
265 | - //if we are here then the layout has been customized, but the field is still needed for query creation |
|
266 | - $listViewDefs[$seed->module_dir][$listViewCheckField] = $orig_listViewDefs[$seed->module_dir][$listViewCheckField]; |
|
267 | - } |
|
260 | + $listViewCheckField = strtoupper($field); |
|
261 | + //check to see if the field is in listview defs |
|
262 | + if ( empty($listViewDefs[$seed->module_dir][$listViewCheckField]['default']) ) { |
|
263 | + //check to see if field is in original list view defs (in case we are using custom layout defs) |
|
264 | + if (!empty($orig_listViewDefs[$seed->module_dir][$listViewCheckField]['default']) ) { |
|
265 | + //if we are here then the layout has been customized, but the field is still needed for query creation |
|
266 | + $listViewDefs[$seed->module_dir][$listViewCheckField] = $orig_listViewDefs[$seed->module_dir][$listViewCheckField]; |
|
267 | + } |
|
268 | 268 | |
269 | - } |
|
269 | + } |
|
270 | 270 | |
271 | 271 | //bug: 34125 we might want to try to use the LEFT JOIN operator instead of the INNER JOIN in the case we are |
272 | 272 | //joining against a field that has not been populated. |
@@ -300,7 +300,7 @@ discard block |
||
300 | 300 | require_once $beanFiles[$beanName] ; |
301 | 301 | $seed = new $beanName(); |
302 | 302 | |
303 | - require_once $this->searchFormPath; |
|
303 | + require_once $this->searchFormPath; |
|
304 | 304 | $searchForm = new $this->searchFormClass ( $seed, $moduleName ) ; |
305 | 305 | |
306 | 306 | $searchForm->setup (array ( $moduleName => array() ) , $unifiedSearchFields , '' , 'saved_views' /* hack to avoid setup doing further unwanted processing */ ) ; |
@@ -309,11 +309,11 @@ discard block |
||
309 | 309 | $params = array('custom_select' => ""); |
310 | 310 | foreach($innerJoins as $field=>$def) { |
311 | 311 | if (isset ($def['db_field'])) { |
312 | - foreach($def['db_field'] as $dbfield) |
|
313 | - $where_clauses[] = $dbfield . " LIKE '" . $this->query_string . "%'"; |
|
314 | - $params['custom_select'] .= ", $dbfield"; |
|
315 | - $params['distinct'] = true; |
|
316 | - //$filterFields[$dbfield] = $dbfield; |
|
312 | + foreach($def['db_field'] as $dbfield) |
|
313 | + $where_clauses[] = $dbfield . " LIKE '" . $this->query_string . "%'"; |
|
314 | + $params['custom_select'] .= ", $dbfield"; |
|
315 | + $params['distinct'] = true; |
|
316 | + //$filterFields[$dbfield] = $dbfield; |
|
317 | 317 | } |
318 | 318 | } |
319 | 319 | |
@@ -339,9 +339,9 @@ discard block |
||
339 | 339 | |
340 | 340 | if(count($displayColumns) > 0) |
341 | 341 | { |
342 | - $lv->displayColumns = $displayColumns; |
|
342 | + $lv->displayColumns = $displayColumns; |
|
343 | 343 | } else { |
344 | - $lv->displayColumns = $listViewDefs[$seed->module_dir]; |
|
344 | + $lv->displayColumns = $listViewDefs[$seed->module_dir]; |
|
345 | 345 | } |
346 | 346 | |
347 | 347 | $lv->export = false; |
@@ -366,56 +366,56 @@ discard block |
||
366 | 366 | $module_results[$moduleName] .= $lv->display(false, false); |
367 | 367 | } |
368 | 368 | |
369 | - } |
|
370 | - } |
|
369 | + } |
|
370 | + } |
|
371 | 371 | |
372 | - if($has_results) { |
|
373 | - foreach($module_counts as $name=>$value) { |
|
374 | - echo $module_results[$name]; |
|
375 | - } |
|
376 | - } else if(empty($_REQUEST['form_only'])) { |
|
377 | - echo $home_mod_strings['LBL_NO_RESULTS']; |
|
378 | - echo $home_mod_strings['LBL_NO_RESULTS_TIPS']; |
|
379 | - } |
|
372 | + if($has_results) { |
|
373 | + foreach($module_counts as $name=>$value) { |
|
374 | + echo $module_results[$name]; |
|
375 | + } |
|
376 | + } else if(empty($_REQUEST['form_only'])) { |
|
377 | + echo $home_mod_strings['LBL_NO_RESULTS']; |
|
378 | + echo $home_mod_strings['LBL_NO_RESULTS_TIPS']; |
|
379 | + } |
|
380 | 380 | |
381 | - } |
|
381 | + } |
|
382 | 382 | |
383 | - function buildCache() |
|
384 | - { |
|
383 | + function buildCache() |
|
384 | + { |
|
385 | 385 | |
386 | - global $beanList, $beanFiles, $dictionary; |
|
386 | + global $beanList, $beanFiles, $dictionary; |
|
387 | 387 | |
388 | - $supported_modules = array(); |
|
388 | + $supported_modules = array(); |
|
389 | 389 | |
390 | - foreach($beanList as $moduleName=>$beanName) |
|
391 | - { |
|
392 | - if (!isset($beanFiles[$beanName])) |
|
393 | - continue; |
|
390 | + foreach($beanList as $moduleName=>$beanName) |
|
391 | + { |
|
392 | + if (!isset($beanFiles[$beanName])) |
|
393 | + continue; |
|
394 | 394 | |
395 | - $beanName = BeanFactory::getObjectName($moduleName); |
|
396 | - $manager = new VardefManager ( ); |
|
397 | - $manager->loadVardef( $moduleName , $beanName ) ; |
|
395 | + $beanName = BeanFactory::getObjectName($moduleName); |
|
396 | + $manager = new VardefManager ( ); |
|
397 | + $manager->loadVardef( $moduleName , $beanName ) ; |
|
398 | 398 | |
399 | - // obtain the field definitions used by generateSearchWhere (duplicate code in view.list.php) |
|
400 | - if(file_exists('custom/modules/'.$moduleName.'/metadata/metafiles.php')){ |
|
399 | + // obtain the field definitions used by generateSearchWhere (duplicate code in view.list.php) |
|
400 | + if(file_exists('custom/modules/'.$moduleName.'/metadata/metafiles.php')){ |
|
401 | 401 | require('custom/modules/'.$moduleName.'/metadata/metafiles.php'); |
402 | 402 | }elseif(file_exists('modules/'.$moduleName.'/metadata/metafiles.php')){ |
403 | 403 | require('modules/'.$moduleName.'/metadata/metafiles.php'); |
404 | 404 | } |
405 | 405 | |
406 | 406 | |
407 | - if(!empty($metafiles[$moduleName]['searchfields'])) |
|
408 | - { |
|
409 | - require $metafiles[$moduleName]['searchfields'] ; |
|
410 | - } else if(file_exists("modules/{$moduleName}/metadata/SearchFields.php")) { |
|
411 | - require "modules/{$moduleName}/metadata/SearchFields.php" ; |
|
412 | - } |
|
407 | + if(!empty($metafiles[$moduleName]['searchfields'])) |
|
408 | + { |
|
409 | + require $metafiles[$moduleName]['searchfields'] ; |
|
410 | + } else if(file_exists("modules/{$moduleName}/metadata/SearchFields.php")) { |
|
411 | + require "modules/{$moduleName}/metadata/SearchFields.php" ; |
|
412 | + } |
|
413 | 413 | |
414 | - //Load custom SearchFields.php if it exists |
|
415 | - if(file_exists("custom/modules/{$moduleName}/metadata/SearchFields.php")) |
|
416 | - { |
|
417 | - require "custom/modules/{$moduleName}/metadata/SearchFields.php" ; |
|
418 | - } |
|
414 | + //Load custom SearchFields.php if it exists |
|
415 | + if(file_exists("custom/modules/{$moduleName}/metadata/SearchFields.php")) |
|
416 | + { |
|
417 | + require "custom/modules/{$moduleName}/metadata/SearchFields.php" ; |
|
418 | + } |
|
419 | 419 | |
420 | 420 | //If there are $searchFields are empty, just continue, there are no search fields defined for the module |
421 | 421 | if(empty($searchFields[$moduleName])) |
@@ -423,34 +423,34 @@ discard block |
||
423 | 423 | continue; |
424 | 424 | } |
425 | 425 | |
426 | - $isCustomModule = preg_match('/^([a-z0-9]{1,5})_([a-z0-9_]+)$/i' , $moduleName); |
|
427 | - |
|
428 | - //If the bean supports unified search or if it's a custom module bean and unified search is not defined |
|
429 | - if(!empty($dictionary[$beanName]['unified_search']) || $isCustomModule) |
|
430 | - { |
|
431 | - $fields = array(); |
|
432 | - foreach ( $dictionary [ $beanName ][ 'fields' ] as $field => $def ) |
|
433 | - { |
|
434 | - // We cannot enable or disable unified_search for email in the vardefs as we don't actually have a vardef entry for 'email' |
|
435 | - // the searchFields entry for 'email' doesn't correspond to any vardef entry. Instead it contains SQL to directly perform the search. |
|
436 | - // So as a proxy we allow any field in the vardefs that has a name starting with 'email...' to be tagged with the 'unified_search' parameter |
|
437 | - |
|
438 | - if (strpos($field,'email') !== false) |
|
439 | - { |
|
440 | - $field = 'email' ; |
|
441 | - } |
|
442 | - |
|
443 | - //bug: 38139 - allow phone to be searched through Global Search |
|
444 | - if (strpos($field,'phone') !== false) |
|
445 | - { |
|
446 | - $field = 'phone' ; |
|
447 | - } |
|
448 | - |
|
449 | - if ( !empty($def['unified_search']) && isset ( $searchFields [ $moduleName ] [ $field ] )) |
|
450 | - { |
|
451 | - $fields [ $field ] = $searchFields [ $moduleName ] [ $field ] ; |
|
452 | - } |
|
453 | - } |
|
426 | + $isCustomModule = preg_match('/^([a-z0-9]{1,5})_([a-z0-9_]+)$/i' , $moduleName); |
|
427 | + |
|
428 | + //If the bean supports unified search or if it's a custom module bean and unified search is not defined |
|
429 | + if(!empty($dictionary[$beanName]['unified_search']) || $isCustomModule) |
|
430 | + { |
|
431 | + $fields = array(); |
|
432 | + foreach ( $dictionary [ $beanName ][ 'fields' ] as $field => $def ) |
|
433 | + { |
|
434 | + // We cannot enable or disable unified_search for email in the vardefs as we don't actually have a vardef entry for 'email' |
|
435 | + // the searchFields entry for 'email' doesn't correspond to any vardef entry. Instead it contains SQL to directly perform the search. |
|
436 | + // So as a proxy we allow any field in the vardefs that has a name starting with 'email...' to be tagged with the 'unified_search' parameter |
|
437 | + |
|
438 | + if (strpos($field,'email') !== false) |
|
439 | + { |
|
440 | + $field = 'email' ; |
|
441 | + } |
|
442 | + |
|
443 | + //bug: 38139 - allow phone to be searched through Global Search |
|
444 | + if (strpos($field,'phone') !== false) |
|
445 | + { |
|
446 | + $field = 'phone' ; |
|
447 | + } |
|
448 | + |
|
449 | + if ( !empty($def['unified_search']) && isset ( $searchFields [ $moduleName ] [ $field ] )) |
|
450 | + { |
|
451 | + $fields [ $field ] = $searchFields [ $moduleName ] [ $field ] ; |
|
452 | + } |
|
453 | + } |
|
454 | 454 | |
455 | 455 | foreach ($searchFields[$moduleName] as $field => $def) |
456 | 456 | { |
@@ -463,23 +463,23 @@ discard block |
||
463 | 463 | } |
464 | 464 | } |
465 | 465 | |
466 | - if(count($fields) > 0) { |
|
467 | - $supported_modules [$moduleName] ['fields'] = $fields; |
|
468 | - if (isset($dictionary[$beanName]['unified_search_default_enabled']) && $dictionary[$beanName]['unified_search_default_enabled'] === TRUE) |
|
469 | - { |
|
466 | + if(count($fields) > 0) { |
|
467 | + $supported_modules [$moduleName] ['fields'] = $fields; |
|
468 | + if (isset($dictionary[$beanName]['unified_search_default_enabled']) && $dictionary[$beanName]['unified_search_default_enabled'] === TRUE) |
|
469 | + { |
|
470 | 470 | $supported_modules [$moduleName]['default'] = true; |
471 | 471 | } else { |
472 | 472 | $supported_modules [$moduleName]['default'] = false; |
473 | 473 | } |
474 | - } |
|
474 | + } |
|
475 | 475 | |
476 | - } |
|
476 | + } |
|
477 | 477 | |
478 | - } |
|
478 | + } |
|
479 | 479 | |
480 | - ksort($supported_modules); |
|
481 | - write_array_to_file('unified_search_modules', $supported_modules, $this->cache_search); |
|
482 | - } |
|
480 | + ksort($supported_modules); |
|
481 | + write_array_to_file('unified_search_modules', $supported_modules, $this->cache_search); |
|
482 | + } |
|
483 | 483 | |
484 | 484 | /** |
485 | 485 | * Retrieve the enabled and disabled modules used for global search. |
@@ -523,9 +523,9 @@ discard block |
||
523 | 523 | $label = isset($app_list_strings['moduleList'][$module]) ? $app_list_strings['moduleList'][$module] : $module; |
524 | 524 | if($data['default']) |
525 | 525 | { |
526 | - $json_enabled[] = array("module" => $module, 'label' => $label); |
|
526 | + $json_enabled[] = array("module" => $module, 'label' => $label); |
|
527 | 527 | } else { |
528 | - $json_disabled[] = array("module" => $module, 'label' => $label); |
|
528 | + $json_disabled[] = array("module" => $module, 'label' => $label); |
|
529 | 529 | } |
530 | 530 | } |
531 | 531 | } |
@@ -534,47 +534,47 @@ discard block |
||
534 | 534 | } |
535 | 535 | |
536 | 536 | |
537 | - /** |
|
538 | - * saveGlobalSearchSettings |
|
539 | - * This method handles the administrator's request to save the searchable modules selected and stores |
|
540 | - * the results in the unified_search_modules_display.php file |
|
541 | - * |
|
542 | - */ |
|
543 | - function saveGlobalSearchSettings() |
|
544 | - { |
|
545 | - if(isset($_REQUEST['enabled_modules'])) |
|
546 | - { |
|
537 | + /** |
|
538 | + * saveGlobalSearchSettings |
|
539 | + * This method handles the administrator's request to save the searchable modules selected and stores |
|
540 | + * the results in the unified_search_modules_display.php file |
|
541 | + * |
|
542 | + */ |
|
543 | + function saveGlobalSearchSettings() |
|
544 | + { |
|
545 | + if(isset($_REQUEST['enabled_modules'])) |
|
546 | + { |
|
547 | 547 | $unified_search_modules_display = $this->getUnifiedSearchModulesDisplay(); |
548 | 548 | |
549 | - $new_unified_search_modules_display = array(); |
|
549 | + $new_unified_search_modules_display = array(); |
|
550 | 550 | |
551 | 551 | foreach(explode (',', $_REQUEST['enabled_modules'] ) as $module) |
552 | 552 | { |
553 | 553 | $new_unified_search_modules_display[$module]['visible'] = true; |
554 | 554 | } |
555 | 555 | |
556 | - foreach($unified_search_modules_display as $module=>$data) |
|
557 | - { |
|
558 | - if(!isset($new_unified_search_modules_display[$module])) |
|
559 | - { |
|
560 | - $new_unified_search_modules_display[$module]['visible'] = false; |
|
561 | - } |
|
562 | - } |
|
563 | - |
|
564 | - $this->writeUnifiedSearchModulesDisplayFile($new_unified_search_modules_display); |
|
565 | - } |
|
566 | - } |
|
567 | - |
|
568 | - |
|
569 | - public static function unlinkUnifiedSearchModulesFile() { |
|
570 | - //clear the unified_search_module.php file |
|
571 | - $cache_search = sugar_cached('modules/unified_search_modules.php'); |
|
572 | - if(file_exists($cache_search)) |
|
573 | - { |
|
574 | - $GLOBALS['log']->info("unlink {$cache_search}"); |
|
575 | - unlink($cache_search); |
|
576 | - } |
|
577 | - } |
|
556 | + foreach($unified_search_modules_display as $module=>$data) |
|
557 | + { |
|
558 | + if(!isset($new_unified_search_modules_display[$module])) |
|
559 | + { |
|
560 | + $new_unified_search_modules_display[$module]['visible'] = false; |
|
561 | + } |
|
562 | + } |
|
563 | + |
|
564 | + $this->writeUnifiedSearchModulesDisplayFile($new_unified_search_modules_display); |
|
565 | + } |
|
566 | + } |
|
567 | + |
|
568 | + |
|
569 | + public static function unlinkUnifiedSearchModulesFile() { |
|
570 | + //clear the unified_search_module.php file |
|
571 | + $cache_search = sugar_cached('modules/unified_search_modules.php'); |
|
572 | + if(file_exists($cache_search)) |
|
573 | + { |
|
574 | + $GLOBALS['log']->info("unlink {$cache_search}"); |
|
575 | + unlink($cache_search); |
|
576 | + } |
|
577 | + } |
|
578 | 578 | |
579 | 579 | |
580 | 580 | /** |
@@ -587,21 +587,21 @@ discard block |
||
587 | 587 | */ |
588 | 588 | public function getUnifiedSearchModules() |
589 | 589 | { |
590 | - //Make directory if it doesn't exist |
|
590 | + //Make directory if it doesn't exist |
|
591 | 591 | $cachedir = sugar_cached('modules'); |
592 | - if(!file_exists($cachedir)) |
|
593 | - { |
|
594 | - mkdir_recursive($cachedir); |
|
595 | - } |
|
592 | + if(!file_exists($cachedir)) |
|
593 | + { |
|
594 | + mkdir_recursive($cachedir); |
|
595 | + } |
|
596 | 596 | |
597 | - //Load unified_search_modules.php file |
|
597 | + //Load unified_search_modules.php file |
|
598 | 598 | $cachedFile = sugar_cached('modules/unified_search_modules.php'); |
599 | - if(!file_exists($cachedFile)) |
|
600 | - { |
|
601 | - $this->buildCache(); |
|
602 | - } |
|
599 | + if(!file_exists($cachedFile)) |
|
600 | + { |
|
601 | + $this->buildCache(); |
|
602 | + } |
|
603 | 603 | |
604 | - include $cachedFile; |
|
604 | + include $cachedFile; |
|
605 | 605 | return $unified_search_modules; |
606 | 606 | } |
607 | 607 | |
@@ -616,8 +616,8 @@ discard block |
||
616 | 616 | */ |
617 | 617 | public function getUnifiedSearchModulesDisplay() |
618 | 618 | { |
619 | - if(!file_exists('custom/modules/unified_search_modules_display.php')) |
|
620 | - { |
|
619 | + if(!file_exists('custom/modules/unified_search_modules_display.php')) |
|
620 | + { |
|
621 | 621 | $unified_search_modules = $this->getUnifiedSearchModules(); |
622 | 622 | |
623 | 623 | $unified_search_modules_display = array(); |
@@ -631,13 +631,13 @@ discard block |
||
631 | 631 | } |
632 | 632 | |
633 | 633 | $this->writeUnifiedSearchModulesDisplayFile($unified_search_modules_display); |
634 | - } |
|
634 | + } |
|
635 | 635 | |
636 | - include('custom/modules/unified_search_modules_display.php'); |
|
636 | + include('custom/modules/unified_search_modules_display.php'); |
|
637 | 637 | return $unified_search_modules_display; |
638 | 638 | } |
639 | 639 | |
640 | - /* |
|
640 | + /* |
|
641 | 641 | * writeUnifiedSearchModulesDisplayFile |
642 | 642 | * Private method to handle writing the unified_search_modules_display value to file |
643 | 643 | * |
@@ -645,35 +645,35 @@ discard block |
||
645 | 645 | * @return boolean value indication whether or not file was successfully written |
646 | 646 | * @throws Exception Thrown if the file write operation fails |
647 | 647 | */ |
648 | - private function writeUnifiedSearchModulesDisplayFile($unified_search_modules_display) |
|
649 | - { |
|
650 | - if(is_null($unified_search_modules_display) || empty($unified_search_modules_display)) |
|
651 | - { |
|
652 | - return false; |
|
653 | - } |
|
654 | - |
|
655 | - if(!write_array_to_file("unified_search_modules_display", $unified_search_modules_display, 'custom/modules/unified_search_modules_display.php')) |
|
656 | - { |
|
657 | - //Log error message and throw Exception |
|
658 | - global $app_strings; |
|
659 | - $msg = string_format($app_strings['ERR_FILE_WRITE'], array('custom/modules/unified_search_modules_display.php')); |
|
660 | - $GLOBALS['log']->error($msg); |
|
661 | - throw new Exception($msg); |
|
662 | - } |
|
663 | - |
|
664 | - return true; |
|
665 | - } |
|
648 | + private function writeUnifiedSearchModulesDisplayFile($unified_search_modules_display) |
|
649 | + { |
|
650 | + if(is_null($unified_search_modules_display) || empty($unified_search_modules_display)) |
|
651 | + { |
|
652 | + return false; |
|
653 | + } |
|
654 | + |
|
655 | + if(!write_array_to_file("unified_search_modules_display", $unified_search_modules_display, 'custom/modules/unified_search_modules_display.php')) |
|
656 | + { |
|
657 | + //Log error message and throw Exception |
|
658 | + global $app_strings; |
|
659 | + $msg = string_format($app_strings['ERR_FILE_WRITE'], array('custom/modules/unified_search_modules_display.php')); |
|
660 | + $GLOBALS['log']->error($msg); |
|
661 | + throw new Exception($msg); |
|
662 | + } |
|
663 | + |
|
664 | + return true; |
|
665 | + } |
|
666 | 666 | } |
667 | 667 | |
668 | 668 | |
669 | 669 | function unified_search_modules_cmp($a, $b) { |
670 | - if(!isset($a['translated']) || !isset($b['translated'])) |
|
671 | - { |
|
672 | - return 0; |
|
673 | - } |
|
670 | + if(!isset($a['translated']) || !isset($b['translated'])) |
|
671 | + { |
|
672 | + return 0; |
|
673 | + } |
|
674 | 674 | |
675 | - $name1 = strtolower($a['translated']); |
|
676 | - $name2 = strtolower($b['translated']); |
|
675 | + $name1 = strtolower($a['translated']); |
|
676 | + $name2 = strtolower($b['translated']); |
|
677 | 677 | |
678 | - return $name1 < $name2 ? -1 : 1; |
|
678 | + return $name1 < $name2 ? -1 : 1; |
|
679 | 679 | } |
@@ -66,24 +66,24 @@ |
||
66 | 66 | $this->javascript->setSugarBean($focus); |
67 | 67 | $this->javascript->addAllFields(''); |
68 | 68 | |
69 | - //$this->ss->assign("STATUS_OPTIONS", get_select_options_with_id($app_list_strings['project_status_dom'], $focus->status)); |
|
69 | + //$this->ss->assign("STATUS_OPTIONS", get_select_options_with_id($app_list_strings['project_status_dom'], $focus->status)); |
|
70 | 70 | $this->ss->assign('additionalScripts', $this->javascript->getScript(false)); |
71 | 71 | $this->ss->assign('CALENDAR_DATEFORMAT', $timedate->get_cal_date_format()); |
72 | 72 | |
73 | 73 | |
74 | 74 | $json = getJSONobj(); |
75 | 75 | |
76 | - $popup_request_data = array( |
|
77 | - 'call_back_function' => 'set_return', |
|
78 | - 'form_name' => 'projectsQuickCreate', |
|
79 | - 'field_to_name_array' => array( |
|
80 | - 'id' => 'account_id', |
|
81 | - 'name' => 'account_name', |
|
82 | - ), |
|
83 | - ); |
|
76 | + $popup_request_data = array( |
|
77 | + 'call_back_function' => 'set_return', |
|
78 | + 'form_name' => 'projectsQuickCreate', |
|
79 | + 'field_to_name_array' => array( |
|
80 | + 'id' => 'account_id', |
|
81 | + 'name' => 'account_name', |
|
82 | + ), |
|
83 | + ); |
|
84 | 84 | |
85 | - $encoded_popup_request_data = $json->encode($popup_request_data); |
|
86 | - $this->ss->assign('encoded_popup_request_data', $encoded_popup_request_data); |
|
85 | + $encoded_popup_request_data = $json->encode($popup_request_data); |
|
86 | + $this->ss->assign('encoded_popup_request_data', $encoded_popup_request_data); |
|
87 | 87 | |
88 | 88 | |
89 | 89 | } |
@@ -42,25 +42,25 @@ |
||
42 | 42 | |
43 | 43 | |
44 | 44 | function additionalDetailsProject($fields) { |
45 | - static $mod_strings; |
|
46 | - if(empty($mod_strings)) { |
|
47 | - global $current_language; |
|
48 | - $mod_strings = return_module_language($current_language, 'Project'); |
|
49 | - } |
|
45 | + static $mod_strings; |
|
46 | + if(empty($mod_strings)) { |
|
47 | + global $current_language; |
|
48 | + $mod_strings = return_module_language($current_language, 'Project'); |
|
49 | + } |
|
50 | 50 | |
51 | - $overlib_string = ''; |
|
51 | + $overlib_string = ''; |
|
52 | 52 | |
53 | - if(!empty($fields['DESCRIPTION'])) { |
|
54 | - $overlib_string .= '<b>'. $mod_strings['LBL_DESCRIPTION'] . '</b> ' . substr($fields['DESCRIPTION'], 0, 300); |
|
55 | - if(strlen($fields['DESCRIPTION']) > 300) $overlib_string .= '...'; |
|
56 | - } |
|
53 | + if(!empty($fields['DESCRIPTION'])) { |
|
54 | + $overlib_string .= '<b>'. $mod_strings['LBL_DESCRIPTION'] . '</b> ' . substr($fields['DESCRIPTION'], 0, 300); |
|
55 | + if(strlen($fields['DESCRIPTION']) > 300) $overlib_string .= '...'; |
|
56 | + } |
|
57 | 57 | |
58 | - return array('fieldToAddTo' => 'NAME', |
|
59 | - 'string' => $overlib_string, |
|
60 | - 'editLink' => "index.php?action=EditView&module=Project&return_module=Project&record={$fields['ID']}", |
|
61 | - 'viewLink' => "index.php?action=DetailView&module=Project&return_module=Project&record={$fields['ID']}"); |
|
58 | + return array('fieldToAddTo' => 'NAME', |
|
59 | + 'string' => $overlib_string, |
|
60 | + 'editLink' => "index.php?action=EditView&module=Project&return_module=Project&record={$fields['ID']}", |
|
61 | + 'viewLink' => "index.php?action=DetailView&module=Project&return_module=Project&record={$fields['ID']}"); |
|
62 | 62 | } |
63 | 63 | |
64 | - ?> |
|
64 | + ?> |
|
65 | 65 | |
66 | 66 | |
67 | 67 | \ No newline at end of file |