Merged in bugfix/HOR-3746 (pull request #6193)

HOR-3746

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Roly
2017-11-29 12:36:29 +00:00
committed by Julio Cesar Laura Avendaño
21 changed files with 0 additions and 5311 deletions

View File

@@ -1,35 +0,0 @@
<?php
class openFlashPlugin extends PMPlugin
{
function openFlashPlugin($sNamespace, $sFilename = null)
{
$res = parent::PMPlugin($sNamespace, $sFilename);
$this->sFriendlyName = 'openFlash Plugin';
$this->sDescription = 'Charts Plugin, with this plugin you can see many differents charts using interactive flash charts for ProcessMaker';
$this->sPluginFolder = 'openFlash';
$this->sSetupPage = 'setupPage';
$this->aWorkspaces = array ( );
$this->aWorkspaces = array ( 'dev');
$this->iVersion = 0.45;
return $res;
}
function setup()
{
$this->registerDashboard();
}
function install()
{
}
}
$oPluginRegistry =& PMPluginRegistry::getSingleton();
$oPluginRegistry->registerPlugin('openFlash', __FILE__);

View File

@@ -1,14 +0,0 @@
<?php
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
// use the chart class to build the chart:
require_once ( "class.openFlash.php" );
include_once( 'open-flash-chart.php' );
$chartsObj = new openFlashClass();
if ( method_exists( $chartsObj, $chartType) ) {
$chartsObj->{$chartType}();
die;
}

View File

@@ -1,11 +0,0 @@
<?php
$type = isset ( $_GET['type']) ? $_GET['type'] : '1' ;
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
$user = isset ( $_GET['user']) ? $_GET['user'] : $_SESSION['USER_LOGGED'] ;
include_once 'open_flash_chart_object.php';
open_flash_chart_object( 450, 200, '../openFlash/chart-data.php?type=' . $type .'&chart='. $chartType,
false , '/plugin/openFlash/');

View File

@@ -1,428 +0,0 @@
<?php
require_once ( "classes/model/Application.php" );
require_once ( "classes/model/AppDelegation.php" );
require_once ( "classes/model/Process.php" );
class openFlashClass extends PMPlugin {
function __construct ( ) {
}
function readConfig () {
$fileConf = PATH_PLUGINS . 'openFlash' . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
if ( !file_exists( dirname($fileConf) ) )
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
$content = file_get_contents ( $fileConf);
$fields = unserialize ($content);
return $fields;
}
function getFieldsForPageSetup () {
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
if ( !file_exists( dirname($fileConf) ) )
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
if ( file_exists ( $fileConf ) ) {
$content = file_get_contents ( $fileConf);
$fields = unserialize ($content);
}
else
$fields = array();
return $fields;
}
function updateFieldsForPageSetup ( $oData) {
$content = serialize ($oData['form']);
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
if ( !is_writable( dirname($fileConf) ) )
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist or this directory is not writable." ) );
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
file_put_contents ( $fileConf, $content);
return true;
}
function setup() {
}
function getChart( $chartName ) {
$this->readConfig();
$prePath = '/sys' . config("system.workspace") . '/' . SYS_LANG . '/blank/';
$obj = new StdClass();
$obj->title = 'Standard ProcessMaker Reports';
$obj->height = 220;
$obj->open->url = $prePath . 'openFlash/chart?chart=' . $chartName . "&u=";
return $obj;
}
//here we are defining the available charts, the dashboard setup will call this function to know the charts
function getAvailableCharts( ) {
return array (
'CasesByStatus',
'CasesByStatusPie',
'CasesByProcess',
'CasesByProcessPie'
);
}
/* definition of all charts */
/* that definition comes in two parts :
/* 1. the getXX () function to get the data from the databases
/* 2. the XX () function to draw the graph
*/
/** chart getCasesByStatus ***/
/** to show the Cases grouped by Status*/
function getCasesByStatus ( ) {
$dataSet = array();
$c = new Criteria('workflow');
$c->clearSelectColumns();
$c->addSelectColumn ( ApplicationPeer::APP_STATUS );
$c->addSelectColumn ( 'COUNT(*) AS CANT') ;
$c->addGroupByColumn(ApplicationPeer::APP_STATUS);
$rs = ApplicationPeer::doSelectRS( $c );
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = $row['APP_STATUS'];
$data[] = (int)$row['CANT'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$aux = intval($max / 6 ) * 6 + 6;
$dataSet['max'] = $aux;
return $dataSet;
}
function CasesByStatus( ) {
$dataSet = $this->getCasesByStatus();
$data = $dataSet['data'];
//$series2 = $dataSet['series2'];
$g = new graph();
$g->title( ' Cases by Status ', '{font-size: 14px;}' );
$bar_red = new bar_3d( 50, '#3334AD' );
$bar_red->key( 'cases', 10 );
$bar_red->data = $data;
$g->data_sets[] = $bar_red;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $dataSet['max'] );
$g->y_label_steps( 6 );
//$g->set_y_legend( 'Posts', 12, '#736AFF' );
echo $g->render();
}
function CasesByStatusPie ( ) {
$g->bg_colour = '#FFFFFF';
$dataSet = $this->getCasesByStatus();
$data = $dataSet['data'];
$g = new graph();
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['label'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Cases by Status', '{font-size:18px; color: #d01f3c}' );
echo $g->render();
}
/** chart CasesByProcess ***/
/** to show the cases grouped by Process */
function getCasesByProcess ( ) {
$dataSet = array();
$processObj = new Process;
$c = new Criteria('workflow');
$c->clearSelectColumns();
$c->addSelectColumn ( ApplicationPeer::PRO_UID );
$c->addSelectColumn ( 'COUNT(*) AS CANT') ;
//$c->addJoin( ProcessPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
$c->addGroupByColumn(ApplicationPeer::PRO_UID);
$rs = ApplicationPeer::doSelectRS( $c );
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$processObj->load ( $row['PRO_UID'] );
$label[] = $processObj->getProTitle();
$labelPie[] = substr ( $processObj->getProTitle(),0,16 );
$data[] = (int)$row['CANT'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
$dataSet['labelPie'] = $labelPie;
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$aux = intval($max / 6 ) * 6 + 6;
$dataSet['max'] = $aux;
return $dataSet;
}
function CasesByProcess( ) {
$dataSet = $this->getCasesByProcess();
$data = $dataSet['data'];
//$series2 = $dataSet['series2'];
$g = new graph();
$g->title( ' Cases by Process ', '{font-size: 14px;}' );
$bar_red = new bar_3d( 50, '#3334AD' );
$bar_red->key( 'cases', 10 );
$bar_red->data = $data;
$g->data_sets[] = $bar_red;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $dataSet['max'] );
$g->y_label_steps( 6 );
echo $g->render();
}
function CasesByProcessPie ( ) {
$g->bg_colour = '#FFFFFF';
$dataSet = $this->getCasesByProcess();
$data = $dataSet['data'];
$g = new graph();
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['labelPie'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Cases by Process', '{font-size:16px; color: #d01f3c}' );
echo $g->render();
}
/*
function getForumWeek ( ) {
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
Propel::init( $databases );
$dataSet = array();
$processObj = new Process;
$past2months = mktime(0, 0, 0, date("m") -2 , date("d"), date("Y"));
$con = Propel::getConnection('forum');
$sql = "select week(FROM_UNIXTIME(post_time )) as week ,count(*) as cant from phpbb_posts where post_time > $past2months group by week " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = date ( 'M d', mktime(0, 0, 0, 1 , $row['week']*7, date("Y")) );
$data[] = $row['cant'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function ForumWeek ( ) {
$dataSet = $this->getForumWeek();
$data = $dataSet['data'];
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$g = new graph();
$g->title( ' Posts by Week ', '{font-size: 16px;}' );
$bar_red = new bar_3d( 50, '#3334AD' );
$bar_red->key( 'week', 10 );
$bar_red->data = $data;
$g->data_sets[] = $bar_red;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $max );
$g->y_label_steps( 5 );
$g->set_y_legend( 'Posts', 12, '#736AFF' );
echo $g->render();
}
/** chart PostByUser ***/
/** to show the last 7 days grouped by user * /
function getPostByUser ( ) {
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
Propel::init( $databases );
$dataSet = array();
$con = Propel::getConnection('forum');
$past7days = mktime(0, 0, 0, date("m") , date("d")-7, date("Y"));
$sql = "select username, count(*) as cant from phpbb_posts left join phpbb_users on ( poster_id = user_id ) where post_time > $past7days group by username " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = $row['username'];
$data[] = $row['cant'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
//$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function PostByUser ( ) {
$dataSet = $this->getPostByUser();
$data = $dataSet['data'];
$g = new graph();
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$max = intval($max / 4 ) * 4 + 4;
$bar_red = new bar_3d( 50, '#356aa0' );
$bar_red->key( 'posts', 10 );
$bar_red->data = $data;
$bar_blue = new bar_3d( 75, '#D54C78' );
$bar_blue->key( 'completed', 10 );
$bar_blue->data = $data;
$g->data_sets[] = $bar_red;
//$g->data_sets[] = $bar_blue;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $max );
$g->y_label_steps( 4 );
$g->set_y_legend( 'Processmaker', 12, '#736AFF' );
echo $g->render();
}
/** chart BugsByStatus ***/
/** to show the bugs by status resolved, open, closed * /
function getBugsByStatus ( ) {
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
Propel::init( $databases );
$dataSet = array();
$con = Propel::getConnection('bugs');
//open
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status in (20,30,40,50) " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$label[] = 'open';
$data[] = $row['cant'];
//resolved
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 80" ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$label[] = 'resolved';
$data[] = $row['cant'];
//closed
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 90" ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$label[] = 'closed';
$data[] = $row['cant'];
$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function BugsByStatus ( ) {
$dataSet = $this->getBugsByStatus();
$data = $dataSet['data'];
$g = new graph();
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
$g->pie(70,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['label'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Bugs by Status', '{font-size:18px; color: #d01f3c}' );
echo $g->render();
}
/** chart BugsOpenByUser ***/
/** to show the bugs in OPEN status by user * /
function getBugsOpenByUser ( ) {
$databases = PATH_PLUGINS . "/openFlash/config/databases.php";
Propel::init( $databases );
$dataSet = array();
$con = Propel::getConnection('bugs');
$sql = "SELECT username, count(*) as cant FROM mantis_bug_table left join mantis_user_table on ( mantis_user_table.id = handler_id) where project_id = 31 and status in (20,30,40,50) group by username " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = $row['username'];
$data[] = $row['cant'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function BugsOpenByUser ( ) {
$g->bg_colour = '#EFFFEF';
$dataSet = $this->getBugsOpenByUser();
$data = $dataSet['data'];
$g = new graph();
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['label'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Open Bugs by User', '{font-size:18px; color: #d01f3c}' );
echo $g->render();
}
/*******/
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,109 +0,0 @@
<?php
function open_flash_chart_object_str( $width, $height, $url, $use_swfobject=true, $base='' )
{
//
// return the HTML as a string
//
return _ofc( $width, $height, $url, $use_swfobject, $base );
}
function open_flash_chart_object( $width, $height, $url, $use_swfobject=true, $base='' )
{
//
// stream the HTML into the page
//
echo _ofc( $width, $height, $url, $use_swfobject, $base );
}
function _ofc( $width, $height, $url, $use_swfobject, $base )
{
//
// I think we may use swfobject for all browsers,
// not JUST for IE...
//
//$ie = strstr(getenv('HTTP_USER_AGENT'), 'MSIE');
//
// escape the & and stuff:
//
$url = urlencode($url);
//
// output buffer
//
$out = array();
//
// check for http or https:
//
if (isset ($_SERVER['HTTPS']))
{
if (strtoupper ($_SERVER['HTTPS']) == 'ON')
{
$protocol = 'https';
}
else
{
$protocol = 'http';
}
}
else
{
$protocol = 'http';
}
//
// if there are more than one charts on the
// page, give each a different ID
//
global $open_flash_chart_seqno;
$obj_id = 'chart';
$div_name = 'flashcontent';
//$out[] = '<script type="text/javascript" src="'. $base .'ofc.js"></script>';
if( !isset( $open_flash_chart_seqno ) )
{
$open_flash_chart_seqno = 1;
$out[] = '<script type="text/javascript" src="'. $base .'swfobject.js"></script>';
}
else
{
$open_flash_chart_seqno++;
$obj_id .= '_'. $open_flash_chart_seqno;
$div_name .= '_'. $open_flash_chart_seqno;
}
if( $use_swfobject )
{
// Using library for auto-enabling Flash object on IE, disabled-Javascript proof
$out[] = '<div id="'. $div_name .'"></div>';
$out[] = '<script type="text/javascript">';
$out[] = 'var so = new SWFObject("'. $base .'open-flash-chart.swf", "'. $obj_id .'", "'. $width . '", "' . $height . '", "9", "#FFFFFF");';
//$out[] = 'so.addVariable("width", "' . $width . '");';
//$out[] = 'so.addVariable("height", "' . $height . '");';
$out[] = 'so.addVariable("data", "'. $url . '");';
$out[] = 'so.addParam("allowScriptAccess", "sameDomain");';
$out[] = 'so.write("'. $div_name .'");';
$out[] = '</script>';
$out[] = '<noscript>';
}
$out[] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' . $protocol . '://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ';
$out[] = 'width="' . $width . '" height="' . $height . '" id="ie_'. $obj_id .'" align="middle">';
$out[] = '<param name="allowScriptAccess" value="sameDomain" />';
$out[] = '<param name="movie" value="'. $base .'open-flash-chart.swf?width='. $width .'&height='. $height . '&data='. $url .'" />';
$out[] = '<param name="quality" value="high" />';
$out[] = '<param name="bgcolor" value="#FFFFFF" />';
$out[] = '<embed src="'. $base .'open-flash-chart.swf?data=' . $url .'" quality="high" bgcolor="#FFFFFF" width="'. $width .'" height="'. $height .'" name="'. $obj_id .'" align="middle" allowScriptAccess="sameDomain" ';
$out[] = 'type="application/x-shockwave-flash" pluginspage="' . $protocol . '://www.macromedia.com/go/getflashplayer" id="'. $obj_id .'"/>';
$out[] = '</object>';
if ( $use_swfobject ) {
$out[] = '</noscript>';
}
return implode("\n",$out);
}
?>

View File

@@ -1,233 +0,0 @@
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
if (!document.getElementById) { return; }
this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params = new Object();
this.variables = new Object();
this.attributes = new Array();
if(swf) { this.setAttribute('swf', swf); }
if(id) { this.setAttribute('id', id); }
if(w) { this.setAttribute('width', w); }
if(h) { this.setAttribute('height', h); }
if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
if (!window.opera && document.all && this.installedVer.major > 7) {
// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
deconcept.SWFObject.doPrepUnload = true;
}
if(c) { this.addParam('bgcolor', c); }
var q = quality ? quality : 'high';
this.addParam('quality', q);
this.setAttribute('useExpressInstall', false);
this.setAttribute('doExpressInstall', false);
var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
this.setAttribute('xiRedirectUrl', xir);
this.setAttribute('redirectUrl', '');
if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
useExpressInstall: function(path) {
this.xiSWFPath = !path ? "expressinstall.swf" : path;
this.setAttribute('useExpressInstall', true);
},
setAttribute: function(name, value){
this.attributes[name] = value;
},
getAttribute: function(name){
return this.attributes[name];
},
addParam: function(name, value){
this.params[name] = value;
},
getParams: function(){
return this.params;
},
addVariable: function(name, value){
this.variables[name] = value;
},
getVariable: function(name){
return this.variables[name];
},
getVariables: function(){
return this.variables;
},
getVariablePairs: function(){
var variablePairs = new Array();
var key;
var variables = this.getVariables();
for(key in variables){
variablePairs[variablePairs.length] = key +"="+ variables[key];
}
return variablePairs;
},
getSWFHTML: function() {
var swfNode = "";
if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
if (this.getAttribute("doExpressInstall")) {
this.addVariable("MMplayerType", "PlugIn");
this.setAttribute('swf', this.xiSWFPath);
}
swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
var params = this.getParams();
for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
var pairs = this.getVariablePairs().join("&");
if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
swfNode += '/>';
} else { // PC IE
if (this.getAttribute("doExpressInstall")) {
this.addVariable("MMplayerType", "ActiveX");
this.setAttribute('swf', this.xiSWFPath);
}
swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
var params = this.getParams();
for(var key in params) {
swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
}
var pairs = this.getVariablePairs().join("&");
if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
swfNode += "</object>";
}
return swfNode;
},
write: function(elementId){
if(this.getAttribute('useExpressInstall')) {
// check to see if we need to do an express install
var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
this.setAttribute('doExpressInstall', true);
this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
this.addVariable("MMdoctitle", document.title);
}
}
if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
n.innerHTML = this.getSWFHTML();
return true;
}else{
if(this.getAttribute('redirectUrl') != "") {
document.location.replace(this.getAttribute('redirectUrl'));
}
}
return false;
}
}
/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins && navigator.mimeTypes.length){
var x = navigator.plugins["Shockwave Flash"];
if(x && x.description) {
PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
}
}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
var axo = 1;
var counter = 3;
while(axo) {
try {
counter++;
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
// document.write("player v: "+ counter);
PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
} catch (e) {
axo = null;
}
}
} else { // Win IE (non mobile)
// do minor version lookup in IE, but avoid fp6 crashing issues
// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
try{
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
}catch(e){
try {
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
} catch(e) {
if (PlayerVersion.major == 6) {
return PlayerVersion;
}
}
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
} catch(e) {}
}
if (axo != null) {
PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
}
}
return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
if(this.major < fv.major) return false;
if(this.major > fv.major) return true;
if(this.minor < fv.minor) return false;
if(this.minor > fv.minor) return true;
if(this.rev < fv.rev) return false;
return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
getRequestParameter: function(param) {
var q = document.location.search || document.location.hash;
if (param == null) { return q; }
if(q) {
var pairs = q.substring(1).split("&");
for (var i=0; i < pairs.length; i++) {
if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
return pairs[i].substring((pairs[i].indexOf("=")+1));
}
}
}
return "";
}
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
var objects = document.getElementsByTagName("OBJECT");
for (var i = objects.length - 1; i >= 0; i--) {
objects[i].style.display = 'none';
for (var x in objects[i]) {
if (typeof objects[i][x] == 'function') {
objects[i][x] = function(){};
}
}
}
}
// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
if (deconcept.SWFObject.doPrepUnload) {
if (!deconcept.unloadSet) {
deconcept.SWFObjectUtil.prepUnload = function() {
__flash_unloadHandler = function(){};
__flash_savedUnloadHandler = function(){};
window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
}
window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
deconcept.unloadSet = true;
}
}
/* add document.getElementById if needed (mobile IE < 5) */
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}
/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm
name="About Charts Plugin"
type="xmlform"
width="550"
>
<TITLE type="title" >
<en>Open Flash Charts Plugin</en>
</TITLE>
<sTITLE type="subtitle" >
<en>Open Charts Plugin, with this plugin you can see many differents charts using interative flash charts</en>
</sTITLE>
<ACCEPT type="submit" >
<en>Save</en>
</ACCEPT>
</dynaForm>

