//////////////////////////////////////////////////////////////////////////// // Rev: 2010.1 (P4JsApi 1.0 Example) // // NOTE: This is an example only, and should be modified to work in // a production environment! No warranty is expressed or implied. // Scripts should be tested thoroughly on a test server before // using in a production environment. // //////////////////////////////////////////////////////////////////////////// // Copyright (c) 2010, Perforce Software, Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL PERFORCE SOFTWARE, INC. BE LIABLE FOR ANY // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. //////////////////////////////////////////////////////////////////////////// var P4 = P4 || {}; P4.createDbstatWidget = function(container) { try { if( !container ) { return; } var mask = new Ext.LoadMask(Ext.get(container), {msg:"Loading...", removeMask: true}); mask.show(); var dbs = []; function dbstatCallback(output) { var key = 0; while( output.data[key] ) { if( output.data[key].type == "db" ) { var size = parseInt(output.data[key].fileSize); var graph = {}; graph.data = size/(1024*1024); graph.label = output.data[key].file; if( dbs.length < 5 ) { dbs.push(graph); } else { var last = dbs[0]; var remove = 0; for( var i = 1; i < dbs.length; i++ ) { if( graph.data > dbs[i].data && last.data > dbs[i].data ) { last = dbs[i]; remove = i; } } if( graph.data > last.data ) { dbs[remove] = graph; } } } key++; } for( var i = 0; i < dbs.length; i++ ) { var value = dbs[i].data; dbs[i].data = []; for( var j = 0; j < dbs.length + 1; j++ ) { dbs[i].data[j] = [j+.5,0]; } dbs[i].data[i][1] = value; } mask.hide(); Flotr.draw($(container), dbs, { bars: { show:true }, legend:{ show: false }, xaxis: { tickFormatter: function(number) { return dbs[parseInt(number)-1].label; }, }, yaxis: { tickFormatter: function(number) { return number + " mb"; }, } }); } P4JsApi.p4("dbstat -s", dbstatCallback); } catch(e) { alert(e); } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#4 | 7663 | dscheirer | Rollback //public/perforce/p4jsapi to changelist 7643 | ||
#3 | 7660 | jhalbig |
As per meeting to resolve issue with sync calls made from within async calls hanging P4V (job039138) pulling example code from Public Depot until it can be re-worked and confirmed to function correctly with pending P4JsApi changes. |
||
#2 | 7643 | jhalbig |
Cleaned up any remaining discrepancies in the code. Removed all internal references and debugging code. Cleaned up formatting, added more commenting for submit dialog code. Ready for 2010.1 Beta. |
||
#1 | 7638 | jhalbig | Initial Addition of P4JsApi samples for 2010.1 Beta |