PageRenderTime 56ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/admin/controllers/stat.php

https://github.com/Excito/bubba-frontend
PHP | 95 lines | 74 code | 21 blank | 0 comment | 6 complexity | 4f6e9ddae2a4896174f3dfd6e6b3638a MD5 | raw file
  1. <?php
  2. class Stat extends CI_Controller{
  3. function stat(){
  4. parent::__construct();
  5. require_once(APPPATH."/legacy/defines.php");
  6. require_once(ADMINFUNCS);
  7. $this->Auth_model->enforce_policy('web_admin','administer', 'admin');
  8. $this->Auth_model->EnforceAuth('web_admin');
  9. }
  10. function _renderfull($content){
  11. $navdata["menu"] = $this->menu->retrieve($this->session->userdata('user'),$this->uri->uri_string());
  12. $mdata["navbar"]=$this->load->view(THEME.'/nav_view',$navdata,true);
  13. $mdata["head"] = $this->load->view(THEME.'/stat/stat_head_view',$navdata,true);;
  14. $mdata["dialog_menu"] = $this->load->view(THEME.'/menu_view',$this->menu->get_dialog_menu(),true);
  15. $mdata["content"]=$content;
  16. $this->load->view(THEME.'/main_view',$mdata);
  17. }
  18. function _getvolume($path){
  19. $res=array();
  20. $res["size"]=disk_total_space($path);
  21. $res["free"]=disk_free_space($path);
  22. return $res;
  23. }
  24. function _getdisk($dev){
  25. $res=array();
  26. $res["temp"]=get_hdtemp($dev);
  27. return $res;
  28. }
  29. function _getprinters() {
  30. $json = _system('cups-list-printers');
  31. return json_decode(implode($json),true);
  32. }
  33. function info(){
  34. $sdata["version"] = get_package_version("bubba-frontend");
  35. $sdata['uptime']=uptime();
  36. $sdata['partitions']["home"]=$this->_getvolume("/home/");
  37. $sdata['partitions']["system"]=$this->_getvolume("/");
  38. $sdata['disks']["sda"]=$this->_getdisk("/dev/sda");
  39. $sdata['printers'] = $this->_getprinters();
  40. header("Content-type: application/json");
  41. print json_encode($sdata);
  42. }
  43. function index($strip=""){
  44. $this->load->model( 'notify' );
  45. $this->load->model( 'disk_model' );
  46. if($strip=="json"){
  47. $this->info();
  48. return;
  49. }
  50. if( file_exists( BUBBA_VERSION ) ) {
  51. $sdata["version"] = file_get_contents( BUBBA_VERSION );
  52. } else {
  53. $sdata["version"] = 'N/A';
  54. }
  55. $sdata['uptime']=uptime();
  56. $freespace=intval(disk_free_space("/home/")/(1048576));
  57. $totalspace=intval(disk_total_space("/home/")/(1048576));
  58. $sdata['freespace']=number_format($freespace,0,' ',' ');
  59. $sdata['totalspace']=number_format($totalspace,0,' ',' ');
  60. $sdata['percentused']=intval(100*(($totalspace-$freespace)/$totalspace));
  61. $sdata['notifications'] = $this->notify->list_all();
  62. $sdata['printers'] = $this->_getprinters();
  63. $sdata['temperature'] = $this->disk_model->get_hddtemp( '/dev/sda' );
  64. if($strip){
  65. $this->load->view(THEME.'/stat/stat_view',$sdata);
  66. } else {
  67. if( $this->session->userdata("run_wizard") ) {
  68. $sdata['run_wizard'] = true;
  69. }
  70. $this->_renderfull($this->load->view(THEME.'/stat/stat_view',$sdata,true));
  71. }
  72. }
  73. }
  74. ?>