View File

@@ -1,35 +0,0 @@
<?php
class pmosCommunityPlugin extends PMPlugin
{
function pmosCommunityPlugin($sNamespace, $sFilename = null)
{
$res = parent::PMPlugin($sNamespace, $sFilename);
$this->sFriendlyName = 'PMOS Community Plugin';
$this->sDescription = 'Community Charts Plugin, with this plugin you can see many differents charts related to ProcessMaker Open Source Community';
$this->sPluginFolder = 'pmosCommunity';
$this->sSetupPage = 'setupPage';
$this->iVersion = 0.45;
$this->aWorkspaces = array ( 'os' );
return $res;
}
function setup()
{
//$this->registerTrigger( 10000, 'createCaseFolder' );
$this->registerDashboard();
}
function install()
{
}
}
$oPluginRegistry =& PMPluginRegistry::getSingleton();
$oPluginRegistry->registerPlugin('pmosCommunity', __FILE__);

View File

@@ -1,14 +0,0 @@
<?php
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
// use the chart class to build the chart:
require_once ( "class.pmosCommunity.php" );
include_once( 'open-flash-chart.php' );
$chartsObj = new pmosCommunityClass();
if ( method_exists( $chartsObj, $chartType) ) {
$chartsObj->{$chartType}();
die;
}

