[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 /*+*********************************************************************************** 2 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 3 * ("License"); You may not use this file except in compliance with the License 4 * The Original Code is: vtiger CRM Open Source 5 * The Initial Developer of the Original Code is vtiger. 6 * Portions created by vtiger are Copyright (C) vtiger. 7 * All Rights Reserved. 8 *************************************************************************************/ 9 jQuery.Class("Vtiger_Popup_Js",{ 10 11 getInstance: function(){ 12 var module = app.getModuleName(); 13 var className = jQuery('#popUpClassName').val(); 14 if(typeof className != 'undefined'){ 15 var moduleClassName = className; 16 }else{ 17 var moduleClassName = module+"_Popup_Js"; 18 } 19 var fallbackClassName = Vtiger_Popup_Js; 20 if(typeof window[moduleClassName] != 'undefined'){ 21 var instance = new window[moduleClassName](); 22 }else{ 23 var instance = new fallbackClassName(); 24 } 25 return instance; 26 } 27 28 },{ 29 30 //holds the event name that child window need to trigger 31 eventName : '', 32 popupPageContentsContainer : false, 33 sourceModule : false, 34 sourceRecord : false, 35 sourceField : false, 36 multiSelect : false, 37 relatedParentModule : false, 38 relatedParentRecord : false, 39 40 /** 41 * Function to get source module 42 */ 43 getSourceModule : function(){ 44 if(this.sourceModule == false){ 45 this.sourceModule = jQuery('#parentModule').val(); 46 } 47 return this.sourceModule; 48 }, 49 50 /** 51 * Function to get source record 52 */ 53 getSourceRecord : function(){ 54 if(this.sourceRecord == false){ 55 this.sourceRecord = jQuery('#sourceRecord').val(); 56 } 57 return this.sourceRecord; 58 }, 59 60 /** 61 * Function to get source field 62 */ 63 getSourceField : function(){ 64 if(this.sourceField == false){ 65 this.sourceField = jQuery('#sourceField').val(); 66 } 67 return this.sourceField; 68 }, 69 70 /** 71 * Function to get related parent module 72 */ 73 getRelatedParentModule : function(){ 74 if(this.relatedParentModule == false){ 75 this.relatedParentModule = jQuery('#relatedParentModule').val(); 76 } 77 return this.relatedParentModule; 78 }, 79 /** 80 * Function to get related parent id 81 */ 82 getRelatedParentRecord : function(){ 83 if(this.relatedParentRecord == false){ 84 this.relatedParentRecord = jQuery('#relatedParentId').val(); 85 } 86 return this.relatedParentRecord; 87 }, 88 89 /** 90 * Function to get Search key 91 */ 92 getSearchKey : function(){ 93 return jQuery('#searchableColumnsList').val(); 94 }, 95 96 /** 97 * Function to get Search value 98 */ 99 getSearchValue : function(){ 100 return jQuery('#searchvalue').val(); 101 }, 102 103 /** 104 * Function to get Order by 105 */ 106 getOrderBy : function(){ 107 return jQuery('#orderBy').val(); 108 }, 109 110 /** 111 * Function to get Sort Order 112 */ 113 getSortOrder : function(){ 114 return jQuery("#sortOrder").val(); 115 }, 116 117 /** 118 * Function to get Page Number 119 */ 120 getPageNumber : function(){ 121 return jQuery('#pageNumber').val(); 122 }, 123 124 getPopupPageContainer : function(){ 125 if(this.popupPageContentsContainer == false) { 126 this.popupPageContentsContainer = jQuery('#popupPageContainer'); 127 } 128 return this.popupPageContentsContainer; 129 130 }, 131 132 show : function(urlOrParams, cb, windowName, eventName, onLoadCb){ 133 if(typeof urlOrParams == 'undefined'){ 134 urlOrParams = {}; 135 } 136 if (typeof urlOrParams == 'object' && (typeof urlOrParams['view'] == "undefined")) { 137 urlOrParams['view'] = 'Popup'; 138 } 139 140 // Target eventName to be trigger post data selection. 141 if(typeof eventName == 'undefined') { 142 eventName = 'postSelection'+ Math.floor(Math.random() * 10000); 143 } 144 if(typeof windowName == 'undefined' ){ 145 windowName = 'test'; 146 } 147 if (typeof urlOrParams == 'object') { 148 urlOrParams['triggerEventName'] = eventName; 149 } else { 150 urlOrParams += '&triggerEventName=' + eventName; 151 } 152 153 var urlString = (typeof urlOrParams == 'string')? urlOrParams : jQuery.param(urlOrParams); 154 var url = 'index.php?'+urlString; 155 var popupWinRef = window.open(url, windowName ,'width=900,height=650,resizable=0,scrollbars=1'); 156 if (typeof this.destroy == 'function') { 157 // To remove form elements that have created earlier 158 this.destroy(); 159 } 160 jQuery.initWindowMsg(); 161 162 if(typeof cb != 'undefined') { 163 this.retrieveSelectedRecords(cb, eventName); 164 } 165 166 if(typeof onLoadCb == 'function') { 167 jQuery.windowMsg('Vtiger.OnPopupWindowLoad.Event', function(data){ 168 onLoadCb(data); 169 }) 170 } 171 172 // http://stackoverflow.com/questions/13953321/how-can-i-call-a-window-child-function-in-javascript 173 // This could be useful for the caller to invoke child window methods post load. 174 return popupWinRef; 175 }, 176 177 retrieveSelectedRecords : function(cb, eventName) { 178 if(typeof eventName == 'undefined') { 179 eventName = 'postSelection'; 180 } 181 182 jQuery.windowMsg(eventName, function(data) { 183 cb(data); 184 }); 185 }, 186 187 /** 188 * Function which removes the elements that are added by the plugin 189 * 190 */ 191 destroy : function(){ 192 jQuery('form[name="windowComm"]').remove(); 193 }, 194 195 done : function(result, eventToTrigger, window) { 196 197 if(typeof eventToTrigger == 'undefined' || eventToTrigger.length <=0 ) { 198 eventToTrigger = 'postSelection' 199 } 200 201 if(typeof window == 'undefined'){ 202 window = self; 203 } 204 window.close(); 205 var data = JSON.stringify(result); 206 // Because if we have two dollars like this "$$" it's not working because it'll be like escape char(Email Templates) 207 data = data.replace(/\$\$/g,"$ $"); 208 209 jQuery.triggerParentEvent(eventToTrigger, data); 210 211 }, 212 213 getView : function(){ 214 var view = jQuery('#view').val(); 215 if(view == '') { 216 view = 'PopupAjax'; 217 } else { 218 view = view+'Ajax'; 219 } 220 return view; 221 }, 222 223 setEventName : function(eventName) { 224 this.eventName = eventName; 225 }, 226 227 getEventName : function() { 228 return this.eventName; 229 }, 230 231 isMultiSelectMode : function() { 232 if(this.multiSelect == false){ 233 this.multiSelect = jQuery('#multi_select'); 234 } 235 var value = this.multiSelect.val(); 236 if(value) { 237 return value; 238 } 239 return false; 240 }, 241 242 getListViewEntries: function(e){ 243 var thisInstance = this; 244 var row = jQuery(e.currentTarget); 245 var dataUrl = row.data('url'); 246 if(typeof dataUrl != 'undefined'){ 247 dataUrl = dataUrl+'¤cy_id='+jQuery('#currencyId').val(); 248 AppConnector.request(dataUrl).then( 249 function(data){ 250 for(var id in data){ 251 if(typeof data[id] == "object"){ 252 var recordData = data[id]; 253 } 254 } 255 thisInstance.done(recordData, thisInstance.getEventName()); 256 e.preventDefault(); 257 }, 258 function(error,err){ 259 260 } 261 ); 262 } else { 263 var id = row.data('id'); 264 var recordName = row.data('name'); 265 var recordInfo = row.data('info'); 266 var response ={}; 267 response[id] = {'name' : recordName,'info' : recordInfo} ; 268 thisInstance.done(response, thisInstance.getEventName()); 269 e.preventDefault(); 270 } 271 272 }, 273 274 registerSelectButton : function(){ 275 var popupPageContentsContainer = this.getPopupPageContainer(); 276 var thisInstance = this; 277 popupPageContentsContainer.on('click','button.select', function(e){ 278 var tableEntriesElement = popupPageContentsContainer.find('table'); 279 var selectedRecordDetails = {}; 280 var recordIds = new Array(); 281 var dataUrl; 282 jQuery('input.entryCheckBox', tableEntriesElement).each(function(index, checkBoxElement){ 283 var checkBoxJqueryObject = jQuery(checkBoxElement) 284 if(! checkBoxJqueryObject.is(":checked")){ 285 return true; 286 } 287 var row = checkBoxJqueryObject.closest('tr'); 288 var id = row.data('id'); 289 recordIds.push(id); 290 var name = row.data('name'); 291 dataUrl = row.data('url'); 292 selectedRecordDetails[id] = {'name' : name}; 293 }); 294 var jsonRecorIds = JSON.stringify(recordIds); 295 if(Object.keys(selectedRecordDetails).length <= 0) { 296 alert(app.vtranslate('JS_PLEASE_SELECT_ONE_RECORD')); 297 }else{ 298 if(typeof dataUrl != 'undefined'){ 299 dataUrl = dataUrl+'&idlist='+jsonRecorIds+'¤cy_id='+jQuery('#currencyId').val(); 300 AppConnector.request(dataUrl).then( 301 function(data){ 302 for(var id in data){ 303 if(typeof data[id] == "object"){ 304 var recordData = data[id]; 305 } 306 } 307 var recordDataLength = Object.keys(recordData).length; 308 if(recordDataLength == 1){ 309 recordData = recordData[0]; 310 } 311 thisInstance.done(recordData, thisInstance.getEventName()); 312 e.preventDefault(); 313 }, 314 function(error,err){ 315 316 } 317 ); 318 }else{ 319 thisInstance.done(selectedRecordDetails, thisInstance.getEventName()); 320 } 321 } 322 }); 323 }, 324 325 selectAllHandler : function(e){ 326 var currentElement = jQuery(e.currentTarget); 327 var isMainCheckBoxChecked = currentElement.is(':checked'); 328 var tableElement = currentElement.closest('table'); 329 if(isMainCheckBoxChecked) { 330 jQuery('input.entryCheckBox', tableElement).attr('checked','checked').closest('tr').addClass('highlightBackgroundColor'); 331 }else { 332 jQuery('input.entryCheckBox', tableElement).removeAttr('checked').closest('tr').removeClass('highlightBackgroundColor'); 333 } 334 }, 335 336 registerEventForSelectAllInCurrentPage : function(){ 337 var thisInstance = this; 338 var popupPageContentsContainer = this.getPopupPageContainer(); 339 popupPageContentsContainer.on('change','input.selectAllInCurrentPage',function(e){ 340 thisInstance.selectAllHandler(e); 341 }); 342 }, 343 344 checkBoxChangeHandler : function(e){ 345 var elem = jQuery(e.currentTarget); 346 var parentElem = elem.closest('tr'); 347 if(elem.is(':checked')){ 348 parentElem.addClass('highlightBackgroundColor'); 349 350 }else{ 351 parentElem.removeClass('highlightBackgroundColor'); 352 } 353 }, 354 355 /** 356 * Function to register event for entry checkbox change 357 */ 358 registerEventForCheckboxChange : function(){ 359 var thisInstance = this; 360 var popupPageContentsContainer = this.getPopupPageContainer(); 361 popupPageContentsContainer.on('click','input.entryCheckBox',function(e){ 362 e.stopPropagation(); 363 thisInstance.checkBoxChangeHandler(e); 364 }); 365 }, 366 /** 367 * Function to get complete params 368 */ 369 getCompleteParams : function(){ 370 var params = {}; 371 params['view'] = this.getView(); 372 params['src_module'] = this.getSourceModule(); 373 params['src_record'] = this.getSourceRecord(); 374 params['src_field'] = this.getSourceField(); 375 params['search_key'] = this.getSearchKey(); 376 params['search_value'] = this.getSearchValue(); 377 params['orderby'] = this.getOrderBy(); 378 params['sortorder'] = this.getSortOrder(); 379 params['page'] = this.getPageNumber(); 380 params['related_parent_module'] = this.getRelatedParentModule(); 381 params['related_parent_id'] = this.getRelatedParentRecord(); 382 params['module'] = app.getModuleName(); 383 384 if(this.isMultiSelectMode()) { 385 params['multi_select'] = true; 386 } 387 return params; 388 }, 389 390 /** 391 * Function to get Page Records 392 */ 393 getPageRecords : function(params){ 394 var thisInstance = this; 395 var aDeferred = jQuery.Deferred(); 396 var progressIndicatorElement = jQuery.progressIndicator({ 397 'position' : 'html', 398 'blockInfo' : { 399 'enabled' : true 400 } 401 }); 402 Vtiger_BaseList_Js.getPageRecords(params).then( 403 function(data){ 404 jQuery('#popupContents').html(data); 405 Vtiger_Helper_Js.showHorizontalTopScrollBar(); 406 progressIndicatorElement.progressIndicator({ 407 'mode' : 'hide' 408 }) 409 thisInstance.calculatePages().then(function(data){ 410 aDeferred.resolve(data); 411 }); 412 }, 413 414 function(textStatus, errorThrown){ 415 aDeferred.reject(textStatus, errorThrown); 416 } 417 ); 418 return aDeferred.promise(); 419 }, 420 421 /** 422 * Function to calculate number of pages 423 */ 424 calculatePages : function() { 425 var aDeferred = jQuery.Deferred(); 426 var element = jQuery('#totalPageCount'); 427 var totalPageNumber = element.text(); 428 if(totalPageNumber == ""){ 429 var totalRecordCount = jQuery('#totalCount').val(); 430 if(totalRecordCount != '') { 431 var recordPerPage = jQuery('#noOfEntries').val(); 432 if(recordPerPage == '0') recordPerPage = 1; 433 pageCount = Math.ceil(totalRecordCount/recordPerPage); 434 if(pageCount == 0){ 435 pageCount = 1; 436 } 437 element.text(pageCount); 438 aDeferred.resolve(); 439 return aDeferred.promise(); 440 } 441 this.getPageCount().then(function(data){ 442 var pageCount = data['result']['page']; 443 if(pageCount == 0){ 444 pageCount = 1; 445 } 446 element.text(pageCount); 447 aDeferred.resolve(); 448 }); 449 } else{ 450 aDeferred.resolve(); 451 } 452 return aDeferred.promise(); 453 }, 454 455 /** 456 * Function to handle search event 457 */ 458 searchHandler : function(){ 459 var aDeferred = jQuery.Deferred(); 460 var completeParams = this.getCompleteParams(); 461 completeParams['page'] = 1; 462 return this.getPageRecords(completeParams).then( 463 function(data){ 464 aDeferred.resolve(data); 465 }, 466 467 function(textStatus, errorThrown){ 468 aDeferred.reject(textStatus, errorThrown); 469 }); 470 return aDeferred.promise(); 471 }, 472 473 /** 474 * Function to register event for Search 475 */ 476 registerEventForSearch : function(){ 477 var thisInstance = this; 478 jQuery('#popupSearchButton').on('click',function(e){ 479 jQuery('#totalPageCount').text(""); 480 thisInstance.searchHandler().then(function(data){ 481 jQuery('#pageNumber').val(1); 482 jQuery('#pageToJump').val(1); 483 thisInstance.updatePagination(); 484 }); 485 }); 486 }, 487 /** 488 * Function to register event for Searching on click of enter 489 */ 490 registerEventForEnter : function(){ 491 var thisInstance = this; 492 jQuery('#searchvalue').keyup(function (e) { 493 if (e.keyCode == 13) { 494 jQuery('#popupSearchButton').trigger('click'); 495 } 496 }); 497 }, 498 499 /** 500 * Function to handle Sort 501 */ 502 sortHandler : function(headerElement){ 503 var aDeferred = jQuery.Deferred(); 504 //Listprice column should not be sorted so checking for class noSorting 505 if(headerElement.hasClass('noSorting')){ 506 return; 507 } 508 var fieldName = headerElement.data('columnname'); 509 var sortOrderVal = headerElement.data('nextsortorderval'); 510 var sortingParams = { 511 "orderby" : fieldName, 512 "sortorder" : sortOrderVal 513 } 514 var completeParams = this.getCompleteParams(); 515 jQuery.extend(completeParams,sortingParams); 516 return this.getPageRecords(completeParams).then( 517 function(data){ 518 aDeferred.resolve(data); 519 }, 520 521 function(textStatus, errorThrown){ 522 aDeferred.reject(textStatus, errorThrown); 523 } 524 ); 525 return aDeferred.promise(); 526 }, 527 528 /** 529 * Function to register Event for Sorting 530 */ 531 registerEventForSort : function(){ 532 var thisInstance = this; 533 var popupPageContentsContainer = this.getPopupPageContainer(); 534 popupPageContentsContainer.on('click','.listViewHeaderValues',function(e){ 535 var element = jQuery(e.currentTarget); 536 thisInstance.sortHandler(element).then(function(data){ 537 thisInstance.updatePagination(); 538 }); 539 }); 540 }, 541 542 /** 543 * Function to handle next page navigation 544 */ 545 546 nextPageHandler : function(){ 547 var aDeferred = jQuery.Deferred(); 548 var pageLimit = jQuery('#pageLimit').val(); 549 var noOfEntries = jQuery('#noOfEntries').val(); 550 if(noOfEntries == pageLimit){ 551 var pageNumber = jQuery('#pageNumber').val(); 552 var nextPageNumber = parseInt(pageNumber) + 1; 553 var pagingParams = { 554 "page": nextPageNumber 555 } 556 var completeParams = this.getCompleteParams(); 557 jQuery.extend(completeParams,pagingParams); 558 this.getPageRecords(completeParams).then( 559 function(data){ 560 jQuery('#pageNumber').val(nextPageNumber); 561 jQuery('#pageToJump').val(nextPageNumber); 562 aDeferred.resolve(data); 563 }, 564 565 function(textStatus, errorThrown){ 566 aDeferred.reject(textStatus, errorThrown); 567 } 568 ); 569 } 570 return aDeferred.promise(); 571 }, 572 573 /** 574 * Function to handle Previous page navigation 575 */ 576 previousPageHandler : function(){ 577 var aDeferred = jQuery.Deferred(); 578 var pageNumber = jQuery('#pageNumber').val(); 579 var previousPageNumber = parseInt(pageNumber) - 1; 580 if(pageNumber > 1){ 581 var pagingParams = { 582 "page": previousPageNumber 583 } 584 var completeParams = this.getCompleteParams(); 585 jQuery.extend(completeParams,pagingParams); 586 this.getPageRecords(completeParams).then( 587 function(data){ 588 jQuery('#pageNumber').val(previousPageNumber); 589 jQuery('#pageToJump').val(previousPageNumber); 590 aDeferred.resolve(data); 591 }, 592 593 function(textStatus, errorThrown){ 594 aDeferred.reject(textStatus, errorThrown); 595 } 596 ); 597 } 598 return aDeferred.promise(); 599 }, 600 601 /** 602 * Function to register event for Paging 603 */ 604 registerEventForPagination : function(){ 605 var thisInstance = this; 606 jQuery('#listViewNextPageButton').on('click',function(){ 607 thisInstance.nextPageHandler().then(function(data){ 608 thisInstance.updatePagination(); 609 }); 610 }); 611 jQuery('#listViewPreviousPageButton').on('click',function(){ 612 thisInstance.previousPageHandler().then(function(data){ 613 thisInstance.updatePagination(); 614 }); 615 }); 616 jQuery('#listViewPageJump').on('click',function(e){ 617 jQuery('#pageToJump').validationEngine('hideAll'); 618 var element = jQuery('#totalPageCount'); 619 var totalPageNumber = element.text(); 620 if(totalPageNumber == ""){ 621 var totalRecordElement = jQuery('#totalCount'); 622 var totalRecordCount = totalRecordElement.val(); 623 if(totalRecordCount != '') { 624 var recordPerPage = jQuery('#pageLimit').val(); 625 if(recordPerPage == '0') recordPerPage = 1; 626 pageCount = Math.ceil(totalRecordCount/recordPerPage); 627 if(pageCount == 0){ 628 pageCount = 1; 629 } 630 element.text(pageCount); 631 return; 632 } 633 element.progressIndicator({}); 634 thisInstance.getPageCount().then(function(data){ 635 var pageCount = data['result']['page']; 636 element.text(pageCount); 637 totalRecordElement.val(data['result']['numberOfRecords']); 638 element.progressIndicator({'mode': 'hide'}); 639 }); 640 } 641 }) 642 643 jQuery('#listViewPageJumpDropDown').on('click','li',function(e){ 644 e.stopImmediatePropagation(); 645 }).on('keypress','#pageToJump',function(e){ 646 if(e.which == 13){ 647 e.stopImmediatePropagation(); 648 var element = jQuery(e.currentTarget); 649 var response = Vtiger_WholeNumberGreaterThanZero_Validator_Js.invokeValidation(element); 650 if(typeof response != "undefined"){ 651 element.validationEngine('showPrompt',response,'',"topLeft",true); 652 } else { 653 element.validationEngine('hideAll'); 654 var currentPageElement = jQuery('#pageNumber'); 655 var currentPageNumber = currentPageElement.val(); 656 var newPageNumber = parseInt(element.val()); 657 var totalPages = parseInt(jQuery('#totalPageCount').text()); 658 if(newPageNumber > totalPages){ 659 var error = app.vtranslate('JS_PAGE_NOT_EXIST'); 660 element.validationEngine('showPrompt',error,'',"topLeft",true); 661 return; 662 } 663 if(newPageNumber == currentPageNumber){ 664 var message = app.vtranslate('JS_YOU_ARE_IN_PAGE_NUMBER')+" "+newPageNumber; 665 var params = { 666 text: message, 667 type: 'info' 668 }; 669 Vtiger_Helper_Js.showMessage(params); 670 return; 671 } 672 var pagingParams = { 673 "page": newPageNumber 674 } 675 var completeParams = thisInstance.getCompleteParams(); 676 jQuery.extend(completeParams,pagingParams); 677 thisInstance.getPageRecords(completeParams).then( 678 function(data){ 679 currentPageElement.val(newPageNumber); 680 thisInstance.updatePagination(); 681 element.closest('.btn-group ').removeClass('open'); 682 }, 683 function(textStatus, errorThrown){ 684 } 685 ); 686 } 687 return false; 688 } 689 }); 690 }, 691 692 registerEventForListViewEntries : function(){ 693 var thisInstance = this; 694 var popupPageContentsContainer = this.getPopupPageContainer(); 695 popupPageContentsContainer.on('click','.listViewEntries',function(e){ 696 thisInstance.getListViewEntries(e); 697 }); 698 }, 699 700 triggerDisplayTypeEvent : function() { 701 var widthType = app.cacheGet('widthType', 'narrowWidthType'); 702 if(widthType) { 703 var elements = jQuery('.listViewEntriesTable').find('td,th'); 704 elements.addClass(widthType); 705 } 706 }, 707 /** 708 * Function to get page count and total number of records in list 709 */ 710 getPageCount : function(){ 711 var aDeferred = jQuery.Deferred(); 712 var pageJumpParams = { 713 'mode' : "getPageCount" 714 } 715 var completeParams = this.getCompleteParams(); 716 jQuery.extend(completeParams,pageJumpParams); 717 AppConnector.request(completeParams).then( 718 function(data) { 719 var response; 720 if(typeof data != "object"){ 721 response = JSON.parse(data); 722 } else{ 723 response = data; 724 } 725 aDeferred.resolve(response); 726 }, 727 function(error,err){ 728 729 } 730 ); 731 return aDeferred.promise(); 732 }, 733 734 /** 735 * Function to show total records count in listview on hover 736 * of pageNumber text 737 */ 738 registerEventForTotalRecordsCount : function(){ 739 var thisInstance = this; 740 jQuery('.totalNumberOfRecords').on('click',function(e){ 741 var element = jQuery(e.currentTarget); 742 element.addClass('hide'); 743 element.parent().find('.pageNumbersText').progressIndicator({}); 744 var totalRecordsElement = jQuery('#totalCount'); 745 var totalNumberOfRecords = totalRecordsElement.val(); 746 if(totalNumberOfRecords == '') { 747 thisInstance.getPageCount().then(function(data){ 748 totalNumberOfRecords = data['result']['numberOfRecords']; 749 var numberOfPages = data['result']['page']; 750 totalRecordsElement.val(totalNumberOfRecords); 751 jQuery('#totalPageCount').text(numberOfPages); 752 thisInstance.showPagingInfo(); 753 }); 754 }else{ 755 thisInstance.showPagingInfo(); 756 } 757 element.parent().find('.pageNumbersText').progressIndicator({'mode':'hide'}); 758 }) 759 }, 760 761 showPagingInfo : function(){ 762 var totalNumberOfRecords = jQuery('#totalCount').val(); 763 var pageNumberElement = jQuery('.pageNumbersText'); 764 var pageRange = pageNumberElement.text(); 765 var newPagingInfo = pageRange+" "+app.vtranslate('of')+" "+totalNumberOfRecords; 766 var listViewEntriesCount = parseInt(jQuery('#noOfEntries').val()); 767 if(listViewEntriesCount != 0){ 768 jQuery('.pageNumbersText').html(newPagingInfo); 769 } else { 770 jQuery('.pageNumbersText').html(""); 771 } 772 }, 773 774 /** 775 * Function to update Pagining status 776 */ 777 updatePagination : function(){ 778 var previousPageExist = jQuery('#previousPageExist').val(); 779 var nextPageExist = jQuery('#nextPageExist').val(); 780 var previousPageButton = jQuery('#listViewPreviousPageButton'); 781 var nextPageButton = jQuery('#listViewNextPageButton'); 782 var listViewEntriesCount = jQuery('#noOfEntries').val(); 783 var pageStartRange = jQuery('#pageStartRange').val(); 784 var pageEndRange = jQuery('#pageEndRange').val(); 785 var pageJumpButton = jQuery('#listViewPageJump'); 786 var pages = jQuery('#totalPageCount').text(); 787 var totalNumberOfRecords = jQuery('.totalNumberOfRecords'); 788 var pageNumbersTextElem = jQuery('.pageNumbersText'); 789 790 if(pages == 1){ 791 pageJumpButton.attr('disabled',"disabled"); 792 } 793 if(pages > 1){ 794 pageJumpButton.removeAttr('disabled'); 795 } 796 797 if(previousPageExist != ""){ 798 previousPageButton.removeAttr('disabled'); 799 } else if(previousPageExist == "") { 800 previousPageButton.attr("disabled","disabled"); 801 } 802 803 if((nextPageExist != "") && (pages >1)){ 804 nextPageButton.removeAttr('disabled'); 805 } else if((nextPageExist == "") || (pages == 1)) { 806 nextPageButton.attr("disabled","disabled"); 807 } 808 if(listViewEntriesCount != 0){ 809 var pageNumberText = pageStartRange+" "+app.vtranslate('to')+" "+pageEndRange; 810 pageNumbersTextElem.html(pageNumberText); 811 totalNumberOfRecords.removeClass('hide'); 812 } else { 813 pageNumbersTextElem.html("<span> </span>"); 814 if(!totalNumberOfRecords.hasClass('hide')){ 815 totalNumberOfRecords.addClass('hide'); 816 } 817 } 818 819 }, 820 821 registerEvents: function(){ 822 var pageNumber = jQuery('#pageNumber').val(); 823 if(pageNumber == 1){ 824 jQuery('#listViewPreviousPageButton').attr("disabled", "disabled"); 825 } 826 this.registerEventForSelectAllInCurrentPage(); 827 this.registerSelectButton(); 828 this.registerEventForCheckboxChange(); 829 this.registerEventForSearch(); 830 this.registerEventForEnter(); 831 this.registerEventForSort(); 832 this.registerEventForListViewEntries(); 833 //this.triggerDisplayTypeEvent(); 834 var popupPageContainer = jQuery('#popupPageContainer'); 835 if(popupPageContainer.length > 0){ 836 this.registerEventForTotalRecordsCount(); 837 this.registerEventForPagination(); 838 } 839 } 840 }); 841 jQuery(document).ready(function() { 842 var popupInstance = Vtiger_Popup_Js.getInstance(); 843 var triggerEventName = jQuery('.triggerEventName').val(); 844 var documentHeight = (jQuery(document).height())+'px'; 845 jQuery('#popupPageContainer').css('height',documentHeight); 846 popupInstance.setEventName(triggerEventName); 847 popupInstance.registerEvents(); 848 Vtiger_Helper_Js.showHorizontalTopScrollBar(); 849 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |