diff --git a/CHANGES.txt b/CHANGES.txt index 9192ad0..521cce8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,13 @@ Change Log: =========== +Version 2.0.0 +============= +Feature - Brand new live usage tab design. +Tweak - Plugin update check time. +Tweak - Improvement in CPU usage calculation. +Fix - Edwiser RemUI updating issue with different moodle branch. + Version 1.0.4 ============= Fix - Fixed upgrade issue. @@ -9,12 +16,10 @@ Fix - Changed memory usage warning message. Version 1.0.3 ============= - Fix - Improved plugin updater stability. Fix - Tabs working in themes not based on Bootstrap. Fix - Showing warning to Admin for linux if unable to fetch cpu and memory usage. - Version 1.0.2 (First release) ============================= Fix - Update code according to moodle standards diff --git a/amd/build/main.min.js b/amd/build/main.js similarity index 75% rename from amd/build/main.min.js rename to amd/build/main.js index 15c51c5..1c97f62 100755 --- a/amd/build/main.min.js +++ b/amd/build/main.js @@ -1 +1 @@ -define(["jquery","core/ajax","core/notification","core/modal_factory","core/chartjs"],function(e,t,s,i){var a=".usage-progress-bar",r=".edwiser_site_monitor #edwiser_site_monitor_plugins .edwiser-server-monitor-loader",o=".edwiser_site_monitor #edwiser_site_monitor_contactus .edwiser-server-monitor-loader",n=".edwiser_site_monitor #edwiser_site_monitor_last_24_hours_usage .edwiser-server-monitor-loader",l=".block_edwiser_site_monitor.block",d=".edwiser_site_monitor .server-plugins-list",c="progress-status";return{init:function(){var _="",g=null,u=fetchtinglastusage=fetchtingplugins=sendingemail=!1;function m(e,t){return(t*e/100).toFixed(2)+"G/"+t.toFixed(2)+"G"}e(a).bind(c,function(t,s){let i="bg-danger";s<30?i="bg-success":s<80&&(i="bg-warning"),e(this).removeClass("bg-success bg-warning bg-danger").addClass(i)});var f=function(){u||(u=!0,t.call([{methodname:"block_edwiser_site_monitor_get_live_status",args:{}}])[0].done(function(t){e(l).find("#esm_cpu_usage_bar").css("width",t.cpu+"%").trigger(c,[t.cpu]),e(l).find("#esm_memory_usage_bar").css("width",t.memory+"%").trigger(c,[t.memory]),e(l).find("#esm_storage_usage_bar").css("width",t.storage+"%").trigger(c,[t.storage]),e(l).find("#esm_cpu_usage_label").text(t.cpu+"%"),e(l).find("#esm_memory_usage_label").text(t.memory+"% ("+m(t.memory,totalmemory)+")"),e(l).find("#esm_storage_usage_label").text(t.storage+"% ("+m(t.storage,totalstorage)+")"),e(l).find("#esm_live_users_label").text(t.liveusers),u=!1}).fail(function(e){alert(e.message),u=!1}))},h=function(){if(!fetchtinglastusage){fetchtinglastusage=!0,e(n).addClass("show");var s=e(l).find("#esm_usage_date_selector").val()||0;t.call([{methodname:"block_edwiser_site_monitor_get_last_24_hours_usage",args:{timestamp:s}}])[0].done(function(t){if(fetchtinglastusage=!1,e(n).removeClass("show"),null!=g)return g.data.labels=JSON.parse(t.time),g.data.datasets[0].data=JSON.parse(t.cpu),g.data.datasets[1].data=JSON.parse(t.memory),g.data.datasets[2].data=JSON.parse(t.storage),void g.update();let s={type:"line",data:{labels:JSON.parse(t.time),datasets:[{label:M.util.get_string("cpuusage","block_edwiser_site_monitor"),data:JSON.parse(t.cpu),borderColor:"#ff4c52",borderWidth:1,fill:!1,pointRadius:0,hoverPointRadius:1},{label:M.util.get_string("memoryusage","block_edwiser_site_monitor"),data:JSON.parse(t.memory),borderColor:"#11c26d",borderWidth:1,fill:!1,pointRadius:0,hoverPointRadius:1},{label:M.util.get_string("storageusage","block_edwiser_site_monitor"),data:JSON.parse(t.storage),borderColor:"#667afa",borderWidth:1,fill:!1,pointRadius:0,hoverPointRadius:1}]},options:{scales:{yAxes:[{position:"right",ticks:{beginAtZero:!1},gridLines:{display:!1},scaleLabel:{display:!0,labelString:M.util.get_string("yaxistitle","block_edwiser_site_monitor")}}],xAxes:[{gridLines:{display:!1},scaleLabel:{display:!0,labelString:M.util.get_string("xaxistitle","block_edwiser_site_monitor")}}]},tooltips:{position:"nearest",mode:"index",intersect:!1,callbacks:{label:function(e,t){var s=t.datasets[e.datasetIndex].label||"";switch(s&&(s+=": "),s+=e.yLabel+"%",e.datasetIndex){case 1:s+=" ("+m(e.yLabel,totalmemory)+")";break;case 2:s+=" ("+m(e.yLabel,totalstorage)+")"}return s}}}}};g=new Chart(e("#esm_usage_chart")[0].getContext("2d"),s)}).fail(function(t){e(n).removeClass("show"),alert(t.message),fetchtinglastusage=!1})}},p=function(){fetchtingplugins||(fetchtingplugins=!0,e(r).addClass("show"),t.call([{methodname:"block_edwiser_site_monitor_get_plugins_update",args:{}}])[0].done(function(t){e(r).removeClass("show"),e(d).html(t.plugins),e(l).find(".edwiser_site_monitor .lasttimefetched").text(t.lasttimefetched),fetchtingplugins=!1}).fail(function(t){e(r).removeClass("show"),s.exception(t),fetchtingplugins=!1}))},b=function(a){sendingemail||(sendingemail=!0,e(o).addClass("show"),t.call(a)[0].done(function(t){e(o).removeClass("show");var s=e("#create-modal");i.create({title:t.header,body:t.message},s).done(function(e){e.header.addClass(t.status?"bg-success":"bg-danger"),e.header.children().addClass("text-white"),e.show()}),t.status&&(e(l).find("#contactus_form button").prop("disabled",!0),e(l).find("#contactus_form_succes").addClass("show")),sendingemail=!1}).fail(function(t){e(o).removeClass("show"),s.exception(t),sendingemail=!1}))};e(document).ready(function(){_=setInterval(function(){f()},1e3*refreshrate),e("#esm_usage_date_selector").change(function(){h()}),e(".edwiser_site_monitor .nav-link").click(function(){e(this).removeClass("active").parents(".nav-item").siblings().removeClass("active"),e(this).parents(l).find(".tab-pane").removeClass("show active");var t=e(this).data("container");switch(e(this).parents(".nav-item").addClass("active"),console.log(e(this).parents(l).find("#"+t)),e(this).parents(l).find("#"+t).addClass("show active"),e(this).data("container")){case"edwiser_site_monitor_view_live_status":_=setInterval(function(){f()},1e3*refreshrate);break;case"edwiser_site_monitor_last_24_hours_usage":h(),clearInterval(_);break;case"edwiser_site_monitor_plugins":""==e.trim(e(d).text())&&e(l).find(".edwiser_site_monitor .refresh-plugin-list").trigger("click");case"edwiser_site_monitor_recommendation":case"edwiser_site_monitor_contactus":clearInterval(_)}}),e("body").on("click",l+" .refresh-plugin-list",function(){p()}).on("click",l+" .edwiser-plugin-filter",function(t){t.preventDefault(),e(this).parent(".server-plugins-list").removeClass("all edwiser other update").addClass(e(this).data("filter")),e(l).find("#plugins-control-panel").removeClass("all edwiser other update").addClass(e(this).data("filter")),e(l).find(".edwiser-plugins-current-list").text(e(this).data("heading")),e(l).find(".edwiser-plugin-filter").removeClass("active"),e(this).addClass("active")}).on("click",".showchangelog",function(t){t.preventDefault();var s=e("#create-modal");i.create({title:M.util.get_string("changelog","block_edwiser_site_monitor"),body:e(this).data("log").changelog},s).done(function(e){e.show()})}),e("#contactus_form").submit(function(t){t.preventDefault();var s=e(this).serializeArray(),i={methodname:"block_edwiser_site_monitor_send_contactus_email",args:{}};e.each(s,function(e,t){i.args[t.name]=t.value}),b([i])})})}}}); \ No newline at end of file +define(["jquery","core/ajax","core/notification","core/modal_factory","core/chartjs"],function(e,t,s,i){var a=".usage-progress-bar",r=".edwiser_site_monitor #edwiser_site_monitor_plugins .edwiser-server-monitor-loader",o=".edwiser_site_monitor #edwiser_site_monitor_contactus .edwiser-server-monitor-loader",n=".edwiser_site_monitor #edwiser_site_monitor_last_24_hours_usage .edwiser-server-monitor-loader",l=".block_edwiser_site_monitor.block",d=".edwiser_site_monitor .server-plugins-list",c="progress-status";return{init:function(){var _="",g=null,u=fetchtinglastusage=fetchtingplugins=sendingemail=!1;function m(e,t){return(t*e/100).toFixed(2)+"G/"+t.toFixed(2)+"G"}e(a).bind(c,function(t,s){let i="bg-danger";s<30?i="bg-success":s<80&&(i="bg-warning"),e(this).removeClass("bg-success bg-warning bg-danger").addClass(i)});var f=function(){u||(u=!0,t.call([{methodname:"block_edwiser_site_monitor_get_live_status",args:{}}])[0].done(function(t){e(l).find("#esm_cpu_usage_bar").css("width",t.cpu+"%").trigger(c,[t.cpu]),e(l).find("#esm_memory_usage_bar").css("width",t.memory+"%").trigger(c,[t.memory]),e(l).find("#esm_storage_usage_bar").css("width",t.storage+"%").trigger(c,[t.storage]),e(l).find("#esm_cpu_usage_label").text(t.cpu+"%"),e(l).find("#esm_memory_usage_label").text(t.memory+"% ("+m(t.memory,totalmemory)+")"),e(l).find("#esm_storage_usage_label").text(t.storage+"% ("+m(t.storage,totalstorage)+")"),e(l).find("#esm_live_users_label").text(t.liveusers),u=!1}).fail(function(e){alert(e.message),u=!1}))},h=function(){if(!fetchtinglastusage){fetchtinglastusage=!0,e(n).addClass("show");var s=e(l).find("#esm_usage_date_selector").val()||0;t.call([{methodname:"block_edwiser_site_monitor_get_last_24_hours_usage",args:{timestamp:s}}])[0].done(function(t){if(fetchtinglastusage=!1,e(n).removeClass("show"),null!=g)return g.data.labels=JSON.parse(t.time),g.data.datasets[0].data=JSON.parse(t.cpu),g.data.datasets[1].data=JSON.parse(t.memory),g.data.datasets[2].data=JSON.parse(t.storage),void g.update();let s={type:"line",data:{labels:JSON.parse(t.time),datasets:[{label:M.util.get_string("cpuusage","block_edwiser_site_monitor"),data:JSON.parse(t.cpu),borderColor:"#ff4c52",borderWidth:1,fill:!1,pointRadius:0,hoverPointRadius:1},{label:M.util.get_string("memoryusage","block_edwiser_site_monitor"),data:JSON.parse(t.memory),borderColor:"#11c26d",borderWidth:1,fill:!1,pointRadius:0,hoverPointRadius:1},{label:M.util.get_string("storageusage","block_edwiser_site_monitor"),data:JSON.parse(t.storage),borderColor:"#667afa",borderWidth:1,fill:!1,pointRadius:0,hoverPointRadius:1}]},options:{scales:{yAxes:[{position:"right",ticks:{beginAtZero:!1},gridLines:{display:!1},scaleLabel:{display:!0,labelString:M.util.get_string("yaxistitle","block_edwiser_site_monitor")}}],xAxes:[{gridLines:{display:!1},scaleLabel:{display:!0,labelString:M.util.get_string("xaxistitle","block_edwiser_site_monitor")}}]},tooltips:{position:"nearest",mode:"index",intersect:!1,callbacks:{label:function(e,t){var s=t.datasets[e.datasetIndex].label||"";switch(s&&(s+=": "),s+=e.yLabel+"%",e.datasetIndex){case 1:s+=" ("+m(e.yLabel,totalmemory)+")";break;case 2:s+=" ("+m(e.yLabel,totalstorage)+")"}return s}}}}};g=new Chart(e("#esm_usage_chart")[0].getContext("2d"),s)}).fail(function(t){e(n).removeClass("show"),alert(t.message),fetchtinglastusage=!1})}},p=function(){fetchtingplugins||(fetchtingplugins=!0,e(r).addClass("show"),t.call([{methodname:"block_edwiser_site_monitor_get_plugins_update",args:{}}])[0].done(function(t){e(r).removeClass("show"),e(d).html(t.plugins),e(l).find(".edwiser_site_monitor .lasttimefetched").text(t.lasttimefetched),fetchtingplugins=!1}).fail(function(t){e(r).removeClass("show"),s.exception(t),fetchtingplugins=!1}))},b=function(a){sendingemail||(sendingemail=!0,e(o).addClass("show"),t.call(a)[0].done(function(t){e(o).removeClass("show");var s=e("#create-modal");i.create({title:t.header,body:t.message},s).done(function(e){e.header.addClass(t.status?"bg-success":"bg-danger"),e.header.children().addClass("text-white"),e.show()}),t.status&&(e(l).find("#contactus_form button").prop("disabled",!0),e(l).find("#contactus_form_succes").addClass("show")),sendingemail=!1}).fail(function(t){e(o).removeClass("show"),s.exception(t),sendingemail=!1}))};e(document).ready(function(){_=setInterval(function(){f()},1e3*refreshrate),e("#esm_usage_date_selector").change(function(){h()}),e(".edwiser_site_monitor .nav-link").click(function(){e(this).removeClass("active").parents(".nav-item").siblings().removeClass("active"),e(this).parents(l).find(".tab-pane").removeClass("show active");var t=e(this).data("container");switch(e(this).parents(".nav-item").addClass("active"),e(this).parents(l).find("#"+t).addClass("show active"),e(this).data("container")){case"edwiser_site_monitor_view_live_status":_=setInterval(function(){f()},1e3*refreshrate);break;case"edwiser_site_monitor_last_24_hours_usage":h(),clearInterval(_);break;case"edwiser_site_monitor_plugins":""==e.trim(e(d).text())&&e(l).find(".edwiser_site_monitor .refresh-plugin-list").trigger("click");case"edwiser_site_monitor_recommendation":case"edwiser_site_monitor_contactus":clearInterval(_)}}),e("body").on("click",l+" .refresh-plugin-list",function(){p()}).on("click",l+" .edwiser-plugin-filter",function(t){t.preventDefault(),e(this).parent(".server-plugins-list").removeClass("all edwiser other update").addClass(e(this).data("filter")),e(l).find("#plugins-control-panel").removeClass("all edwiser other update").addClass(e(this).data("filter")),e(l).find(".edwiser-plugins-current-list").text(e(this).data("heading")),e(l).find(".edwiser-plugin-filter").removeClass("active"),e(this).addClass("active")}).on("click",".showchangelog",function(t){t.preventDefault();var s=e("#create-modal");i.create({title:M.util.get_string("changelog","block_edwiser_site_monitor"),body:e(this).data("log").changelog},s).done(function(e){e.show()})}),e("#contactus_form").submit(function(t){t.preventDefault();var s=e(this).serializeArray(),i={methodname:"block_edwiser_site_monitor_send_contactus_email",args:{}};e.each(s,function(e,t){i.args[t.name]=t.value}),b([i])})})}}}); \ No newline at end of file diff --git a/amd/src/main.js b/amd/src/main.js old mode 100644 new mode 100755 index 870991c..f72efbe --- a/amd/src/main.js +++ b/amd/src/main.js @@ -268,7 +268,6 @@ define([ var tags = $(this).parents(SELECTORS.ROOT).find('.tab-pane').removeClass('show active'); var target = $(this).data('container'); $(this).parents('.nav-item').addClass('active'); - console.log($(this).parents(SELECTORS.ROOT).find('#' + target)); $(this).parents(SELECTORS.ROOT).find('#' + target).addClass('show active'); switch ($(this).data('container')) { case "edwiser_site_monitor_view_live_status": diff --git a/classes/plugins.php b/classes/plugins.php index 92edec0..51ab0ef 100755 --- a/classes/plugins.php +++ b/classes/plugins.php @@ -146,34 +146,33 @@ public function get_edwiser_addon_options($plugin, $component) { return $options; } - /** - * Does plugin support current moodle verison - * - * @param float $version required moodle verions - * - * @return bool true if compatible with current moodle verions - */ - public function is_supported_moodle_version($version) { - global $CFG; - if ($CFG->version >= $version) { - return true; - } - return 2; - } - /** * Checks whether current plugin version is supported * * @param stdClass $plugin installed plugin details - * @param stdClass $update plugin update details + * @param stdClass $release plugin release details * * @return bool true is supported */ - public function is_supported_version($plugin, $update) { - if ($plugin->versiondisk >= $update->version) { - return false; + public function is_supported_version($plugin, $release) { + $supported = true; + $release = explode('.', $release); + $dbrelease = explode('.', $plugin->release); + + if ($plugin->type == 'theme' && $plugin->name == 'remui') { + $supported = $dbrelease[0] == $release[0] && $dbrelease[1] == $release[1]; + if (!$supported) { + return 2; + } } - return $this->is_supported_moodle_version($update->requires); + + foreach ($release as $index => $version) { + if ($dbrelease[$index] < $version) { + return true; + } + } + + return false; } /** @@ -187,46 +186,28 @@ public function is_supported_version($plugin, $update) { * * @return array $plugin update options */ - public function check_edwiser_plugin_update($plugininfo, $plugintype, $pluginname, $updates, $options) { + public function check_edwiser_plugin_update($plugininfo, $plugintype, $pluginname, $release, $options) { // There is an error with update method. - if (is_string($updates)) { - $options['msg'][] = $updates; - return $options; - } - if (is_object($updates)) { - $updates = array($updates); + if (empty($release)) { + return false; } - - if (is_array($updates)) { - // Iterate each update details. - foreach (array_values($updates) as $update) { - if (!is_object($update) || $update->component != $plugintype . '_' . $pluginname) { - continue; - } - $status = $this->is_supported_version($plugininfo[$plugintype][$pluginname], $update); - if ($status === false) { - return false; - } - $options['version'] = $update->version; - if (isset($update->release)) { - $options['release'] = $update->release; - } - if (isset($update->maturity)) { - $options['maturity'] = $update->maturity; - } - $options['supportedmoodles'] = [(object)array( - 'version' => $update->requires - )]; - if ($status === 2) { - $options['msg'][] = get_string('requirehigherversion', 'block_edwiser_site_monitor', $update->requires); - } - return $options; - } - + $status = $this->is_supported_version($plugininfo[$plugintype][$pluginname], $release); + if ($status === false) { + return false; } - return false; + $options['version'] = $release; + $options['release'] = $release; + if ($status === 2) { + $ex = explode('.', $release); + $requires = $ex[0] . '.' . $ex[1]; + $options['supportedmoodles'] = [(object)array( + 'version' => $requires + )]; + $options['msg'][] = get_string('requirehigherversion', 'block_edwiser_site_monitor', $requires); + } + return $options; } /** @@ -259,7 +240,6 @@ public function fetch_edwiser_plugin_update($pluginman, $license, $name, $releas 'url' => urlencode($CFG->wwwroot), ) ); - $response = json_decode($curl); // Error while getting server response. @@ -276,22 +256,15 @@ public function fetch_edwiser_plugin_update($pluginman, $license, $name, $releas $url = $response->download_link; + $release = $response->new_version; + // Unserialize and check for changelog of plugin. $information = unserialize($response->sections); if ($information) { $changelog = json_encode(array('changelog' => $information['changelog'])); } - $path = $this->get_remote_plugin_zip($pluginman, $url, $component); - if (!$path) { - return array(false, '', $changelog); - } - - $temp = make_request_directory(); - - $zips = $this->verify_zip($pluginman, $path, $temp, $component); - - return array($zips, $url, $changelog); + return array($release, $url, $changelog); } /** @@ -461,7 +434,6 @@ private function plugin_update_info($pluginman, $updateinfo, $edwiser = false) { } } else { $box .= html_writer::start_tag('div', array('class' => 'text-danger')); - $box .= html_writer::tag('span', 'Errors'); $tag = count($updateinfo->msg) > 1 ? 'ol' : 'ul'; $box .= html_writer::start_tag($tag); foreach ($updateinfo->msg as $msg) { @@ -469,6 +441,9 @@ private function plugin_update_info($pluginman, $updateinfo, $edwiser = false) { } $box .= html_writer::end_tag($tag); $box .= html_writer::end_tag('div'); + if (isset($updateinfo->update)) { + $status->has = true; + } } } $box .= html_writer::end_div(); @@ -552,20 +527,18 @@ private function get_plugin_object($pluginman, $pluginfo, $edwiser = false) { array('class' => 'requiredby') ); } - if (!$edwiser) { - $update = (object) [ - 'has' => false, - 'html' => '' - ]; - if (is_array($pluginfo->available_updates())) { - $update->has = true; - foreach ($pluginfo->available_updates() as $availableupdate) { - $updateinfo = $this->plugin_update_info($pluginman, $availableupdate); - $update->has &= $updateinfo->has; - $update->html .= $updateinfo->html; - } + $update = (object) [ + 'has' => false, + 'html' => '' + ]; + if (is_array($pluginfo->available_updates())) { + $update->has = true; + foreach ($pluginfo->available_updates() as $availableupdate) { + $updateinfo = $this->plugin_update_info($pluginman, $availableupdate); + $update->has &= $updateinfo->has; + $update->html .= $updateinfo->html; } - } else { + } else if ($edwiser) { $edwiserplugin = (object) $this->get_edwiser_plugin( $pluginfo->type, $pluginfo->name @@ -585,6 +558,7 @@ private function get_plugin_object($pluginman, $pluginfo, $edwiser = false) { $edwiser ); } + $plugin->class .= $update->has ? ' update' : ''; $plugin->update = $update; return $plugin; diff --git a/classes/usage.php b/classes/usage.php index a46949f..aa2c86b 100644 --- a/classes/usage.php +++ b/classes/usage.php @@ -50,7 +50,7 @@ class block_edwiser_site_monitor_usage { */ private function __construct() { if (stripos(PHP_OS, 'linux') !== false) { - if (shell_exec("grep -P '^processor' /proc/cpuinfo|wc -l") == "" || empty(sys_getloadavg())) { + if (empty(sys_getloadavg())) { self::$disabled['cpu'] = true; } if (shell_exec("free") == "") { @@ -86,7 +86,11 @@ public function get_cpu_usage() { } $loads = sys_getloadavg(); $corenums = trim(shell_exec("grep -P '^processor' /proc/cpuinfo|wc -l")); - $load = round($loads[0] / ($corenums + 1) * 100, 2); + if (!empty($corenums)) { + $load = round($loads[0] / ($corenums + 1) * 100, 2); + } else { + $load = round($loads[0] * 100, 2); + } } if ($load > 100) { return 100; diff --git a/gulpfile.js b/gulpfile.js old mode 100644 new mode 100755 index 8bc02f2..5fdca0a --- a/gulpfile.js +++ b/gulpfile.js @@ -7,48 +7,71 @@ var cssbeautify = require ('gulp-cssbeautify'); var concat = require('gulp-concat'); var prefix = require('gulp-autoprefixer'); var minifycss = require('gulp-minify-css'); -var shell = require('gulp-shell'); +const exec = require('gulp-exec'); +const notify = require("gulp-notify"); + +const PRODUCTION = process.argv.includes('-production'); // JS stuff. var minify = require('gulp-minify'); + +var sassOptions = { + includePaths: ['./sass'], + outputStyle: PRODUCTION == true ? 'compressed' : false +}; + // Compile all your Sass. gulp.task('sass', function (){ return gulp.src(['./scss/*.scss']) - .pipe(sass({ - includePaths: ['./sass'], - outputStyle: 'expanded' - })) + .pipe(sass(sassOptions)) .pipe(prefix( "last 1 version", "> 1%", "ie 8", "ie 7" )) .pipe(concat('styles.css')) - .pipe(cssbeautify({ - indent: ' ', - autosemicolon: true - })) .pipe(gulp.dest('./')) }); + +var minifyOptions = { + ext: { + min: '.js' + } +}; +minifyOptions.mangle = PRODUCTION; +minifyOptions.compress = PRODUCTION; +minifyOptions.noSource = PRODUCTION; +if (PRODUCTION == false) { + minifyOptions.preserveComments = 'all'; +} + gulp.task('compress', function() { return gulp.src('./amd/src/*.js') - .pipe(minify({ - ext: { - min: '.min.js' - }, - noSource: true, - ignoreFiles: [] - })) + .pipe(minify(minifyOptions)) .pipe(gulp.dest('./amd/build')); done(); }); -gulp.task('purge', shell.task('php ../../admin/cli/purge_caches.php')); +gulp.task('purge', function(done) { + return gulp.src('.') + .pipe(shell.task('php ../../admin/cli/purge_caches.php')) + .pipe(notify('Purged js cache.')) + .pip(gulp.dest('.')); +}); + +const moodlepath = '/var/www/html/m37dev/'; +gulp.task('purge', function() { + return gulp.src('../../admin/cli/') + .pipe(exec('php ../../admin/cli/purge_caches.php')) + .pipe(notify('Purged caches.')); +}); gulp.task('watch', function(done) { gulp.watch('./amd/src/*.js', gulp.series('compress', 'purge')); gulp.watch('./scss/*.scss', gulp.series('sass', 'purge')); + gulp.watch('./lang/**/*', gulp.series('purge')); + gulp.watch('./templates/*.mustache', gulp.series('purge')); done(); }); diff --git a/scss/block.scss b/scss/block.scss old mode 100644 new mode 100755 index 3ca64ce..ca6c332 --- a/scss/block.scss +++ b/scss/block.scss @@ -9,11 +9,6 @@ aside.block-region { } .edwiser_site_monitor { - .server_live_status { - .usage-progress-bar { - height: 100%; - } - } .nav-tabs .nav-item .nav-link { &.esm-outline, .edwiser_plugins_recommendation .esm-outline { @@ -31,16 +26,55 @@ aside.block-region { border-radius: 50%; margin-left: 0.5rem; } - .legends { - float: right; - .legend { + .server_live_status { + position: relative; + padding: 10px 20px; + .progress-row { + padding: 10px 15px; + } + .progress-wrap { + height: 4px; + width: 100%; + border: 0px; + margin: 0px; + padding: 0px; + .usage-progress-bar { + height: 100%; + } + } + .usage-header { display: inline-block; - margin: 0 0.2rem; - .color { - width: 1rem; - height: 1rem; + width: 20%; + font-size: 1.3rem; + i.fa { + margin-right: 10px; + } + } + .usage-details { + display: inline-block; + width: 79%; + .progress-label { + float: right; + } + } + .users { + position: relative; + .legends { + padding: 0; + } + } + .legends { + text-align: right; + padding-right: 15px; + .legend { display: inline-block; - vertical-align: middle; + margin: 0 0.2rem; + .color { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: middle; + } } } } diff --git a/styles.css b/styles.css index 38b3332..a143ffb 100755 --- a/styles.css +++ b/styles.css @@ -1,207 +1 @@ -aside.block-region[data-blockregion="content"] .edwiser_site_monitor .cannot_display_server_usage { - display: none; -} - -aside.block-region:not([data-blockregion="content"]) .edwiser_site_monitor .server_usage_chart { - max-height: 400px; - display: none; -} - -.edwiser_site_monitor .server_live_status .usage-progress-bar { - height: 100%; -} - -.edwiser_site_monitor .nav-tabs .nav-item .nav-link.esm-outline, -.edwiser_site_monitor .nav-tabs .nav-item .nav-link .edwiser_plugins_recommendation .esm-outline { - color: #1177d1; - border-color: #1177d1; -} - -.edwiser_site_monitor .nav-tabs .nav-item .nav-link.btn-primary { - color: white; -} - -.edwiser_site_monitor .esm_legend { - display: inline-block; - width: 10px; - height: 10px; - border-radius: 50%; - margin-left: 0.5rem; -} - -.edwiser_site_monitor .legends { - float: right; -} - -.edwiser_site_monitor .legends .legend { - display: inline-block; - margin: 0 0.2rem; -} - -.edwiser_site_monitor .legends .legend .color { - width: 1rem; - height: 1rem; - display: inline-block; - vertical-align: middle; -} - -.edwiser_site_monitor .server_usage_chart { - background: white; -} - -.edwiser_site_monitor .server-plugins, -.edwiser_site_monitor .has-loader { - min-height: 4rem; - position: relative; -} - -.edwiser_site_monitor .server-plugins .server-plugins-list { - margin-top: 1.2rem; -} - -.edwiser_site_monitor .server-plugins .server-plugins-list .generaltable { - max-height: 30rem; - overflow-y: auto; -} - -.edwiser_site_monitor .server-plugins .server-plugins-list .plugin-list-refresh { - width: 100%; - text-align: right; -} - -.edwiser_site_monitor .server-plugins .server-plugins-list .edwiser-plugin-list { - overflow-y: auto; - max-height: 30rem; -} - -.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader { - position: absolute; - height: 100%; - width: 100%; - background: rgba(255, 255, 255, 0.6); - top: 0; -} - -.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader:not(.show) { - display: none; -} - -.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader .edwiser-server-monitor-loading-icon { - display: inline-block; - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); -} - -.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader .edwiser-server-monitor-loading-icon .fa { - font-size: 2rem; -} - -.edwiser_site_monitor .generaltable.edwiser tbody tr:not(.edwiser), -.edwiser_site_monitor .generaltable.other tbody tr:not(.other), -.edwiser_site_monitor .generaltable.update tbody tr:not(.update) { - display: none; -} - -.edwiser_site_monitor .generaltable tbody td a { - color: #62a8eb; -} - -.edwiser_site_monitor .edwiserpluginupdateinfo .singlebutton { - margin: 5px 0; - padding: 0; -} - -.edwiser_site_monitor .edwiserpluginupdateinfo .info { - display: inline-block; -} - -.edwiser_site_monitor .separator:after { - content: " | "; -} - -.edwiser_site_monitor .tab-content .tab-pane { - display: none; -} - -.edwiser_site_monitor .tab-content .tab-pane.fade { - opacity: 0; -} - -.edwiser_site_monitor .tab-content .tab-pane.fade.show { - opacity: 1; -} - -.edwiser_site_monitor .tab-content .tab-pane.active { - display: block; -} - -.edwiser-plugin-filter { - margin-right: 1rem; -} - -/* Recommendation grid styling */ -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card { - margin-bottom: 2.143rem; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card-shadow { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3); -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .cover { - width: 100%; - padding: 0; - border-bottom: none; - overflow: hidden; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .cover .cover-image { - width: 100%; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-header { - border: none; - box-shadow: none; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-header:first-child { - border-radius: calc(.215rem - 1px) calc(.215rem - 1px) 0 0; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block { - position: relative; - flex: 1 1 auto; - padding: 1.429rem; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block + .card-block { - padding-top: 0; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block .card-title { - word-break: break-word; - margin-top: 0; - margin-bottom: .858rem; -} - -.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block .card-text:last-child { - margin-bottom: 0; -} - -.edwiser_plugins_recommendation .recommendation-list.blocks { - padding: 0; - margin: 0; - margin-right: -1.0715rem; - margin-left: -1.0715rem; - list-style: none; -} - -.edwiser_plugins_recommendation .recommendation-list .form-row { - display: flex; - flex-wrap: wrap; - margin-right: -5px; - margin-left: -5px; -} +aside.block-region[data-blockregion="content"] .edwiser_site_monitor .cannot_display_server_usage{display:none}aside.block-region:not([data-blockregion="content"]) .edwiser_site_monitor .server_usage_chart{max-height:400px;display:none}.edwiser_site_monitor .nav-tabs .nav-item .nav-link.esm-outline,.edwiser_site_monitor .nav-tabs .nav-item .nav-link .edwiser_plugins_recommendation .esm-outline{color:#1177d1;border-color:#1177d1}.edwiser_site_monitor .nav-tabs .nav-item .nav-link.btn-primary{color:white}.edwiser_site_monitor .esm_legend{display:inline-block;width:10px;height:10px;border-radius:50%;margin-left:0.5rem}.edwiser_site_monitor .server_live_status{position:relative;padding:10px 20px}.edwiser_site_monitor .server_live_status .progress-row{padding:10px 15px}.edwiser_site_monitor .server_live_status .progress-wrap{height:4px;width:100%;border:0px;margin:0px;padding:0px}.edwiser_site_monitor .server_live_status .progress-wrap .usage-progress-bar{height:100%}.edwiser_site_monitor .server_live_status .usage-header{display:inline-block;width:20%;font-size:1.3rem}.edwiser_site_monitor .server_live_status .usage-header i.fa{margin-right:10px}.edwiser_site_monitor .server_live_status .usage-details{display:inline-block;width:79%}.edwiser_site_monitor .server_live_status .usage-details .progress-label{float:right}.edwiser_site_monitor .server_live_status .users{position:relative}.edwiser_site_monitor .server_live_status .users .legends{padding:0}.edwiser_site_monitor .server_live_status .legends{text-align:right;padding-right:15px}.edwiser_site_monitor .server_live_status .legends .legend{display:inline-block;margin:0 0.2rem}.edwiser_site_monitor .server_live_status .legends .legend .color{width:1rem;height:1rem;display:inline-block;vertical-align:middle}.edwiser_site_monitor .server_usage_chart{background:white}.edwiser_site_monitor .server-plugins,.edwiser_site_monitor .has-loader{min-height:4rem;position:relative}.edwiser_site_monitor .server-plugins .server-plugins-list{margin-top:1.2rem}.edwiser_site_monitor .server-plugins .server-plugins-list .generaltable{max-height:30rem;overflow-y:auto}.edwiser_site_monitor .server-plugins .server-plugins-list .plugin-list-refresh{width:100%;text-align:right}.edwiser_site_monitor .server-plugins .server-plugins-list .edwiser-plugin-list{overflow-y:auto;max-height:30rem}.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader{position:absolute;height:100%;width:100%;background:rgba(255,255,255,0.6);top:0}.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader:not(.show){display:none}.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader .edwiser-server-monitor-loading-icon{display:inline-block;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.edwiser_site_monitor .has-loader .edwiser-server-monitor-loader .edwiser-server-monitor-loading-icon .fa{font-size:2rem}.edwiser_site_monitor .generaltable.edwiser tbody tr:not(.edwiser),.edwiser_site_monitor .generaltable.other tbody tr:not(.other),.edwiser_site_monitor .generaltable.update tbody tr:not(.update){display:none}.edwiser_site_monitor .generaltable tbody td a{color:#62a8eb}.edwiser_site_monitor .edwiserpluginupdateinfo .singlebutton{margin:5px 0;padding:0}.edwiser_site_monitor .edwiserpluginupdateinfo .info{display:inline-block}.edwiser_site_monitor .separator:after{content:" | "}.edwiser_site_monitor .tab-content .tab-pane{display:none}.edwiser_site_monitor .tab-content .tab-pane.fade{opacity:0}.edwiser_site_monitor .tab-content .tab-pane.fade.show{opacity:1}.edwiser_site_monitor .tab-content .tab-pane.active{display:block}.edwiser-plugin-filter{margin-right:1rem}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card{margin-bottom:2.143rem}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card-shadow{box-shadow:0 1px 5px rgba(0,0,0,0.3)}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .cover{width:100%;padding:0;border-bottom:none;overflow:hidden}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .cover .cover-image{width:100%}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-header{border:none;box-shadow:none}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-header:first-child{border-radius:calc(.215rem - 1px) calc(.215rem - 1px) 0 0}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block{position:relative;flex:1 1 auto;padding:1.429rem}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block+.card-block{padding-top:0}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block .card-title{word-break:break-word;margin-top:0;margin-bottom:.858rem}.edwiser_plugins_recommendation .recommendation-list .recommendation-item .card .card-block .card-text:last-child{margin-bottom:0}.edwiser_plugins_recommendation .recommendation-list.blocks{padding:0;margin:0;margin-right:-1.0715rem;margin-left:-1.0715rem;list-style:none}.edwiser_plugins_recommendation .recommendation-list .form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px} diff --git a/templates/live_status.mustache b/templates/live_status.mustache index 8c7bd9d..a46b2f0 100755 --- a/templates/live_status.mustache +++ b/templates/live_status.mustache @@ -41,67 +41,73 @@ } }}
-
-
-
- +
+
+
-
-
- -
-
-
- +
+ + {{#disabled.cpu}}{{#str}} cpucommandnotallowed, block_edwiser_site_monitor {{/str}}{{/disabled.cpu}} +
+
+
-
- - - {{#disabled.cpu}}{{#str}} cpucommandnotallowed, block_edwiser_site_monitor {{/str}}{{/disabled.cpu}} -
-
+
+
+
-
-
- - - {{#disabled.memory}}{{#str}} memorycommandnotallowed, block_edwiser_site_monitor {{/str}}{{/disabled.memory}} -
-
+
+ + {{#disabled.memory}}{{#str}} memorycommandnotallowed, block_edwiser_site_monitor {{/str}}{{/disabled.memory}} +
+
+
-
- - -
-
+
+
+
-
-
- -
-
-
- +
+ +
+
-
-
- +
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+ +
-
-
- +
+
+
+
-
-
-
-
-
-
- - +
+
+ +
+
+ +
diff --git a/templates/main.mustache b/templates/main.mustache old mode 100644 new mode 100755 index f780385..459d30d --- a/templates/main.mustache +++ b/templates/main.mustache @@ -59,7 +59,7 @@
-
+
{{{ live_status }}} diff --git a/version.php b/version.php index 8c2e8d9..da9c102 100755 --- a/version.php +++ b/version.php @@ -25,9 +25,9 @@ defined('MOODLE_INTERNAL') || die; -$plugin->version = 2019111900; +$plugin->version = 2020050800; $plugin->requires = 2017111301; -$plugin->release = '1.0.4'; +$plugin->release = '2.0.0'; $plugin->maturity = MATURITY_STABLE; $plugin->component = 'block_edwiser_site_monitor'; $plugin->cron = 300;