View File

@@ -1,11 +0,0 @@
<?php
$type = isset ( $_GET['type']) ? $_GET['type'] : '1' ;
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
$user = isset ( $_GET['user']) ? $_GET['user'] : $_SESSION['USER_LOGGED'] ;
include_once 'open_flash_chart_object.php';
open_flash_chart_object( 450, 200, '../pmosCommunity/chart-data.php?type=' . $type .'&chart='. $chartType,
false , '/plugin/pmosCommunity/');

View File

@@ -1,477 +0,0 @@
<?php
require_once ( "classes/model/Application.php" );
require_once ( "classes/model/AppDelegation.php" );
require_once ( "classes/model/Process.php" );
class pmosCommunityClass extends PMPlugin {
function __construct ( ) {
}
function readConfig () {
$fileConf = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
if ( !file_exists( dirname($fileConf) ) )
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
$content = file_get_contents ( $fileConf);
$fields = unserialize ($content);
return $fields;
}
function getFieldsForPageSetup () {
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
if ( !file_exists( dirname($fileConf) ) )
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist." ) );
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
if ( file_exists ( $fileConf ) ) {
$content = file_get_contents ( $fileConf);
$fields = unserialize ($content);
}
else
$fields = array();
return $fields;
}
function updateFieldsForPageSetup ( $oData) {
$content = serialize ($oData['form']);
$fileConf = PATH_PLUGINS . $this->sPluginFolder . PATH_SEP . 'config' . PATH_SEP . 'setup.conf';
if ( !is_writable( dirname($fileConf) ) )
throw ( new Exception ("The directory " . dirname($fileConf) . " doesn't exist or this directory is not writable." ) );
if ( file_exists ( $fileConf ) && !is_writable( $fileConf ) )
throw ( new Exception ("The file $fileConf doesn't exist or this file is not writable." ) );
file_put_contents ( $fileConf, $content);
return true;
}
function setup() {
}
function getChart( $chartName ) {
$this->readConfig();
$prePath = '/sys' . config("system.workspace") . '/' . SYS_LANG . '/blank/';
$obj = new StdClass();
switch ($chartName) {
case 'PostByForum':
$obj->title = 'Community ProcessMaker Forum - Per Forum';
break;
case 'ForumWeek':
$obj->title = 'Community ProcessMaker Forum - Per Week';
break;
case 'PostByUser':
$obj->title = 'Community ProcessMaker Forum - Per User';
break;
case 'BugsOpenByUser':
$obj->title = 'Community ProcessMaker Forum - Per Post Author';
break;
case 'BugsByStatus':
$obj->title = 'Community ProcessMaker Forum - Bugs';
break;
}
$obj->height = 220;
$obj->image = $prePath . 'pmosCommunity/drawChart?chart=' . $chartName . "&u=";
return $obj;
}
//here we are defining the available charts, the dashboard setup will call this function to know the charts
function getAvailableCharts( ) {
return array (
'PostByForum',
'ForumWeek',
'PostByUser',
'BugsOpenByUser',
'BugsByStatus'
);
}
/* definition of all charts */
/* that definition comes in two parts :
/* 1. the getXX () function to get the data from the databases
/* 2. the XX () function to draw the graph
*/
/** chart PostByForum ***/
/** to show the last 2 months post grouped by forum and for topic */
function getPostByForum ( ) {
$dataSet = array();
$past1months = mktime(0, 0, 0, date("m") -1 , date("d"), date("Y"));
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
Propel::init( $databases );
$con = Propel::getConnection('forum');
$sql = "select forum_name, count(*) as cant from phpbb_posts left join phpbb_forums on ( phpbb_posts.forum_id = phpbb_forums.forum_id ) where post_time > $past1months group by forum_name " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
if ( strlen ( trim ($row['forum_name']) ) > 0 ) {
$label[] = $row['forum_name'];
$data[] = $row['cant'];
}
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
$sql = "select forum_name, count( distinct( topic_id)) as cant from phpbb_posts left join phpbb_forums on ( phpbb_posts.forum_id = phpbb_forums.forum_id ) where post_time > $past1months group by forum_name " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
if ( strlen ( trim ($row['forum_name']) ) > 0 ) {
//$label[] = $row['forum_name'];
$series2[] = $row['cant'];
}
$rs->next();
$row = $rs->getRow();
}
$dataSet['series2'] = $series2;
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$aux = intval($max / 6 ) * 6 + 6;
$dataSet['max'] = $aux;
return $dataSet;
}
function PostByForum( ) {
$chart = new VerticalBarChart(430, 220);
$dataSet = $this->getPostByForum();
$dataPostSet = new XYDataSet();
$dataTopicSet = new XYDataSet();
foreach ( $dataSet['label'] as $key => $label ) {
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
$dataTopicSet->addPoint(new Point( $label, $dataSet['series2'][$key] )) ;
}
$multidataSet = new XYSeriesDataSet();
$multidataSet->addSerie("Posts", $dataPostSet);
$multidataSet->addSerie("Topics", $dataTopicSet);
$chart->setDataSet($multidataSet);
$chart->setTitle( "Posts by Forum ( last month ) " );
$chart->render();
}
function PostByForumFlash( ) {
$dataSet = $this->getPostByForum();
$data = $dataSet['data'];
$series2 = $dataSet['series2'];
$g = new graph();
$g->title( ' Posts by Forum ( last month )', '{font-size: 16px;}' );
$bar_red = new bar_3d( 50, '#3334AD' );
$bar_red->key( 'posts', 10 );
$bar_red->data = $data;
$bar_blue = new bar_3d( 75, '#D54C78' );
$bar_blue->key( 'topics', 11 );
$bar_blue->data = $series2;
$g->data_sets[] = $bar_red;
$g->data_sets[] = $bar_blue;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $dataSet['max'] );
$g->y_label_steps( 6 );
//$g->set_y_legend( 'Posts', 12, '#736AFF' );
echo $g->render();
}
/** chart ForumWeek ***/
/** to show the last 2 months post grouped by week */
function getForumWeek ( ) {
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
Propel::init( $databases );
$dataSet = array();
$processObj = new Process;
$past2months = mktime(0, 0, 0, date("m") -2 , date("d"), date("Y"));
$con = Propel::getConnection('forum');
$sql = "select week(FROM_UNIXTIME(post_time )) as week ,count(*) as cant from phpbb_posts where post_time > $past2months group by week " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = date ( 'M d', mktime(0, 0, 0, 1 , $row['week']*7, date("Y")) );
$data[] = $row['cant'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function ForumWeek( ) {
$chart = new VerticalBarChart(430, 220);
$dataSet = $this->getForumWeek();
$dataPostSet = new XYDataSet();
$dataTopicSet = new XYDataSet();
foreach ( $dataSet['label'] as $key => $label ) {
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
}
$chart->setDataSet($dataPostSet);
$chart->setTitle( " Posts by Week " );
$chart->render();
}
function ForumWeekFlash ( ) {
$dataSet = $this->getForumWeek();
$data = $dataSet['data'];
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$g = new graph();
$g->title( ' Posts by Week ', '{font-size: 16px;}' );
$bar_red = new bar_3d( 50, '#3334AD' );
$bar_red->key( 'week', 10 );
$bar_red->data = $data;
$g->data_sets[] = $bar_red;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $max );
$g->y_label_steps( 5 );
$g->set_y_legend( 'Posts', 12, '#736AFF' );
echo $g->render();
}
/** chart PostByUser ***/
/** to show the last 7 days grouped by user */
function getPostByUser ( ) {
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
Propel::init( $databases );
$dataSet = array();
$con = Propel::getConnection('forum');
$past7days = mktime(0, 0, 0, date("m") , date("d")-7, date("Y"));
$sql = "select username, count(*) as cant from phpbb_posts left join phpbb_users on ( poster_id = user_id ) where post_time > $past7days group by username " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = $row['username'];
$data[] = $row['cant'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
//$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function PostByUser ( ) {
$chart = new VerticalBarChart(430, 220);
$dataSet = $this->getPostByUser();
$dataPostSet = new XYDataSet();
$dataTopicSet = new XYDataSet();
foreach ( $dataSet['label'] as $key => $label ) {
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
}
$chart->setDataSet($dataPostSet);
//$chart->setTitle( " Posts by User" );
$chart->render();
}
function PostByUserFlash ( ) {
$dataSet = $this->getPostByUser();
$data = $dataSet['data'];
$g = new graph();
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
$max = 1;
foreach ( $dataSet['data'] as $k => $val ) if ( $val > $max ) $max = $val;
$max = intval($max / 4 ) * 4 + 4;
$bar_red = new bar_3d( 50, '#356aa0' );
$bar_red->key( 'posts', 10 );
$bar_red->data = $data;
$bar_blue = new bar_3d( 75, '#D54C78' );
$bar_blue->key( 'completed', 10 );
$bar_blue->data = $data;
$g->data_sets[] = $bar_red;
//$g->data_sets[] = $bar_blue;
$g->set_x_axis_3d( 12 );
$g->x_axis_colour( '#909090', '#ADB5C7' );
$g->y_axis_colour( '#909090', '#ADB5C7' );
$g->set_x_labels( $dataSet['label'] );
$g->set_y_max( $max );
$g->y_label_steps( 4 );
$g->set_y_legend( 'Processmaker', 12, '#736AFF' );
echo $g->render();
}
/** chart BugsByStatus ***/
/** to show the bugs by status resolved, open, closed */
function getBugsByStatus ( ) {
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
Propel::init( $databases );
$dataSet = array();
$con = Propel::getConnection('bugs');
//open
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status in (20,30,40,50) " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$label[] = 'open';
$data[] = $row['cant'];
//resolved
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 80" ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$label[] = 'resolved';
$data[] = $row['cant'];
//closed
$sql = "SELECT count(*) as cant FROM mantis_bug_table where project_id = 31 and status = 90" ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
$label[] = 'closed';
$data[] = $row['cant'];
$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function BugsByStatus ( ) {
$chart = new VerticalBarChart(430, 220);
$dataSet = $this->getBugsByStatus();
$dataPostSet = new XYDataSet();
$dataTopicSet = new XYDataSet();
foreach ( $dataSet['label'] as $key => $label ) {
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
}
$chart->setDataSet($dataPostSet);
//$chart->setTitle( " Posts by User" );
$chart->render();
}
function BugsByStatusFlash ( ) {
$dataSet = $this->getBugsByStatus();
$data = $dataSet['data'];
$g = new graph();
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
$g->pie(70,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['label'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Bugs by Status', '{font-size:18px; color: #d01f3c}' );
echo $g->render();
}
/** chart BugsOpenByUser ***/
/** to show the bugs in OPEN status by user */
function getBugsOpenByUser ( ) {
$databases = PATH_PLUGINS . 'pmosCommunity' . PATH_SEP . 'config' . PATH_SEP . 'databases.php';
Propel::init( $databases );
$dataSet = array();
$con = Propel::getConnection('bugs');
$sql = "SELECT username, count(*) as cant FROM mantis_bug_table left join mantis_user_table on ( mantis_user_table.id = handler_id) where project_id = 31 and status in (20,30,40,50) group by username " ;
$stmt = $con->createStatement();
$rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC);
$rs->next();
$row = $rs->getRow();
while ( is_array ( $row ) ) {
$label[] = $row['username'];
$data[] = $row['cant'];
$rs->next();
$row = $rs->getRow();
}
$dataSet['data'] = $data;
$dataSet['label'] = $label;
return $dataSet;
}
function BugsOpenByUser ( ) {
$chart = new VerticalBarChart(430, 220);
$dataSet = $this->getBugsOpenByUser();
$dataPostSet = new XYDataSet();
$dataTopicSet = new XYDataSet();
foreach ( $dataSet['label'] as $key => $label ) {
$dataPostSet->addPoint(new Point( $label, $dataSet['data'][$key] )) ;
}
$chart->setDataSet($dataPostSet);
//$chart->setTitle( " Posts by User" );
$chart->render();
}
function BugsOpenByUserFlash ( ) {
$dataSet = $this->getBugsOpenByUser();
$data = $dataSet['data'];
$g = new graph();
$g->bg_colour = '#EFFFEF';
$g->title( ' Posts by User last week '. date("Y-m-d"), '{font-size: 16px;}' );
$g->pie(70,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['label'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Bugs by Status', '{font-size:18px; color: #d01f3c}' );
echo $g->render();
/*
$dataSet = $this->getBugsOpenByUser();
$data = $dataSet['data'];
$g = new graph();
$g->pie(80,'#505050','{font-size: 12px; color: #404040;');
$g->pie_values( $data, $dataSet['label'] );
$g->pie_slice_colours( array('#d01f3c','#356aa0','#C79810','#D54C78') );
$g->set_tool_tip( '#val# #x_label#' );
$g->title( 'Open Bugs by User', '{font-size:18px; color: #d01f3c}' );
echo $g->render();*/
}
}

View File

@@ -1,9 +0,0 @@
<?php
$pro['datasources']['forum']['connection'] = 'mysql://forum:colosa123@mysql3.colosa.net/forum';
$pro['datasources']['forum']['adapter'] = 'mysql';
$pro['datasources']['bugs']['connection'] = 'mysql://forum:colosa123@mysql3.colosa.net/bugs';
$pro['datasources']['bugs']['adapter'] = 'mysql';
return $pro;
?>

View File

@@ -1 +0,0 @@
a:1:{s:6:"ACCEPT";s:4:"Save";}

View File

@@ -1,14 +0,0 @@
<?php
//header("Content-type: image/png");
$chartType = isset ( $_GET['chart']) ? $_GET['chart'] : '1' ;
// use the chart class to build the chart:
require_once ( "class.pmosCommunity.php" );
$chartsObj = new pmosCommunityClass();
if ( method_exists( $chartsObj, $chartType) ) {
$chartsObj->{$chartType}();
die;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,109 +0,0 @@
<?php
function open_flash_chart_object_str( $width, $height, $url, $use_swfobject=true, $base='' )
{
//
// return the HTML as a string
//
return _ofc( $width, $height, $url, $use_swfobject, $base );
}
function open_flash_chart_object( $width, $height, $url, $use_swfobject=true, $base='' )
{
//
// stream the HTML into the page
//
echo _ofc( $width, $height, $url, $use_swfobject, $base );
}
function _ofc( $width, $height, $url, $use_swfobject, $base )
{
//
// I think we may use swfobject for all browsers,
// not JUST for IE...
//
//$ie = strstr(getenv('HTTP_USER_AGENT'), 'MSIE');
//
// escape the & and stuff:
//
$url = urlencode($url);
//
// output buffer
//
$out = array();
//
// check for http or https:
//
if (isset ($_SERVER['HTTPS']))
{
if (strtoupper ($_SERVER['HTTPS']) == 'ON')
{
$protocol = 'https';
}
else
{
$protocol = 'http';
}
}
else
{
$protocol = 'http';
}
//
// if there are more than one charts on the
// page, give each a different ID
//
global $open_flash_chart_seqno;
$obj_id = 'chart';
$div_name = 'flashcontent';
//$out[] = '<script type="text/javascript" src="'. $base .'ofc.js"></script>';
if( !isset( $open_flash_chart_seqno ) )
{
$open_flash_chart_seqno = 1;
$out[] = '<script type="text/javascript" src="'. $base .'swfobject.js"></script>';
}
else
{
$open_flash_chart_seqno++;
$obj_id .= '_'. $open_flash_chart_seqno;
$div_name .= '_'. $open_flash_chart_seqno;
}
if( $use_swfobject )
{
// Using library for auto-enabling Flash object on IE, disabled-Javascript proof
$out[] = '<div id="'. $div_name .'"></div>';
$out[] = '<script type="text/javascript">';
$out[] = 'var so = new SWFObject("'. $base .'open-flash-chart.swf", "'. $obj_id .'", "'. $width . '", "' . $height . '", "9", "#FFFFFF");';
//$out[] = 'so.addVariable("width", "' . $width . '");';
//$out[] = 'so.addVariable("height", "' . $height . '");';
$out[] = 'so.addVariable("data", "'. $url . '");';
$out[] = 'so.addParam("allowScriptAccess", "sameDomain");';
$out[] = 'so.write("'. $div_name .'");';
$out[] = '</script>';
$out[] = '<noscript>';
}
$out[] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' . $protocol . '://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ';
$out[] = 'width="' . $width . '" height="' . $height . '" id="ie_'. $obj_id .'" align="middle">';
$out[] = '<param name="allowScriptAccess" value="sameDomain" />';
$out[] = '<param name="movie" value="'. $base .'open-flash-chart.swf?width='. $width .'&height='. $height . '&data='. $url .'" />';
$out[] = '<param name="quality" value="high" />';
$out[] = '<param name="bgcolor" value="#FFFFFF" />';
$out[] = '<embed src="'. $base .'open-flash-chart.swf?data=' . $url .'" quality="high" bgcolor="#FFFFFF" width="'. $width .'" height="'. $height .'" name="'. $obj_id .'" align="middle" allowScriptAccess="sameDomain" ';
$out[] = 'type="application/x-shockwave-flash" pluginspage="' . $protocol . '://www.macromedia.com/go/getflashplayer" id="'. $obj_id .'"/>';
$out[] = '</object>';
if ( $use_swfobject ) {
$out[] = '</noscript>';
}
return implode("\n",$out);
}
?>

View File

@@ -1,233 +0,0 @@
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) {
if (!document.getElementById) { return; }
this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params = new Object();
this.variables = new Object();
this.attributes = new Array();
if(swf) { this.setAttribute('swf', swf); }
if(id) { this.setAttribute('id', id); }
if(w) { this.setAttribute('width', w); }
if(h) { this.setAttribute('height', h); }
if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
if (!window.opera && document.all && this.installedVer.major > 7) {
// only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
deconcept.SWFObject.doPrepUnload = true;
}
if(c) { this.addParam('bgcolor', c); }
var q = quality ? quality : 'high';
this.addParam('quality', q);
this.setAttribute('useExpressInstall', false);
this.setAttribute('doExpressInstall', false);
var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
this.setAttribute('xiRedirectUrl', xir);
this.setAttribute('redirectUrl', '');
if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
useExpressInstall: function(path) {
this.xiSWFPath = !path ? "expressinstall.swf" : path;
this.setAttribute('useExpressInstall', true);
},
setAttribute: function(name, value){
this.attributes[name] = value;
},
getAttribute: function(name){
return this.attributes[name];
},
addParam: function(name, value){
this.params[name] = value;
},
getParams: function(){
return this.params;
},
addVariable: function(name, value){
this.variables[name] = value;
},
getVariable: function(name){
return this.variables[name];
},
getVariables: function(){
return this.variables;
},
getVariablePairs: function(){
var variablePairs = new Array();
var key;
var variables = this.getVariables();
for(key in variables){
variablePairs[variablePairs.length] = key +"="+ variables[key];
}
return variablePairs;
},
getSWFHTML: function() {
var swfNode = "";
if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
if (this.getAttribute("doExpressInstall")) {
this.addVariable("MMplayerType", "PlugIn");
this.setAttribute('swf', this.xiSWFPath);
}
swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
var params = this.getParams();
for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
var pairs = this.getVariablePairs().join("&");
if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
swfNode += '/>';
} else { // PC IE
if (this.getAttribute("doExpressInstall")) {
this.addVariable("MMplayerType", "ActiveX");
this.setAttribute('swf', this.xiSWFPath);
}
swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
var params = this.getParams();
for(var key in params) {
swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
}
var pairs = this.getVariablePairs().join("&");
if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
swfNode += "</object>";
}
return swfNode;
},
write: function(elementId){
if(this.getAttribute('useExpressInstall')) {
// check to see if we need to do an express install
var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
this.setAttribute('doExpressInstall', true);
this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
this.addVariable("MMdoctitle", document.title);
}
}
if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
n.innerHTML = this.getSWFHTML();
return true;
}else{
if(this.getAttribute('redirectUrl') != "") {
document.location.replace(this.getAttribute('redirectUrl'));
}
}
return false;
}
}
/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins && navigator.mimeTypes.length){
var x = navigator.plugins["Shockwave Flash"];
if(x && x.description) {
PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
}
}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE
var axo = 1;
var counter = 3;
while(axo) {
try {
counter++;
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
// document.write("player v: "+ counter);
PlayerVersion = new deconcept.PlayerVersion([counter,0,0]);
} catch (e) {
axo = null;
}
}
} else { // Win IE (non mobile)
// do minor version lookup in IE, but avoid fp6 crashing issues
// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
try{
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
}catch(e){
try {
var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
} catch(e) {
if (PlayerVersion.major == 6) {
return PlayerVersion;
}
}
try {
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
} catch(e) {}
}
if (axo != null) {
PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
}
}
return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
if(this.major < fv.major) return false;
if(this.major > fv.major) return true;
if(this.minor < fv.minor) return false;
if(this.minor > fv.minor) return true;
if(this.rev < fv.rev) return false;
return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
getRequestParameter: function(param) {
var q = document.location.search || document.location.hash;
if (param == null) { return q; }
if(q) {
var pairs = q.substring(1).split("&");
for (var i=0; i < pairs.length; i++) {
if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
return pairs[i].substring((pairs[i].indexOf("=")+1));
}
}
}
return "";
}
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
var objects = document.getElementsByTagName("OBJECT");
for (var i = objects.length - 1; i >= 0; i--) {
objects[i].style.display = 'none';
for (var x in objects[i]) {
if (typeof objects[i][x] == 'function') {
objects[i][x] = function(){};
}
}
}
}
// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
if (deconcept.SWFObject.doPrepUnload) {
if (!deconcept.unloadSet) {
deconcept.SWFObjectUtil.prepUnload = function() {
__flash_unloadHandler = function(){};
__flash_savedUnloadHandler = function(){};
window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs);
}
window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload);
deconcept.unloadSet = true;
}
}
/* add document.getElementById if needed (mobile IE < 5) */
if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }}
/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm
name="About ProcessMaker Open Source Plugin"
type="xmlform"
width="550"
>
<TITLE type="title" >
<en>ProcessMaker Open Source Plugin</en>
</TITLE>
<sTITLE type="subtitle" >
<en>ProcessMaker Open Source Plugin, with this plugin you can see many differents charts related to the ProcessMaker Community web sites</en>
</sTITLE>
<ACCEPT type="submit" >
<en>Save</en>
</ACCEPT>
</dynaForm>