Changeset 504
- Timestamp:
- 09/20/08 16:44:57 (4 months ago)
- Location:
- trunk
- Files:
-
- 1 added
- 8 modified
-
modules/base/classes/widget.php (added)
-
modules/base/dashboardTrendWidget.php (modified) (2 diffs)
-
modules/base/reportDashboard.php (modified) (1 diff)
-
modules/base/templates/widget.tpl (modified) (3 diffs)
-
modules/base/widget.php (modified) (2 diffs)
-
owa_controller.php (modified) (4 diffs)
-
owa_template.php (modified) (2 diffs)
-
owa_view.php (modified) (1 diff)
-
public/js/owa.widgets.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/base/dashboardTrendWidget.php
r503 r504 19 19 20 20 require_once(OWA_BASE_CLASSES_DIR.'owa_lib.php'); 21 require_once(OWA_BASE_CLASS ES_DIR.'owa_controller.php');21 require_once(OWA_BASE_CLASS_DIR.'widget.php'); 22 22 require_once(OWA_BASE_CLASSES_DIR.'owa_view.php'); 23 23 24 class owa_dashboardTrendWidgetController extends owa_ controller {24 class owa_dashboardTrendWidgetController extends owa_widgetController { 25 25 26 26 function __construct($params) { … … 36 36 function action() { 37 37 38 // Set Title of the Widget 39 $this->data['title'] = 'Dashboard Trend'; 40 41 // enable formats 42 $this->enableFormat('graph', 'Graph'); 43 $this->enableFormat('table', 'Table'); 44 $this->enableFormat('sparkline', 'Sparkline'); 45 46 //setup Metrics 38 47 $m = owa_coreApi::metricFactory('base.dashCoreByDay'); 39 40 48 $m->setConstraint('site_id', $this->params['site_id']); 41 49 $m->setConstraint('is_browser', 1); 42 50 $m->setPeriod($this->params['period']); 43 51 $m->setOrder(OWA_SQL_ASCENDING); 44 45 46 if (array_key_exists('format', $this->params)):47 $format = $this->params['format'];48 else:49 $format = 'graph';50 endif;51 52 52 $data['title'] = 'Dashboard Trend'; 53 $data['params'] = $this->params; 54 $data['widget'] = 'base.dashboardTrendWidget'; 55 56 switch ($format) { 53 switch ($this->params['format']) { 57 54 58 55 case 'graph': 59 56 60 $ data['view'] = 'base.openFlashChart';61 $ data['height'] = $this->params['height'];62 $ data['width'] = $this->params['width'];57 $this->data['view'] = 'base.openFlashChart'; 58 $this->data['height'] = $this->params['height']; 59 $this->data['width'] = $this->params['width']; 63 60 break; 64 61 65 62 case 'graph-data': 63 66 64 $results = $m->generate(); 67 65 $series = owa_lib::deconstruct_assoc($results); 68 $ data['y']['label'] = 'Page Views';69 $ data['y2']['label'] = 'Visits';70 $ data['x']['label'] = 'Day';71 $ data['y']['series'] = $series['page_views'];72 $ data['y2']['series'] = $series['sessions'];73 $ data['x']['series'] = owa_lib::makeDateArray($results, "n/j");74 $ data['view'] = 'base.areaBarsFlashChart';66 $this->data['y']['label'] = 'Page Views'; 67 $this->data['y2']['label'] = 'Visits'; 68 $this->data['x']['label'] = 'Day'; 69 $this->data['y']['series'] = $series['page_views']; 70 $this->data['y2']['series'] = $series['sessions']; 71 $this->data['x']['series'] = owa_lib::makeDateArray($results, "n/j"); 72 $this->data['view'] = 'base.areaBarsFlashChart'; 75 73 break; 76 74 77 75 case 'table': 76 78 77 $m->setLimit(5); 79 78 $results = $m->generate(); 80 $ data['labels'] = $m->getLabels();81 $ data['rows'] = $results;82 $ data['view'] = 'base.genericTable';79 $this->data['labels'] = $m->getLabels(); 80 $this->data['rows'] = $results; 81 $this->data['view'] = 'base.genericTable'; 83 82 break; 84 85 83 86 84 } 87 85 88 // used to add outer wrapper to widget if it's the first view. 89 if ($this->params['initial_view'] == true): 90 $data['subview'] = $data['view']; 91 $data['view'] = 'base.widget'; 92 // we dont want to keep passing this. 93 unset($data['params']['initial_view']); 94 endif; 95 96 return $data; 86 return; 97 87 98 88 } -
trunk/modules/base/reportDashboard.php
r503 r504 174 174 $this->body->set('top_referers', $data['top_referers_data']); 175 175 176 $this->setJs($this->config['public_url']."js/includes/jquery/jquery.js"); 177 $this->setJs($this->config['public_url']."js/owa.js"); 178 $this->setJs($this->config['public_url']."js/owa.widgets.js"); 176 $this->setJs("includes/jquery/jquery.js"); 177 $this->setJs("owa.js"); 178 $this->setJs("owa.widgets.js"); 179 $this->setCss("owa.widgets.css"); 179 180 180 181 return; -
trunk/modules/base/templates/widget.tpl
r503 r504 1 <style>2 3 .widget-container {border:1px solid #cccccc; width:100%;}4 .widget-header {color: white;background-color:orange; padding:5px;text-align:left;}5 .widget-title {font-size:20px;text-align:right;font-weight:bold;}6 .widget-title a {color: white;}7 .widget-title-controls {font-size:14px;text-align:right;}8 .widget-controls {text-align:right;padding:10px}9 .widget-content {padding:10px;}10 11 </style>12 13 14 1 <script> 15 2 … … 24 11 </script> 25 12 26 <div id="<?=$widget;?>" class=" widget-container">13 <div id="<?=$widget;?>" class="owa_widget-container"> 27 14 28 <div id="<?=$widget;?>_widget-header" class=" widget-header">15 <div id="<?=$widget;?>_widget-header" class="owa_widget-header"> 29 16 <table style="width:100%;"> 30 17 <TR> 31 18 <TD> 32 <span class=" widget-title"><?=$title;?></span>19 <span class="owa_widget-title"><?=$title;?></span> 33 20 </TD> 34 21 <TD style="text-align:right;"> 35 <a class="widget-title-controls" href="">Close</a> 22 <a class="owa_widget-toggle" href="#<?=$widget;?>_widget-header">Minimize</a> | 23 <a class="owa_widget-close" href="#<?=$widget;?>_widget-header">Close</a> 36 24 </TD> 37 25 </TR> … … 39 27 40 28 </div> 41 42 <div id="<?=$widget;?>_widget-status" class="widget-status">LOADING</div>43 44 <div id="<?=$widget;?>_widget-content" class="widget-content"><?=$subview;?></div>45 29 46 <div id="<?=$widget;?>_widget-controls" class="widget-controls"> 47 <a class="widget-control" href="#<?=$widget;?>_widget-header" name="graph">Graph</a> | 48 <a class="widget-control" href="#<?=$widget;?>_widget-header" name="table">Table</a> | 49 <a class="widget-control" href="#<?=$widget;?>_widget-header" name="sparkline">Sparkline</a> 30 <div class="owa_widget-innercontainer"> 31 <div id="<?=$widget;?>_widget-status" class="owa_widget-status"><img src="<?=$this->makeImageLink("loading.gif");?>" border="0" align="ABSMIDDLE"> Loading...</div> 32 33 <div id="<?=$widget;?>_widget-content" class="owa_widget-content"><?=$subview;?></div> 34 35 <? if($widget_views): ?> 36 <div id="<?=$widget;?>_widget-controls" class="owa_widget-controls"> 37 <span>Views: </span> 38 <? foreach ($widget_views as $k => $v): ?> 39 <a class="owa_widget-control" href="#<?=$widget;?>_widget-header" name="<?=$k;?>"><?=$v;?></a> / 40 <? endforeach;?> 41 </div> 42 <? endif; ?> 50 43 </div> 51 52 44 53 45 </div> -
trunk/modules/base/widget.php
r503 r504 19 19 require_once(OWA_BASE_DIR.'/owa_lib.php'); 20 20 require_once(OWA_BASE_DIR.'/owa_view.php'); 21 require_once(OWA_BASE_DIR.'/owa_controller.php');22 23 24 class owa_widgetController extends owa_controller {25 26 function owa_widgetController($params) {27 28 $this->owa_controller($params);29 $this->priviledge_level = 'viewer';30 31 }32 33 function action() {34 35 $data = array();36 $data['params'] = $this->params;37 38 // Load the core API39 $api = &owa_coreAPI::singleton($this->params);40 41 $data['widget'] = $this->params['widget'];42 $data['format'] = $this->params['format'];43 $data['width'] = $this->params['width'];44 $data['height'] = $this->params['height'];45 46 // flag used to pick the right wrapper template47 if (array_key_exists('is_external', $this->params)):48 $data['is_external'] = $this->params['is_external'];49 endif;50 $data['view'] = 'base.widget';51 $data['view_method'] = 'delegate';52 53 return $data;54 }55 }56 57 58 59 21 60 22 /** … … 102 64 $this->body->set('params', $data['params']); 103 65 $this->body->set('title', $data['title']); 66 $this->body->set('widget_views', $data['widget_views']); 104 67 $this->body->set('do', $data['widget']); 105 68 -
trunk/owa_controller.php
r503 r504 92 92 */ 93 93 var $capability; 94 95 /** 96 * Available Views 97 * 98 * @var Array 99 */ 100 var $available_views = array(); 101 94 102 95 103 /** … … 155 163 // if auth was success then procead 156 164 if ($data['auth_status'] == true): 165 166 //set request params 167 $this->data['params'] = $this->params; 157 168 158 169 // set status msg … … 174 185 // if errors, do the errorAction instead of the normal action 175 186 return $this->errorAction(); 176 else:177 return $this->action();178 187 endif; 179 180 endif; 181 182 return $this->action(); 188 endif; 189 190 // need to check ret for backwards compatability with older 191 // controllers that donot use $this->data 192 193 $this->pre(); 194 195 $ret = $this->action(); 196 197 if (!empty($ret)): 198 return $ret; 199 else: 200 $this->post(); 201 return $this->data; 202 endif; 183 203 else: 184 204 // return the not priviledged error view set by owa_auth. … … 251 271 } 252 272 273 function getParam($name) { 274 275 if (array_key_exists($name, $this->params)): 276 return $this->params['name']; 277 else: 278 return false; 279 endif; 280 } 281 282 function pre() { 283 284 return false; 285 } 286 287 function post() { 288 return false; 289 } 290 253 291 } 254 292 -
trunk/owa_template.php
r503 r504 574 574 575 575 576 function getWidget($ widget, $format, $params = array()) {576 function getWidget($do, $format, $params = array()) { 577 577 578 578 if (empty($params)): … … 580 580 endif; 581 581 582 $params[' widget'] = $widget;582 $params['do'] = $do; 583 583 $params['format'] = $format; 584 584 $params['initial_view'] = true; 585 585 586 return owa_coreAPI::performAction($ widget, $params);586 return owa_coreAPI::performAction($do, $params); 587 587 } 588 588 -
trunk/owa_view.php
r503 r504 318 318 } 319 319 320 function setCss($file) { 321 322 $this->css[] = $file; 323 return; 324 } 325 326 function setJs($file) { 327 328 $this->js[] = $file; 320 function setCss($file, $path = '') { 321 322 if(empty($path)): 323 $path = $this->config['public_url'].DIRECTORY_SEPARATOR.'css'.DIRECTORY_SEPARATOR; 324 endif; 325 326 $this->css[] = $path.$file; 327 return; 328 } 329 330 function setJs($file, $path = '') { 331 332 if(empty($path)): 333 $path = $this->config['public_url'].DIRECTORY_SEPARATOR.'js'.DIRECTORY_SEPARATOR; 334 endif; 335 336 $this->js[] = $path.$file; 329 337 return; 330 338 } -
trunk/public/js/owa.widgets.js
r503 r504 20 20 current_view: '', 21 21 22 minimized: false, 23 22 24 _makeUrl: function(values) {}, 23 25 24 26 changeView: function(view) { 25 27 26 var widgetcontentid = "#"+this. name+"_widget-content";28 var widgetcontentid = "#"+this.dom_id+"_widget-content"; 27 29 28 30 this.properties.format = view; … … 35 37 data: OWA.util.nsAll(this.properties), 36 38 //show loading just when link is clicked 37 beforeSend: function(){ jQuery(". widget-status").show("fast");},39 beforeSend: function(){ jQuery(".owa_widget-status").show("slow");}, 38 40 //stop showing loading when the process is complete 39 complete: function(){ jQuery(". widget-status").hide("fast");},41 complete: function(){ jQuery(".owa_widget-status").hide("slow");}, 40 42 //so, if data is retrieved, store it in html 41 43 success: function(html){ … … 55 57 // Bind event handlers 56 58 jQuery(document).ready(function(){ 57 jQuery('.widget-control').click(owa_widget_changeView); 59 jQuery('.owa_widget-control').click(owa_widget_changeView); 60 jQuery('.owa_widget-close').click(owa_widget_close); 61 jQuery('.owa_widget-status').hide("slow"); 62 jQuery('.owa_widget-toggle').click(owa_widget_toggle); 58 63 }); 59 60 64 61 65 // Event handler for changeing views … … 63 67 64 68 var view = jQuery(this).attr("name"); 65 var parentname = jQuery("div").parent(".widget-container").attr("id"); 66 //var widgetname2 = parentname.split("_"); 67 var widgetname = parentname; 68 //alert(parentname); 69 // add to state object 70 OWA.items[widgetname].name = widgetname; 71 OWA.items[widgetname].changeView(view); 69 var widgetname = jQuery("div").parent(".owa_widget-container").attr("id"); 70 return OWA.items[widgetname].changeView(view); 71 72 } 73 74 function owa_widget_close() { 75 76 return jQuery("div").parent(".owa_widget-container").hide("slow"); 77 } 78 79 function owa_widget_toggle() { 80 81 jQuery("div").parent(".owa_widget-innercontainer").toggle("slow"); 82 jQuery(this).html("Show"); 83 var widgetname = jQuery("div").parent(".owa_widget-container").attr("id"); 84 OWA.items[widgetname].minimized = true; 72 85 73 86 return;
