Started a refactor of how the js files are organized
Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/de24dc21 Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/de24dc21 Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/de24dc21 Branch: refs/heads/apache-blur-0.2 Commit: de24dc21f871311919e76bdb79ef920a473efc6e Parents: 7b6d5e8 Author: Chris Rohr <[email protected]> Authored: Thu May 29 22:19:07 2014 -0400 Committer: Chris Rohr <[email protected]> Committed: Thu May 29 22:19:07 2014 -0400 ---------------------------------------------------------------------- .../src/main/webapp/js/blurconsole.b_utils.js | 19 +-- .../src/main/webapp/js/blurconsole.dashboard.js | 166 ++++++++++--------- .../src/main/webapp/js/blurconsole.data.js | 51 +++--- 3 files changed, 120 insertions(+), 116 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/de24dc21/contrib/blur-console/src/main/webapp/js/blurconsole.b_utils.js ---------------------------------------------------------------------- diff --git a/contrib/blur-console/src/main/webapp/js/blurconsole.b_utils.js b/contrib/blur-console/src/main/webapp/js/blurconsole.b_utils.js index 1903782..8ffd146 100644 --- a/contrib/blur-console/src/main/webapp/js/blurconsole.b_utils.js +++ b/contrib/blur-console/src/main/webapp/js/blurconsole.b_utils.js @@ -20,9 +20,8 @@ under the License. /*global blurconsole:false */ blurconsole.browserUtils = (function(){ 'use strict'; - var table, modal, cleanId, booleanImg; - table = function(def, data) { + function table(def, data) { var tableMarkup; tableMarkup = '<table class="table table-bordered table-condensed table-hover table-striped"><thead><tr>'; @@ -55,9 +54,9 @@ blurconsole.browserUtils = (function(){ tableMarkup += '</tbody></table>'; return tableMarkup; - }; + } - modal = function(id, title, content, buttons, size) { + function modal(id, title, content, buttons, size) { var mSize, markup, mButtons = buttons; switch(size) { @@ -91,7 +90,7 @@ blurconsole.browserUtils = (function(){ markup += 'data-' + key + '="' + dataAttr + '" '; }); } - + markup += '>' + button.label + '</button> '; }); markup += '</div>'; @@ -100,18 +99,18 @@ blurconsole.browserUtils = (function(){ markup += '</div></div></div>'; return markup; - }; + } - cleanId = function(str) { + function cleanId(str) { return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '_'); - }; + } - booleanImg = function(val) { + function booleanImg(val) { if (val && (val === true || val === 'yes' || val === 'true')) { return '<div class="label label-success"><i class="glyphicon glyphicon-ok-sign"></i></div>'; } return '<div class="label label-danger"><i class="glyphicon glyphicon-minus-sign"></i></div>'; - }; + } return { table: table, http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/de24dc21/contrib/blur-console/src/main/webapp/js/blurconsole.dashboard.js ---------------------------------------------------------------------- diff --git a/contrib/blur-console/src/main/webapp/js/blurconsole.dashboard.js b/contrib/blur-console/src/main/webapp/js/blurconsole.dashboard.js index 965d151..005645f 100644 --- a/contrib/blur-console/src/main/webapp/js/blurconsole.dashboard.js +++ b/contrib/blur-console/src/main/webapp/js/blurconsole.dashboard.js @@ -25,6 +25,7 @@ under the License. /*global blurconsole:false */ blurconsole.dashboard = (function () { 'use strict'; + //------------------- Configuration and State ------------------------- var configMap = { view: 'views/dashboard.tpl.html', @@ -54,12 +55,10 @@ blurconsole.dashboard = (function () { zookeeperNodes: 'chart', controllerNodes: 'chart' }, - jqueryMap = {}, - setJqueryMap, initModule, unloadModule, updateNodeCharts, adjustChartsSizes, adjustChartSize, - loadZkPieChart, loadControllerPieChart, loadShardsPieChart, loadTableColumnChart, loadQueryPerfLineChart, - buildNodeTable, checkForSlowQueries, updateAllCharts; + jqueryMap = {}; - setJqueryMap = function() { + //--------------------- Utilities --------------------- + function _setJqueryMap() { var $container = stateMap.$container; jqueryMap = { $container : $container, @@ -71,59 +70,70 @@ blurconsole.dashboard = (function () { $tableChartHolder : $('#tableCounts'), $queryLoadChartHolder : $('#queryLoad') }; - }; + } - unloadModule = function() { - $.gevent.unsubscribe(jqueryMap.$container, 'node-status-updated'); - $.gevent.unsubscribe(jqueryMap.$container, 'tables-updated'); - $.gevent.unsubscribe(jqueryMap.$container, 'query-perf-updated'); - $.gevent.unsubscribe(jqueryMap.$container, 'queries-updated'); - }; + function _registerPageEvents() { + $(document).on('click', '.swapper-trigger', _swapNodeChartAndData); + $(window).on('resize', _adjustChartsSizes); + } - updateAllCharts = function() { - updateNodeCharts(); - loadTableColumnChart(); - loadQueryPerfLineChart(); - }; + function _unregisterPageEvents() { + $(document).off('click', '.swapper-trigger'); + $(window).off('resize'); + } + + //----------------------- Event Handlers and DOM Modifiers ------------------ + function _updateAllCharts() { + _updateNodeCharts(); + _loadTableColumnChart(); + _loadQueryPerfLineChart(); + } - updateNodeCharts = function() { + function _updateNodeCharts() { if (blurconsole.model.nodes.isDataLoaded()) { - loadZkPieChart(); - loadControllerPieChart(); - loadShardsPieChart(); + _loadZkPieChart(); + _loadControllerPieChart(); + _loadShardsPieChart(); } - }; + } + + function _swapNodeChartAndData(evt) { + var parent = $(evt.currentTarget).closest('div.swapper-parent'); + var chart = parent.find('.swapper-chart'); + var info = parent.find('.swapper-info'); - loadZkPieChart = function() { + chart.toggleClass('hidden'); + info.toggleClass('hidden'); + } + + function _loadZkPieChart() { $.plot(jqueryMap.$zkChartHolder, blurconsole.model.metrics.getZookeeperChartData(), configMap.pieOptions); - jqueryMap.$zkInfoHolder.html(buildNodeTable(blurconsole.model.nodes.getOnlineZookeeperNodes(), blurconsole.model.nodes.getOfflineZookeeperNodes())); - }; + jqueryMap.$zkInfoHolder.html(_buildNodeTable(blurconsole.model.nodes.getOnlineZookeeperNodes(), blurconsole.model.nodes.getOfflineZookeeperNodes())); + } - loadControllerPieChart = function() { + function _loadControllerPieChart() { $.plot(jqueryMap.$controllerChartHolder, blurconsole.model.metrics.getControllerChartData(), configMap.pieOptions); - jqueryMap.$controllerInfoHolder.html(buildNodeTable(blurconsole.model.nodes.getOnlineControllerNodes(), blurconsole.model.nodes.getOfflineControllerNodes())); - }; + jqueryMap.$controllerInfoHolder.html(_buildNodeTable(blurconsole.model.nodes.getOnlineControllerNodes(), blurconsole.model.nodes.getOfflineControllerNodes())); + } - loadShardsPieChart = function() { + function _loadShardsPieChart() { if (jqueryMap.$shardChartHolder.find('img').length > 0) { jqueryMap.$shardChartHolder.html(''); } $.each(blurconsole.model.metrics.getClusters(), function(idx, cluster) { - var clusterData, clusterHolder, clusterInfo, parentSize; - - clusterData = blurconsole.model.metrics.getShardChartData(cluster); + var clusterData = blurconsole.model.metrics.getShardChartData(cluster); if (clusterData) { - clusterHolder = jqueryMap.$shardChartHolder.find('#cluster_' + cluster + '_chart_holder'); - clusterInfo = jqueryMap.$shardChartHolder.find('#cluster_' + cluster + '_info'); + var clusterHolder = jqueryMap.$shardChartHolder.find('#cluster_' + cluster + '_chart_holder'); + var clusterInfo = jqueryMap.$shardChartHolder.find('#cluster_' + cluster + '_info'); if (clusterHolder.length === 0) { var wrapper = $('<div class="swapper-parent"></div>'); wrapper.append($('<div class="text-center"><strong>' + cluster + '</strong> <small class="text-muted"><i class="glyphicon glyphicon-retweet swapper-trigger" title="Swap Chart/Info"></i></small></div>')); clusterHolder = $('<div id="cluster_'+ cluster + '_chart_holder" class="shardClusterChartHolder simple-chart swapper-chart"></div>'); wrapper.append(clusterHolder); - parentSize = jqueryMap.$shardChartHolder.parent()[0].clientWidth - 150; + var parentSize = jqueryMap.$shardChartHolder.parent()[0].clientWidth - 150; clusterHolder.css({ 'height' : parentSize, 'width' : parentSize @@ -135,12 +145,12 @@ blurconsole.dashboard = (function () { } $.plot(clusterHolder, clusterData, configMap.pieOptions); - clusterInfo.html(buildNodeTable([], blurconsole.model.nodes.getOfflineShardNodes(cluster))); + clusterInfo.html(_buildNodeTable([], blurconsole.model.nodes.getOfflineShardNodes(cluster))); } }); - }; + } - loadTableColumnChart = function() { + function _loadTableColumnChart() { if (blurconsole.model.tables.isDataLoaded()) { $.plot(jqueryMap.$tableChartHolder, blurconsole.model.metrics.getTableChartData(), { bars : { @@ -157,9 +167,9 @@ blurconsole.dashboard = (function () { } }); } - }; + } - loadQueryPerfLineChart = function() { + function _loadQueryPerfLineChart() { $.plot(jqueryMap.$queryLoadChartHolder, blurconsole.model.metrics.getQueryLoadChartData(), { series : { shadowSize : 0 @@ -171,9 +181,9 @@ blurconsole.dashboard = (function () { show : false } }); - }; + } - buildNodeTable = function(online, offline) { + function _buildNodeTable(online, offline) { var table = '<table class="table table-condensed"><thead><tr><th>Offline Node</th></tr></thead><tbody>'; if (offline.length === 0) { table += '<tr><td>Everything is Online!</td></tr>'; @@ -192,69 +202,67 @@ blurconsole.dashboard = (function () { table += '</tbody></table>'; } return $(table); - }; + } - adjustChartSize = function(holder) { + function _adjustChartSize(holder) { var size; size = jqueryMap[holder].parent()[0].clientWidth - 150; jqueryMap[holder].css({ 'height' : size, 'width' : size }); - }; - - adjustChartsSizes = function() { - var size, shardCharts; + } - adjustChartSize('$zkChartHolder'); - adjustChartSize('$controllerChartHolder'); - adjustChartSize('$tableChartHolder'); - adjustChartSize('$queryLoadChartHolder'); + function _adjustChartsSizes() { + _adjustChartSize('$zkChartHolder'); + _adjustChartSize('$controllerChartHolder'); + _adjustChartSize('$tableChartHolder'); + _adjustChartSize('$queryLoadChartHolder'); - size = jqueryMap.$shardChartHolder.parent()[0].clientWidth - 150; - shardCharts = jqueryMap.$shardChartHolder.find('.shardClusterChartHolder'); + var size = jqueryMap.$shardChartHolder.parent()[0].clientWidth - 150; + var shardCharts = jqueryMap.$shardChartHolder.find('.shardClusterChartHolder'); shardCharts.each(function(){ $(this).css({ 'height' : size, 'width' : size }); }); - updateAllCharts(); - }; + _updateAllCharts(); + } - checkForSlowQueries = function() { + function _checkForSlowQueries() { if (blurconsole.model.metrics.getSlowQueryWarnings()) { $('#slow-query-warnings').slideDown(); } else { $('#slow-query-warnings').slideUp(); } - }; + } - initModule = function( $container ) { + //----------------------- Public API ---------------------------- + + function initModule( $container ) { $container.load ( configMap.view, function() { stateMap.$container = $container; - setJqueryMap(); - updateAllCharts(); - checkForSlowQueries(); - $.gevent.subscribe(jqueryMap.$container, 'node-status-updated', updateNodeCharts); - $.gevent.subscribe(jqueryMap.$container, 'tables-updated', loadTableColumnChart); - $.gevent.subscribe(jqueryMap.$container, 'query-perf-updated', loadQueryPerfLineChart); - $.gevent.subscribe(jqueryMap.$container, 'queries-updated', checkForSlowQueries); - adjustChartsSizes(); - $(document).on('click', '.swapper-trigger', function() { - console.log(this); - var parent = $(this).closest('div.swapper-parent'); - console.log(parent); - var chart = parent.find('.swapper-chart'); - var info = parent.find('.swapper-info'); - - chart.toggleClass('hidden'); - info.toggleClass('hidden'); - }); + _setJqueryMap(); + _updateAllCharts(); + _checkForSlowQueries(); + $.gevent.subscribe(jqueryMap.$container, 'node-status-updated', _updateNodeCharts); + $.gevent.subscribe(jqueryMap.$container, 'tables-updated', _loadTableColumnChart); + $.gevent.subscribe(jqueryMap.$container, 'query-perf-updated', _loadQueryPerfLineChart); + $.gevent.subscribe(jqueryMap.$container, 'queries-updated', _checkForSlowQueries); + _adjustChartsSizes(); + _registerPageEvents(); }); - $(window).resize(adjustChartsSizes); return true; - }; + } + + function unloadModule() { + $.gevent.unsubscribe(jqueryMap.$container, 'node-status-updated'); + $.gevent.unsubscribe(jqueryMap.$container, 'tables-updated'); + $.gevent.unsubscribe(jqueryMap.$container, 'query-perf-updated'); + $.gevent.unsubscribe(jqueryMap.$container, 'queries-updated'); + _unregisterPageEvents(); + } return { initModule : initModule, http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/de24dc21/contrib/blur-console/src/main/webapp/js/blurconsole.data.js ---------------------------------------------------------------------- diff --git a/contrib/blur-console/src/main/webapp/js/blurconsole.data.js b/contrib/blur-console/src/main/webapp/js/blurconsole.data.js index 54a1024..9710ddc 100644 --- a/contrib/blur-console/src/main/webapp/js/blurconsole.data.js +++ b/contrib/blur-console/src/main/webapp/js/blurconsole.data.js @@ -20,34 +20,31 @@ under the License. /*global blurconsole:false */ blurconsole.data = (function() { 'use strict'; - var getTableList, getNodeList, getQueryPerformance, getQueries, cancelQuery, disableTable, enableTable, deleteTable, getSchema, findTerms, sendSearch, - logError; - getTableList = function(callback) { + function getTableList(callback) { $.getJSON('/service/tables', callback).fail(function(xhr) { logError(xhr.responseText, xhr.status, 'tables', callback); }); - }; + } - getNodeList = function(callback) { + function getNodeList(callback) { $.getJSON('/service/nodes', callback).fail(function(xhr) { logError(xhr.responseText, xhr.status, 'tables', callback); }); - }; - - getQueryPerformance = function(callback) { + } + function getQueryPerformance(callback) { $.getJSON('/service/queries/performance', callback).fail(function(xhr) { logError(xhr.responseText, xhr.status, 'tables', callback); }); - }; + } - getQueries = function(callback) { + function getQueries(callback) { $.getJSON('/service/queries', callback).fail(function(xhr) { logError(xhr.responseText, xhr.status, 'tables', callback); }); - }; + } - cancelQuery = function(table, uuid) { + function cancelQuery(table, uuid) { $.ajax('/service/queries/' + uuid + '/cancel', { data: { table: table @@ -56,25 +53,25 @@ blurconsole.data = (function() { logError(xhr.responseText, xhr.status, 'tables'); } }); - }; + } - disableTable = function(table) { + function disableTable(table) { $.ajax('/service/tables/' + table + '/disable', { error: function(xhr) { logError(xhr.responseText, xhr.status, 'tables'); } }); - }; + } - enableTable = function(table) { + function enableTable (table){ $.ajax('/service/tables/' + table + '/enable', { error: function(xhr) { logError(xhr.responseText, xhr.status, 'tables'); } }); - }; + } - deleteTable = function(table, includeFiles) { + function deleteTable (table, includeFiles) { $.ajax('/service/tables/' + table + '/delete', { data: { includeFiles: includeFiles @@ -83,21 +80,21 @@ blurconsole.data = (function() { logError(xhr.responseText, xhr.status, 'tables'); } }); - }; + } - getSchema = function(table, callback) { + function getSchema(table, callback) { $.getJSON('/service/tables/' + table + '/schema', callback).fail(function(xhr) { logError(xhr.responseText, xhr.status, 'tables'); }); - }; + } - findTerms = function(table, family, column, startsWith, callback) { + function findTerms (table, family, column, startsWith, callback) { $.getJSON('/service/tables/' + table + '/' + family + '/' + column + '/terms', {startsWith: startsWith}, callback).fail(function(xhr) { logError(xhr.responseText, xhr.status, 'tables'); }); - }; + } - sendSearch = function(query, table, args, callback) { + function sendSearch(query, table, args, callback) { var params = $.extend({table:table, query:query}, args); $.ajax('/service/search', { 'type': 'POST', @@ -107,14 +104,14 @@ blurconsole.data = (function() { logError(xhr.responseText, xhr.status, 'tables'); } }); - }; + } - logError = function(errorMsg, status, module, callback) { + function logError (errorMsg, status, module, callback) { blurconsole.model.logs.logError(status + ' - ' + errorMsg, module); if (callback) { callback('error'); } - }; + } return { getTableList : getTableList,
