[ Index ] |
|
Code source de SugarCRM 5.0.0beta1 |
1 {* 2 /** 3 * SugarCRM is a customer relationship management program developed by 4 * SugarCRM, Inc. Copyright (C) 2004 - 2007 SugarCRM Inc. 5 * 6 * This program is free software; you can redistribute it and/or modify it under 7 * the terms of the GNU General Public License version 3 as published by the 8 * Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 12 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 13 * details. 14 * 15 * You should have received a copy of the GNU General Public License along with 16 * this program; if not, see http://www.gnu.org/licenses or write to the Free 17 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18 * 02110-1301 USA. 19 * 20 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, 21 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. 22 * 23 * The interactive user interfaces in modified source and object code versions 24 * of this program must display Appropriate Legal Notices, as required under 25 * Section 5 of the GNU General Public License version 3. 26 * 27 * In accordance with Section 7(b) of the GNU General Public License version 3, 28 * these Appropriate Legal Notices must retain the display of the "Powered by 29 * SugarCRM" logo. If the display of the logo is not reasonably feasible for 30 * technical reasons, the Appropriate Legal Notices must display the words 31 * "Powered by SugarCRM". 32 */ 33 *} 34 {literal} 35 <script type="text/javascript" src="include/javascript/yui/container.js?s={$sugar_version}&c={$js_custom_version}"></script> 36 <script type='text/javascript' src='include/javascript/sugar_grp_yui_ext.js'></script> 37 <script type="text/javascript" src="include/javascript/yui/tabview.js"></script> 38 <script> 39 /* 40 * a reference to an instance of PackageManagerGrid 41 */ 42 var _pmg; 43 44 if(typeof PackageManager == 'undefined') { 45 PackageManager = function() { 46 var MAX_HEIGHT = 300; 47 var MIN_HEIGHT = 0; 48 var _treeHeight; 49 var _listHeight; 50 var _attributes = { 51 height: { to: MAX_HEIGHT } 52 }; 53 var _anim; 54 var keys = [ "local_upload","server_upload"]; 55 var tabPreviousKey = ''; 56 /* 57 * Maintain an array to hold which packages we would like to download 58 */ 59 var _packages; 60 /* 61 * Keep track of the current number of packages that have successfully 62 * downloaded 63 */ 64 var _numDownloadsComplete = 0; 65 /* 66 * The number of downloads we have to retrieve 67 */ 68 var _numPackagesToDownload = 0; 69 var _loginPanel; 70 var _tabs; 71 var _loadingBar; 72 73 return { 74 search: function() { 75 PackageManager.showWaiting(); 76 var searchTerm = document.getElementById('search_term').value; 77 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=performBasicSearch&search_term=' + searchTerm; 78 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 79 {success: PackageManager.completeSearch, failure: PackageManager.completeSearch}, postData); 80 }, 81 initWorkingDiv : function(){ 82 statusDiv = document.getElementById('workingStatusDiv'); 83 statusDiv.className = 'dataLabel'; 84 statusDiv.style.position = 'absolute'; 85 var fileview = document.getElementById('treeview'); 86 var top = fileview.offsetTop; 87 var height = fileview.offsetHeight; 88 var left = fileview.offsetLeft; 89 var width = fileview.offsetWidth; 90 statusDiv.style.top = (top+(height/2)); 91 statusDiv.style.left = (left+(width/2)); 92 }, 93 initDocumentationDiv : function(){ 94 documentationDiv = document.createElement('div'); 95 //documentationDiv.className = 'dataLabel'; 96 //documentationDiv.style.background = '#ffffff'; 97 documentationDiv.style.position = 'absolute'; 98 var fileview = document.getElementById('catview'); 99 var top = fileview.offsetTop; 100 var height = fileview.offsetHeight; 101 var left = fileview.offsetLeft; 102 var width = fileview.offsetWidth; 103 documentationDiv.style.top = (top+(height/2)); 104 documentationDiv.style.left = (left+(width/2)); 105 documentationDiv.id = 'documentation-div'; 106 documentationDiv.style.display = 'block'; 107 formDiv = document.createElement('form'); 108 documentationDiv.appendChild(formDiv); 109 document.body.appendChild(documentationDiv); 110 }, 111 initPMG: function(){ 112 113 114 115 //PackageManager.showLoginDialog(); 116 {/literal}{if $module_load == 'true'}{literal} 117 PackageManager.initTabs(); 118 _pmg = new PackageManagerGrid(); 119 _pmg.renderAll(); 120 //PackageManager.initWorkingDiv(); 121 //PackageManager.initDocumentationDiv(); 122 {/literal}{elseif $IS_ALIVE == 'true'}{literal} 123 _loadingBar = 124 new YAHOO.widget.Panel("wait", 125 { width:"240px", 126 fixedcenter:true, 127 close:false, 128 draggable:false, 129 modal:true, 130 visible:false, 131 effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 132 } 133 ); 134 135 _loadingBar.setHeader("Searching for updates..."); 136 _loadingBar.setBody("<img src=\"include/javascript/yui/assets/rel_interstitial_loading.gif\"/>"); 137 _loadingBar.render(document.body); 138 _loadingBar.show(); 139 _pmg = new PackageManagerGrid(); 140 PackageManager.refreshGrid(); 141 _pmg.renderAll(); 142 {/literal}{/if}{literal} 143 //PackageManager.initLicenseDiv(); 144 //PackageManager.initModuleStaging(); 145 146 var tabView = new YAHOO.widget.TabView('demo'); 147 PackageManager.checkForUpdates(); 148 }, 149 download : function(){ 150 if(confirm('{/literal}{$MOD.DOWNLOAD_QUESTION}{literal}')){ 151 152 _numDownloadsComplete = 0; 153 _numPackagesToDownload = 0; 154 var tree = YAHOO.widget.TreeView.getTree('treeview'); 155 var nodes = tree.getNodesByProperty('isSelected', true); 156 157 //var nodes = YAHOO.widget.TreeView.getNode(treeid, index); 158 if(nodes){ 159 PackageManager.showWaiting(); 160 _loadingBar = 161 new YAHOO.widget.Panel("wait", 162 { width:"240px", 163 fixedcenter:true, 164 close:false, 165 draggable:false, 166 modal:true, 167 visible:false, 168 effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 169 } 170 ); 171 172 _loadingBar.setHeader("Downloading..."); 173 _loadingBar.setBody("<img src=\"include/javascript/yui/assets/rel_interstitial_loading.gif\"/>"); 174 _loadingBar.render(document.body); 175 _loadingBar.show(); 176 //_numPackagesToDownload = nodes.length; 177 var count = nodes.length; 178 for(j = 0; j < count; j++){ 179 if(nodes[j].type == 'release'){ 180 _numPackagesToDownload++; 181 } 182 } 183 _loadingBar.setHeader("Downloading "+_numPackagesToDownload+" Package(s)"); 184 185 186 for (i = 0; i < count; i++){ 187 var release_id = -1; 188 var package_id = -1; 189 var category_id = -1; 190 191 if(nodes[i].type == 'package'){ 192 var package_id = nodes[i].data.id; 193 var category_id = nodes[i].category_id; 194 //postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=download&package_id=' + package_id + '&category_id=' + category_id; 195 //var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 196 // {success: PackageManager.downloadComplete, failure: PackageManager.downloadComplete}, postData); 197 }else if(nodes[i].type == 'release'){ 198 var release_id = nodes[i].data.id; 199 var package_id = nodes[i].package_id; 200 var category_id = nodes[i].category_id; 201 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=download&release_id=' + release_id + '&package_id=' + package_id + '&category_id=' + category_id; 202 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 203 {success: PackageManager.downloadComplete, failure: PackageManager.downloadComplete}, postData); 204 } 205 } 206 }//fi 207 } 208 }, 209 downloadComplete : function(data){ 210 211 PackageManager.hideWaiting(); 212 eval(data.responseText); 213 if(typeof result != 'undefined') { 214 _numDownloadsComplete++; 215 _loadingBar.setHeader("Downloading "+_numDownloadsComplete+" of "+_numPackagesToDownload+ " Package(s)"); 216 if(_numPackagesToDownload == _numDownloadsComplete){ 217 _loadingBar.hide(); 218 if(!{/literal}{$INSTALLATION}{literal}){ 219 PackageManager.getPackagesInStaging(); 220 }else{ 221 document.installForm.run.value = ''; 222 document.installForm.mode.value = 'noop'; 223 document.installForm.submit(); 224 } 225 } 226 } 227 228 }, 229 getPackagesInStaging : function(){ 230 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getPackagesInStaging'; 231 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 232 {success: PackageManager.populateGrid, failure: PackageManager.populateGrid}, postData); 233 }, 234 buildListView : function(result, showDownloadButton){ 235 var result_div = document.getElementById('search_results_div'); 236 display = "<table class='listView' width='100%' cellpadding='0' cellspacing='0' width='100%' border='0'>"; 237 display += "<tr><th align=left class='listViewThLinkS1'>{/literal}{$MOD.LBL_ML_NAME}{literal}</th><th align=left class='listViewThLinkS1'>{/literal}{$MOD.LBL_ML_TYPE}{literal}</th><th align=left class='listViewThLinkS1'>{/literal}{$MOD.LBL_ML_VERSION}{literal}</th><th align=left class='listViewThLinkS1'>{/literal}{$MOD.LBL_ML_PUBLISHED}{literal}</th><th class='listViewThLinkS1'>{/literal}{$MOD.LBL_ML_DESCRIPTION}{literal}</th><th class='listViewThLinkS1'>{/literal}{$MOD.LBL_ML_ACTION}{literal}</th></tr>"; 238 for (var x = 0; x < result['packages'].length; x++) 239 { 240 var class_css = "oddListRowS1"; 241 if((x % 2) == 0){ 242 class_css = "evenListRowS1"; 243 } 244 install_link = ''; 245 if(showDownloadButton){ 246 install_link += "<input type=submit class='button' name=\"btn_mode\" onclick=\"this.form.mode.value='Install';this.form.package_id.value="+result['packages'][x]['id']+";this.form.submit();\" value=\"{/literal}{$MOD.LBL_UW_BTN_DOWNLOAD}{literal}\" />"; 247 } 248 display += "<tr><td class=\""+class_css+"\" bgcolor='#ffffff' nowrap>"+result['packages'][x]['name']+"</td><td class=\""+class_css+"\" bgcolor='#ffffff' nowrap>"+result['packages'][x]['type']+"</td><td class=\""+class_css+"\" bgcolor='#ffffff' nowrap>"+result['packages'][x]['version']+"</td><td class=\""+class_css+"\" bgcolor='#ffffff' nowrap>"+result['packages'][x]['date_published']+"</td><td class=\""+class_css+"\" bgcolor='#ffffff' nowrap>"+result['packages'][x]['description']+"</td><td class=\""+class_css+"\" bgcolor='#ffffff' nowrap>"+install_link+"</td></tr>"; 249 }//rof 250 display += "</table>"; 251 return display; 252 }, 253 populateGrid : function(data){ 254 255 eval(data.responseText); 256 257 if(typeof result != 'undefined') { 258 //uncheck all treenodes 259 var tree = YAHOO.widget.TreeView.getTree('treeview'); 260 var root = tree.getRoot(); 261 262 PackageManager.uncheckAll(root); 263 _pmg.clearGrid(); 264 for (var x = 0; x < result['packages'].length; x++){ 265 var row = new Array(); 266 row[0] = result['packages'][x]['name']; 267 row[1] = result['packages'][x]['type']; 268 row[2] = result['packages'][x]['version']; 269 row[3] = result['packages'][x]['published_date']; 270 row[4] = result['packages'][x]['uninstallable']; 271 row[5] = result['packages'][x]['description']; 272 row[6] = result['packages'][x]['file_install']; 273 row[7] = result['packages'][x]['file']; 274 _pmg.addData(row); 275 }//rof 276 //_pmg.showGrid(); 277 } 278 }, 279 uncheckAll : function(node){ 280 var topNodes = node.children; 281 for(var i=0; i< topNodes.length; ++i) { 282 if(topNodes[i].checked){ 283 topNodes[i].uncheck(); 284 } 285 PackageManager.uncheckAll(topNodes[i]); 286 } 287 }, 288 completeSearch: function(data){ 289 290 eval(data.responseText); 291 292 if(typeof result != 'undefined') { 293 PackageManager.populateGrid(result); 294 } 295 PackageManager.hideWaiting(); 296 }, 297 toggleLowerDiv: function(outer_div, animate_div){ 298 var show_img = "<img src='themes/Sugar/images/advanced_search.gif' width='8' height='8' alt='Expand' border='0'>"; 299 var hide_img = "<img src='themes/Sugar/images/basic_search.gif' width='8' height='8' alt='Collapse' border='0'>"; 300 301 var spn = document.getElementById(outer_div); 302 var anim_div = document.getElementById(animate_div); 303 304 if(anim_div.style.display == 'block'){ 305 anim_div.style.display = 'none'; 306 }else{ 307 anim_div.style.display = 'block'; 308 } 309 spn.innerHTML =(anim_div.style.display == 'none') ? show_img+" Expand" : hide_img+" Collapse"; 310 }, 311 toggleDiv: function(outer_div, animate_div){ 312 var show_img = "<img src='themes/Sugar/images/advanced_search.gif' width='8' height='8' alt='Expand' border='0'>"; 313 var hide_img = "<img src='themes/Sugar/images/basic_search.gif' width='8' height='8' alt='Collapse' border='0'>"; 314 315 var spn = document.getElementById(outer_div); 316 var anim_div = document.getElementById(animate_div); 317 _attributes.height.to = (_attributes.height.to == MAX_HEIGHT) ? MIN_HEIGHT : MAX_HEIGHT; 318 if(!_anim){ 319 MAX_HEIGHT = anim_div.offsetHeight; 320 _attributes.height.to = MIN_HEIGHT; 321 } 322 _anim = new YAHOO.util.Anim(animate_div, _attributes, 0.5, YAHOO.util.Easing.bounceOut); 323 if(_attributes.height.to == MIN_HEIGHT){ 324 anim_div.style.display = 'none'; 325 }else{ 326 anim_div.style.display = 'block'; 327 } 328 spn.innerHTML =(_attributes.height.to == MIN_HEIGHT) ? show_img+" Expand" : hide_img+" Collapse"; 329 _anim.attributes = _attributes; 330 331 _anim.animate(); 332 333 }, 334 toggleView: function(type){ 335 var treeview = document.getElementById('treeview'); 336 var searchview = document.getElementById('searchview'); 337 if(type == 'browse'){ 338 treeview.style.display = 'block'; 339 searchview.style.display = 'none'; 340 }else{ 341 treeview.style.display = 'none'; 342 searchview.style.display = 'block'; 343 } 344 }, 345 selectTabCSS: function(key){ 346 for( var i=0; i<keys.length;i++) 347 { 348 var liclass = ''; 349 var linkclass = ''; 350 351 if ( key == keys[i]) 352 { 353 var liclass = 'active'; 354 var linkclass = 'current'; 355 document.getElementById(keys[i]+'_div').style.display = 'block'; 356 }else{ 357 document.getElementById(keys[i]+'_div').style.display = 'none'; 358 } 359 document.getElementById(keys[i]+'_li').className = liclass; 360 document.getElementById(keys[i]+'_link').className = linkclass; 361 } 362 tabPreviousKey = key; 363 }, 364 loadDataForNodeForPackage : function(node, onCompleteCallback){ 365 PackageManager.showWaiting(); 366 var id= node.data.id; 367 var callback = { 368 success: function(data) { 369 eval(data.responseText); 370 if(typeof result != 'undefined') { 371 var tmpNode = node; 372 for ( key in result['nodes'] ) { 373 if(result['nodes'][key]['type']){ 374 375 var myobj = { label: result['nodes'][key]['label'], id:result['nodes'][key]['id']}; 376 tmpNode= new YAHOO.widget.TextNode(myobj, node, false); 377 tmpNode.href = "javascript:PackageManager.catClick('treeview',"+tmpNode.index+");"; 378 tmpNode.setDynamicLoad(PackageManager.loadDataForNodeForPackage); 379 tmpNode.data['description'] = result['nodes'][key]['description']; 380 }else{ 381 tmpNode = node; 382 } 383 if(result['nodes'][key]['packages']){ 384 for(pKey in result['nodes'][key]['packages']){ 385 386 if(result['nodes'][key]['packages'][pKey]['releases'] && !result['nodes'][key]['packages'][pKey]['releases'].length && result['nodes'][key]['packages'][pKey]['releases'].length != 0){ 387 var myobj = { label: result['nodes'][key]['packages'][pKey]['label'], id:result['nodes'][key]['packages'][pKey]['id']}; 388 var tmpNodePackage = new YAHOO.widget.TaskNode(myobj, tmpNode, true); 389 tmpNodePackage.href = "javascript:PackageManager.packageClick('treeview',"+tmpNodePackage.index+");" 390 tmpNodePackage.description = result['nodes'][key]['packages'][pKey]['description'] 391 tmpNodePackage.type = 'package'; 392 tmpNodePackage.category_id = result['nodes'][key]['id']; 393 tmpNodePackage.onCheckClick = function(){ 394 this.data['isSelected'] = this.checked; 395 for (var i=0; i<this.children.length; ++i) { 396 this.children[i].data['isSelected'] = this.checked; 397 } 398 }; 399 if(result['nodes'][key]['packages'][pKey]['releases']){ 400 for(releaseKey in result['nodes'][key]['packages'][pKey]['releases']){ 401 var myobj = { label: result['nodes'][key]['packages'][pKey]['releases'][releaseKey]['label'], id:result['nodes'][key]['packages'][pKey]['releases'][releaseKey]['id']}; 402 403 if(result['nodes'][key]['packages'][pKey]['releases'][releaseKey]['enable'] == true){ 404 var tmpNodeRelease = new YAHOO.widget.TaskNode(myobj, tmpNodePackage, false); 405 tmpNodeRelease.setDynamicLoad(PackageManager.loadDataForNodeForRelease); 406 tmpNodeRelease.onCheckClick = function(){this.data['isSelected'] = this.checked;}; 407 }else{ 408 var tmpNodeRelease = new YAHOO.widget.TextNode(myobj, tmpNodePackage, true); 409 } 410 tmpNodeRelease.version = result['nodes'][key]['packages'][pKey]['releases'][releaseKey]['version'] 411 tmpNodeRelease.href = "javascript:PackageManager.releaseClick('treeview',"+tmpNodeRelease.index+");" 412 tmpNodeRelease.type = 'release'; 413 tmpNodeRelease.category_id = tmpNode.data.id; 414 tmpNodeRelease.package_id = result['nodes'][key]['packages'][pKey]['id']; 415 }//rof 416 }//fi 417 //tmpNodePackage.setDynamicLoad(PackageManager.loadDataForNodeForPackage); 418 }//fi 419 }//rof 420 }//fi 421 }//rof 422 }//fi 423 PackageManager.hideWaiting(); 424 onCompleteCallback(); 425 }, 426 failure: function(data) {onCompleteCallback();} 427 } 428 429 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getNodes&category_id=' + id; 430 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 431 callback, postData); 432 433 }, 434 showWaiting : function(text){ 435 var wait_div = document.getElementById('workingStatusDiv'); 436 wait_div.style.display = 'block'; 437 }, 438 hideWaiting : function(text){ 439 var wait_div = document.getElementById('workingStatusDiv'); 440 wait_div.style.display = 'none'; 441 }, 442 node_click : function(treeid){ 443 node=YAHOO.namespace(treeid).selectednode; 444 //request url. 445 document.installForm.mode.value='Install'; 446 document.installForm.package_id.value=node.data.id; 447 document.installForm.submit(); 448 }, 449 installPackage : function(file){ 450 PackageManager.showWaiting(); 451 //get the list of packages that belong to this node 452 var callback = { 453 success: function(data) { 454 eval(data.responseText); 455 if(typeof result != 'undefined') { 456 eval(data.responseText); 457 458 if(typeof result != 'undefined') { 459 var licenseDiv = document.getElementById('licenseDiv'); 460 licenseDiv.style.display = 'block'; 461 licenseDiv.innerHTML = result['license_display']; 462 } 463 }//fi 464 PackageManager.hideWaiting(); 465 onCompleteCallback(); 466 }, 467 failure: function(data) { onCompleteCallback();} 468 } 469 470 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getLicenseText&file='+file; 471 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 472 callback, postData); 473 }, 474 deletePackagae : function(package_id){ 475 alert(package_id); 476 }, 477 toggle_div : function toggle_div(id) 478 { 479 var show_img = "<img src='themes/Sugar/images/advanced_search.gif' width='8' height='8' alt='Show' border='0'>"; 480 var hide_img = "<img src='themes/Sugar/images/basic_search.gif' width='8' height='8' alt='Hide' border='0'>"; 481 var dv = document.getElementById("release_table_"+id); 482 var spn = document.getElementById("span_toggle_package_"+id); 483 dv.style.display =(dv.style.display == 'none') ? 'block' : 'none'; 484 485 spn.innerHTML =(dv.style.display == 'none') ? show_img+" " : hide_img+" "; 486 }, 487 processLicense : function(file){ 488 var licenseDiv = document.getElementById('licenseDiv'); 489 licenseDiv.style.display = 'none'; 490 PackageManager.showWaiting(); 491 //get the list of packages that belong to this node 492 var callback = { 493 success: function(data) { 494 eval(data.responseText); 495 if(typeof result != 'undefined') { 496 eval(data.responseText); 497 498 if(typeof result != 'undefined') { 499 500 } 501 }//fi 502 PackageManager.hideWaiting(); 503 onCompleteCallback(); 504 }, 505 failure: function(data) { onCompleteCallback();} 506 } 507 508 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=performInstall&file='+file; 509 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 510 callback, postData); 511 }, 512 getDocumentation : function(package_id, release_id){ 513 PackageManager.showWaiting(); 514 //var documentationWorkingDiv = document.getElementById('documentationWorkingDiv'); 515 //documentationWorkingDiv.style.display = 'block'; 516 //var documentationDiv = document.getElementById('Documentation'); 517 //get the list of packages that belong to this node 518 var callback = { 519 success: function(data) { 520 521 eval(data.responseText); 522 if(typeof result != 'undefined') { 523 var screenshot_count = 0; 524 var screenshot_html = "<table><tr>"; 525 var html = "<table><tr><th>Name</th><th>Description</th></tr>"; 526 for (var x = 0; x < result['documents'].length; x++){ 527 528 if(result['documents'][x]['type'] == 'image'){ 529 530 if((screenshot_count % 3) == 0){ 531 screenshot_html += "<tr>"; 532 } 533 var url = result['documents'][x]['url']; 534 if(result['documents'][x]['preview_url']){ 535 url = result['documents'][x]['preview_url']; 536 } 537 screenshot_html += "<td><a href='"+result['documents'][x]['url']+"' border='0' target='blank'><img src='"+url+"'></a></td>"; 538 if((screenshot_count % 3) == 0 && screenshot_count > 0){ 539 screenshot_html += "</tr>"; 540 } 541 screenshot_count++; 542 }else{ 543 html += "<tr>"; 544 html += "<td><a href='"+result['documents'][x]['url']+"' onClick='PackageManager.downloadedDocumentation("+result['documents'][x]['id']+");' target='blank'>"+result['documents'][x]['name']+"</a></td>"; 545 html += "<td>"+result['documents'][x]['description']+"</td>"; 546 html += "</tr>"; 547 } 548 }//rof 549 html += "</table>"; 550 screenshot_html += "</table>"; 551 var detailsTab = _tabs.getTab(1); 552 detailsTab.setContent(html, false); 553 var screenShotTab = _tabs.getTab(2); 554 screenShotTab.setContent(screenshot_html, false); 555 //detailsTab.activate(); 556 //documentationDiv.innerHTML = html; 557 //documentationWorkingDiv.style.display = 'none'; 558 PackageManager.hideWaiting(); 559 }//fi 560 onCompleteCallback(); 561 }, 562 failure: function(data) { documentationWorkingDiv.style.display = 'none'; PackageManager.hideWaiting();onCompleteCallback();} 563 } 564 565 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getDocumentation&package_id='+package_id+'&release_id='+release_id; 566 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 567 callback, postData); 568 }, 569 downloadedDocumentation : function(document_id){ 570 var callback = { 571 success: function(data) { 572 onCompleteCallback(); 573 }, 574 failure: function(data) { onCompleteCallback();} 575 } 576 577 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=downloadedDocumentation&document_id='+document_id; 578 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 579 callback, postData); 580 }, 581 packageClick : function(treeid, index){ 582 583 node=YAHOO.widget.TreeView.getNode(treeid, index); 584 //var dt = document.getElementById('Details'); 585 var html ="<table>"; 586 html += "<tr><td>Name:</td><td>"+node.label+"</td></tr>"; 587 html += "<tr><td>Description:</td><td>"+node.description+"</td></tr>"; 588 html += "</table>"; 589 //dt.innerHTML = html; 590 PackageManager.getDocumentation(node.data.id, ''); 591 var detailsTab = _tabs.getTab(0); 592 detailsTab.setContent(html, false); 593 detailsTab.activate(); 594 }, 595 releaseClick : function(treeid, index){ 596 node=YAHOO.widget.TreeView.getNode(treeid, index); 597 //var dt = document.getElementById('Details'); 598 var html ="<table>"; 599 html += "<tr><td>Description:</td><td>"+node.label+"</td></tr>"; 600 html += "<tr><td>Version:</td><td>"+node.version+"</td></tr>"; 601 html += "</table>"; 602 //dt.innerHTML = html; 603 var detailsTab = _tabs.getTab(0); 604 detailsTab.setContent(html, false); 605 detailsTab.activate(); 606 PackageManager.getDocumentation('', node.data.id); 607 608 }, 609 catClick : function(treeid, index){ 610 var node = YAHOO.namespace(treeid).selectednode; 611 //var dt = document.getElementById('Details'); 612 var html ="<table>"; 613 html += "<tr><td>Name:</td><td>"+node.label+"</td></tr>"; 614 html += "<tr><td>Description:</td><td>"+node.data['description']+"</td></tr>"; 615 html += "</table>"; 616 //dt.innerHTML = html; 617 var detailsTab = _tabs.getTab(0); 618 detailsTab.setContent(html, false); 619 detailsTab.activate(); 620 }, 621 select_package : function(package_id){ 622 var dv = document.getElementById("package_tr_"+package_id); 623 dv.style.display='none'; 624 var downloadTable = document.getElementById('filedownloadtable'); 625 var tr = document.createElement('tr'); 626 tr.innerHTML = dv.innerHTML 627 downloadTable.appendChild(tr); 628 var table = document.getElementById('fileviewtable'); 629 table.deleteRow(0); 630 631 }, 632 showErrors : function(errors){ 633 dialog = new YAHOO.ext.BasicDialog("loginView", { 634 //modal:true, 635 autoTabs:true, 636 width:500, 637 height:300, 638 shadow:true, 639 minWidth:300, 640 minHeight:250, 641 proxyDrag: true 642 }); 643 dialog.addKeyListener(27, dialog.hide, dialog); 644 dialog.addButton('Close', dialog.hide, dialog); 645 dialog.addButton('Submit', dialog.hide, dialog).disable(); 646 dialog.show(); 647 }, 648 select_release : function(release_id){ 649 var dv = document.getElementById("release_tr_"+release_id); 650 }, 651 checkForUpdates : function(){ 652 PackageManager.showWaiting(); 653 var callback = { 654 success: function(data) { 655 eval(data.responseText); 656 if(typeof result != 'undefined') { 657 var tree = YAHOO.widget.TreeView.getTree('treeview'); 658 var root = tree.getRoot(); 659 var myobj = { label: 'Updates', id:'updates'}; 660 tmpNode = tree.getNodeByProperty('id', 'updates'); 661 if(!tmpNode){ 662 tmpNode= new YAHOO.widget.TextNode(myobj, root, false); 663 tmpNode.data['description'] = 'Updates Found'; 664 }else{ 665 tree.removeChildren(tmpNode); 666 } 667 tmpNode.expanded = true; 668 669 for (var x = 0; x < result['updates'].length; x++){ 670 var myobj = { label: result['updates'][x]['label'], id:result['updates'][x]['id']}; 671 var tmpNodeRelease = new YAHOO.widget.TaskNode(myobj, tmpNode, false); 672 tmpNodeRelease.version = result['updates'][x]['version']; 673 tmpNodeRelease.href = "javascript:PackageManager.releaseClick('treeview',"+tmpNodeRelease.index+");" 674 tmpNodeRelease.setDynamicLoad(PackageManager.loadDataForNodeForRelease); 675 if(result['updates'][x]['type'] == 'patch'){ 676 tmpNodeRelease.onCheckClick = function(){this.uncheck();if(confirm('{/literal}{$MOD.MI_REDIRECT_TO_UPGRADE_WIZARD}{literal}')){location.href = '{/literal}{$UPGARDE_WIZARD_URL}{literal}'}}; 677 }else{ 678 tmpNodeRelease.onCheckClick = function(){this.data['isSelected'] = this.checked;}; 679 } 680 tmpNodeRelease.type = 'release'; 681 tmpNodeRelease.category_id = ''; 682 tmpNodeRelease.package_id = ''; 683 }//rof 684 tree.draw(); 685 }//fi 686 PackageManager.hideWaiting(); 687 onCompleteCallback(); 688 }, 689 failure: function(data) { onCompleteCallback();} 690 } 691 692 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=checkForUpdates&type=modules'; 693 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 694 callback, postData); 695 }, 696 showLoginDialog : function(show){ 697 var loginView = document.getElementById('loginView'); 698 var selectView = document.getElementById('selectView'); 699 var loginStyle = (show ? 'block' : 'none'); 700 var selectStyle = (show ? 'none' : 'block'); 701 loginView.style.display = loginStyle; 702 selectView.style.display = selectStyle; 703 }, 704 refreshTreeRoot : function(){ 705 PackageManager.showWaiting(); 706 _loadingBar.setHeader("Loading Categories..."); 707 var callback = { 708 success: function(data) { 709 _loadingBar.hide(); 710 eval(data.responseText); 711 if(typeof result != 'undefined') { 712 var tree = new YAHOO.widget.TreeView('treeview'); 713 714 var node = tree.getRoot(); 715 for (var x = 0; x < result['nodes'].length; x++){ 716 717 var myobj = { label: result['nodes'][x]['label'], id:result['nodes'][x]['id']}; 718 tmpNode= new YAHOO.widget.TextNode(myobj, node, false); 719 tmpNode.href = "javascript:PackageManager.catClick('treeview',"+tmpNode.index+");"; 720 tmpNode.setDynamicLoad(PackageManager.loadDataForNodeForPackage); 721 tmpNode.data['description'] = result['nodes'][x]['description']; 722 723 } 724 tree.draw(); 725 }//fi 726 PackageManager.hideWaiting(); 727 onCompleteCallback(); 728 }, 729 failure: function(data) {_loadingBar.hide();onCompleteCallback();} 730 } 731 732 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getCategories'; 733 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 734 callback, postData); 735 }, 736 refreshGrid : function(){ 737 PackageManager.showWaiting(); 738 _loadingBar.setHeader("Searching for packages..."); 739 var callback = { 740 success: function(data) { 741 _loadingBar.hide(); 742 eval(data.responseText); 743 if(typeof result != 'undefined') { 744 _pmg.clearGrid(); 745 746 for (var x = 0; x < result['releases'].length; x++){ 747 var row = new Array(); 748 row[0] = result['releases'][x]['description']; 749 row[1] = result['releases'][x]['version']; 750 row[2] = result['releases'][x]['build_number']; 751 row[3] = result['releases'][x]['id']; 752 _pmg.addData(row); 753 }//rof 754 755 }//fi 756 PackageManager.hideWaiting(); 757 onCompleteCallback(); 758 }, 759 failure: function(data) {_loadingBar.hide();onCompleteCallback();} 760 } 761 var types = "{/literal}{$GRID_TYPE}{literal}"; 762 //postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getReleases&types='+types; 763 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=checkForUpdates&type=modules'; 764 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 765 callback, postData); 766 }, 767 refreshHeader : function(){ 768 PackageManager.showWaiting(); 769 var callback = { 770 success: function(data) { 771 eval(data.responseText); 772 if(typeof result != 'undefined') { 773 var header_div = document.getElementById('span_display_html'); 774 header_div.innerHTML = result['promotion']; 775 }//fi 776 PackageManager.hideWaiting(); 777 onCompleteCallback(); 778 }, 779 failure: function(data) {onCompleteCallback();} 780 } 781 782 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=getPromotion'; 783 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 784 callback, postData); 785 }, 786 initTabs : function(){ 787 _tabs = new YAHOO.ext.TabPanel('tabs1'); 788 var detailTab = _tabs.addTab('details', "{/literal}{$MOD.ML_LBL_DETAIILS}{literal}"); 789 detailTab.setContent('{/literal}{$MOD.ML_DESC_DOCUMENTATION}{literal}', false); 790 _tabs.addTab('documentation', "{/literal}{$MOD.ML_LBL_DOCUMENTATION}{literal}"); 791 _tabs.addTab('screenshots', "{/literal}{$MOD.ML_LBL_SCREENSHOTS}{literal}"); 792 _tabs.addTab('reviews', "{/literal}{$MOD.ML_LBL_REVIEWS}{literal}"); 793 _tabs.activate('details'); 794 }, 795 remove : function(file){ 796 if(confirm('{/literal}{$MOD.REMOVE_QUESTION}{literal}')){ 797 PackageManager.showWaiting(); 798 var callback = { 799 success: function(data) { 800 eval(data.responseText); 801 if(typeof result != 'undefined') { 802 PackageManager.getPackagesInStaging(); 803 } 804 PackageManager.hideWaiting(); 805 onCompleteCallback(); 806 }, 807 failure: function(data) {onCompleteCallback();} 808 } 809 810 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=remove&file='+file 811 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 812 callback, postData); 813 }//fi 814 }, 815 authenticate : function(username, password, servername){ 816 //rrs 817 _loadingBar = 818 new YAHOO.widget.Panel("wait", 819 { width:"240px", 820 fixedcenter:true, 821 close:false, 822 draggable:false, 823 modal:true, 824 visible:false, 825 effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration:0.5} 826 } 827 ); 828 829 _loadingBar.setHeader("Authenticating..."); 830 _loadingBar.setBody("<img src=\"include/javascript/yui/assets/rel_interstitial_loading.gif\"/>"); 831 _loadingBar.render(document.body); 832 _loadingBar.show(); 833 //PackageManager.showWaiting(); 834 var btn = document.getElementById('panel_login_button'); 835 var cbTerms = document.getElementById('cb_terms'); 836 btn.value = 'Checking...'; 837 btn.disabled = true; 838 var callback = { 839 success: function(data) { 840 btn.value = 'Login'; 841 btn.disabled = false; 842 eval(data.responseText); 843 if(typeof result != 'undefined') { 844 if(result['status'] == 'success'){ 845 PackageManager.showLoginDialog(false); 846 {/literal}{if $module_load == 'true'}{literal} 847 848 PackageManager.refreshTreeRoot(); 849 {/literal}{else}{literal} 850 _pmg = new PackageManagerGrid(); 851 852 PackageManager.refreshGrid(); 853 _pmg.renderAll(); 854 {/literal}{/if}{literal} 855 PackageManager.refreshHeader(); 856 }else{ 857 _loadingBar.hide(); 858 alert(result['status']); 859 } 860 } 861 //PackageManager.hideWaiting(); 862 onCompleteCallback(); 863 }, 864 failure: function(data) { _loadingBar.hide();btn.value = 'Login';btn.disabled = false;onCompleteCallback();} 865 } 866 867 postData = 'to_pdf=1&module=Administration&action=HandleAjaxCall&method=authenticate&username='+username+'&password='+password + '&servername=' + servername + '&terms_checked=' + cbTerms.value; 868 var cObj = YAHOO.util.Connect.asyncRequest('POST','HandleAjaxCall.php', 869 callback, postData); 870 } 871 }; 872 }(); 873 } 874 875 var _fileGrid; 876 var _fileDownloadGrid; 877 var _fileGridInstalled; 878 {/literal}{$PATCHES}{literal} 879 {/literal}{$INSTALLED_MODULES}{literal} 880 PackageManagerGrid = function(){ 881 var sort = YAHOO.ext.grid.DefaultColumnModel.sortTypes; 882 {/literal}{if $module_load == 'true'}{literal} 883 _fileGrid = new YAHOO.ext.grid.DDGrid( 884 'patch_downloads', 885 new YAHOO.ext.grid.DefaultDataModel(mti_data), 886 new YAHOO.ext.grid.DefaultColumnModel([ 887 {header: 'Name', width: 200, sortable: true, sortType: sort.asUCString}, 888 {header: 'Type', width: 60}, 889 {header: 'Version', width: 50}, 890 {header: 'Published', width: 75}, 891 {header: 'Uninstallable', width: 70}, 892 {header: 'Description', width: 370, sortable: true, sortType: sort.asUCString}, 893 {header: 'Install', width: 60, renderer: this.renderInstallButton}, 894 {header: 'Delete', width: 120, renderer: this.renderDeleteButton} 895 ]) 896 ); 897 var dfColModel = 898 _fileGridInstalled = new YAHOO.ext.grid.DDGrid( 899 'installed_grid', 900 new YAHOO.ext.grid.DefaultDataModel(mti_installed_data), 901 new YAHOO.ext.grid.DefaultColumnModel([ 902 {header: 'Name', width: 200, sortable: true, sortType: sort.asUCString}, 903 {header: 'Type', width: 60}, 904 {header: 'Version', width: 50}, 905 {header: 'Date Installed', width: 90}, 906 {header: 'Uninstallable', width: 5, hidden:true}, 907 {header: 'Description', width: 650, sortable: true, sortType: sort.asUCString}, 908 {header: 'install', width: 5, hidden:true}, 909 {header: 'Action', width: 80, renderer: this.renderUninstallButton}, 910 {header: 'Enable/Disable', width: 80, renderer: this.renderEnableDisableButton} 911 ]) 912 ); 913 914 //_fileGridInstalled.autoSizeColumns = true; 915 //_fileGridInstalled.autoSizeHeaders = true; 916 _fileGridInstalled.render(); 917 {/literal}{else}{literal} 918 _fileGrid = new YAHOO.ext.grid.DDGrid( 919 'patch_downloads', 920 new YAHOO.ext.grid.DefaultDataModel([]), 921 new YAHOO.ext.grid.DefaultColumnModel([ 922 {header: 'Description', width: 215}, 923 {header: 'Version', width: 72}, 924 {header: 'Build', width: 80, sortable: true, sortType: sort.asUCString}, 925 {header: 'Action', width: 90, renderer: this.renderButtons} 926 ]) 927 ); 928 _fileGrid.autoSizeColumns = true; 929 _fileGrid.autoSizeHeaders = true; 930 {/literal}{/if}{literal} 931 } 932 933 PackageManagerGrid.prototype.renderModuleButtons = function(file){ 934 var output = '<table border=0 cellpadding=0 cellspacing=0><tr><td><form action="index.php?module=Administration&view=module&action=UpgradeWizard_prepare" method="post">'; 935 output += '<input type=submit class=\'button\' name="btn_mode" onclick="this.form.mode.value=\'Install\';this.form.submit();" value="{/literal}{$MOD.LBL_UW_BTN_INSTALL}{literal}" />'; 936 output += '<input type=hidden name="install_file" value="'+file+'" />'; 937 output += '<input type=hidden name="mode"/>'; 938 output += '</form></td><td> </td>'; 939 940 output += '<td><form action="index.php?module=Administration&view=module&action=UpgradeWizard" method="post">'; 941 output += '<input type=submit class=\'button\' name="run" value="{/literal}{$MOD.LBL_UW_BTN_DELETE_PACKAGE}{literal}" />'; 942 output += '<input type=hidden name="install_file" value="'+file+'" />'; 943 output += '</form></td></tr></table>'; 944 return output; 945 } 946 947 PackageManagerGrid.prototype.renderInstallButton = function(file){ 948 949 if(file.indexOf('errors_') == 0){ 950 var output = "<input type='button' class='button' value='Errors' onClick='javascript:alert(\""+file.substring(7)+"\");'>"; 951 }else{ 952 var output = '<form action="index.php?module=Administration&view=module&action=UpgradeWizard_prepare" method="post">'; 953 output += '<input type=submit class=\'button\' name="btn_mode" onclick="this.form.mode.value=\'Install\';this.form.submit();" value="{/literal}{$MOD.LBL_UW_BTN_INSTALL}{literal}" />'; 954 output += '<input type=hidden name="install_file" value="'+file+'" />'; 955 output += '<input type=hidden name="mode"/>'; 956 output += '</form>'; 957 } 958 return output; 959 } 960 PackageManagerGrid.prototype.renderUninstallButton = function(file){ 961 if(file.indexOf('errors_') == 0){ 962 var output = "<input type='button' class='button' value='Errors' onClick='javascript:alert(\""+file.substring(7)+"\");'>"; 963 }else if(file.indexOf('UNINSTALLABLE') == 0){ 964 var output = ''; 965 }else{ 966 var output = '<form action="index.php?module=Administration&view=module&action=UpgradeWizard_prepare" method="post">'; 967 output += '<input type=submit class=\'button\' name="btn_mode" onclick="this.form.mode.value=\'Uninstall\';this.form.submit();" value="{/literal}{$MOD.LBL_UW_UNINSTALL}{literal}" />'; 968 output += '<input type=hidden name="install_file" value="'+file+'" />'; 969 output += '<input type=hidden name="mode"/>'; 970 output += '</form>'; 971 } 972 return output; 973 } 974 975 PackageManagerGrid.prototype.renderEnableDisableButton = function(state_file){ 976 977 if(state_file.indexOf('ENABLED_') == 0){ 978 //enabled 979 var output = '<form action="index.php?module=Administration&view=module&action=UpgradeWizard_prepare" method="post">'; 980 file = state_file.substring(8); 981 output += '<input type=submit class=\'button\' name="btn_mode" onclick="this.form.mode.value=\'Disable\';this.form.submit();" value="{/literal}{$MOD.LBL_UW_DISABLE}{literal}" />'; 982 output += '<input type=hidden name="install_file" value="'+file+'" />'; 983 output += '<input type=hidden name="mode"/>'; 984 output += '</form>'; 985 }else if(state_file.indexOf('UNINSTALLABLE') == 0){ 986 var output = ''; 987 }else{ 988 var output = '<form action="index.php?module=Administration&view=module&action=UpgradeWizard_prepare" method="post">'; 989 file = state_file.substring(9); 990 output += '<input type=submit class=\'button\' name="btn_mode" onclick="this.form.mode.value=\'Enable\';this.form.submit();" value="{/literal}{$MOD.LBL_UW_ENABLE}{literal}" />'; 991 output += '<input type=hidden name="install_file" value="'+file+'" />'; 992 output += '<input type=hidden name="mode"/>'; 993 output += '</form>'; 994 } 995 996 return output; 997 } 998 999 PackageManagerGrid.prototype.renderDeleteButton = function(file){ 1000 var output = "<input type='button' class='button' value='{/literal}{$MOD.LBL_UW_BTN_DELETE_PACKAGE}{literal}' onClick='PackageManager.remove(\""+file+"\");'>"; 1001 //var output = '<form action="index.php?module=Administration&view=module&action=UpgradeWizard" method="post">'; 1002 // output += '<input type=submit class=\'button\' name="run" value="{/literal}{$MOD.LBL_UW_BTN_DELETE_PACKAGE}{literal}" />'; 1003 //output += '<input type=hidden name="install_file" value="'+file+'" />'; 1004 //output += '</form>'; 1005 return output; 1006 } 1007 1008 PackageManagerGrid.prototype.renderButtons = function(packageID){ 1009 var output = "<input type='button' value='Download' class='button' onClick=\"{/literal}{if $INSTALLATION != 0}{literal}this.form.run.value='upload';{/literal}{/if}{literal}this.form.release_id.value='"+packageID+"';this.form.submit();\">"; 1010 return output; 1011 } 1012 PackageManagerGrid.prototype.renderErrorLink = function(show){ 1013 var output = "<a href='#'>Errors</a>"; 1014 return output; 1015 } 1016 PackageManagerGrid.prototype.clearGrid = function(){ 1017 _fileGrid.getDataModel().removeAll(); 1018 } 1019 PackageManagerGrid.prototype.renderAll = function(){ 1020 _fileGrid.render(); 1021 } 1022 1023 PackageManagerGrid.prototype.addData = function(data){ 1024 _fileGrid.getDataModel().addRow(data); 1025 } 1026 1027 YAHOO.util.Event.on(window, 'load', PackageManager.initPMG, PackageManager, true); 1028 </script> 1029 {/literal}
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Tue Sep 11 10:48:47 2007 | par Balluche grâce à PHPXref 0.7 |