From f20956ae91a2d00223308c67b250bd6c2847cdd3 Mon Sep 17 00:00:00 2001 From: Jaden Diefenbaugh <blakcap@users.noreply.github.com> Date: Wed, 19 Apr 2017 16:16:59 +0200 Subject: [PATCH] cleanup report viewmode --- .../reports/app/directives/edit/tableItem.js | 2 +- .../reports/app/directives/tableItem.js | 4 +- .../app/directives/view/itemContainer.js | 3 -- .../reports/app/directives/view/layout.js | 42 +++++++++++++------ .../app/directives/view/panelContent.js | 5 --- .../reports/app/directives/view/panelItems.js | 10 ----- .../reports/app/directives/view/plotItem.js | 6 +-- .../reports/app/directives/view/tableItem.js | 16 ++++--- .../reports/app/directives/view/textItem.js | 30 +++++++------ 9 files changed, 54 insertions(+), 64 deletions(-) diff --git a/beat/web/reports/static/reports/app/directives/edit/tableItem.js b/beat/web/reports/static/reports/app/directives/edit/tableItem.js index 9fba43f28..bdc3711e4 100644 --- a/beat/web/reports/static/reports/app/directives/edit/tableItem.js +++ b/beat/web/reports/static/reports/app/directives/edit/tableItem.js @@ -129,7 +129,7 @@ angular.module('reportApp') class="panel-collapse collapse in" role="tabpanel" aria-labelledby="{{domId}}-heading"> - <div table-item group='group' content='content' is-viewing-csv='isViewingCSV'></div> + <div table-item class='panel-body' group='group' content='content' is-viewing-csv='isViewingCSV'></div> </div> ` }; diff --git a/beat/web/reports/static/reports/app/directives/tableItem.js b/beat/web/reports/static/reports/app/directives/tableItem.js index d602cc8d7..3105eb9e0 100644 --- a/beat/web/reports/static/reports/app/directives/tableItem.js +++ b/beat/web/reports/static/reports/app/directives/tableItem.js @@ -141,10 +141,10 @@ angular.module('reportApp') }; }, template: ` -<div ng-if='isViewingCsv.val' class='panel-body'> +<div ng-if='isViewingCsv.val'> <pre>{{ getCSV() }}</pre> </div> -<div ng-if='!isViewingCsv.val' class='panel-body' style='height: 100%; overflow-x: auto;'> +<div ng-if='!isViewingCsv.val' style='height: 100%; overflow-x: auto;'> <table class="table table-striped table-hover"> <thead> <tr ui-sortable ng-model='fields'> diff --git a/beat/web/reports/static/reports/app/directives/view/itemContainer.js b/beat/web/reports/static/reports/app/directives/view/itemContainer.js index 3aed999c4..2950fbd6a 100644 --- a/beat/web/reports/static/reports/app/directives/view/itemContainer.js +++ b/beat/web/reports/static/reports/app/directives/view/itemContainer.js @@ -40,7 +40,6 @@ angular.module('reportApp') <div group-table-item ng-if="item.id.includes('table')" - class='panel panel-default' group='group' id='item.id' content='item.content' @@ -49,7 +48,6 @@ angular.module('reportApp') <div group-plot-item ng-if="item.id.includes('plot')" - class='panel panel-default' group='group' id='item.id' content='item.content' @@ -58,7 +56,6 @@ angular.module('reportApp') <div group-text-item ng-if="item.id.includes('text')" - class='panel panel-default' group='group' report-item='item' > diff --git a/beat/web/reports/static/reports/app/directives/view/layout.js b/beat/web/reports/static/reports/app/directives/view/layout.js index b04199a46..2a4f6675e 100644 --- a/beat/web/reports/static/reports/app/directives/view/layout.js +++ b/beat/web/reports/static/reports/app/directives/view/layout.js @@ -33,24 +33,40 @@ angular.module('reportApp').directive("groupsLayout", ['GroupsService', function }, link: function(scope, el, attr){ scope.groups = GroupsService.groups; + scope.isEmptyReportItem = (item) => { + if(!Object.keys(item).includes('content') || !item.content) { + return true; + } + + const thing = item.content; + + const isEmptyStr = (typeof thing === 'string' || thing instanceof String) && thing === ''; + const isEmptyObj = Object.keys(thing).length === 0; + const isEmptyArr = Array.isArray(thing) && thing.length === 0; + + return isEmptyStr || isEmptyObj || isEmptyArr; + }; }, template: ` <div class='panel panel-default'> -<div id="content-layout-heading" class="panel-heading" role="tab"> - <h4 class="panel-title"> - Content - </h4> -</div> -<div id='content-layout-body' class='panel-body'> - <div id='groupsLayout' class='panel-group'> - <div - group-panel-content - ng-repeat='group in groups track by $index' + <div id="content-layout-heading" class="panel-heading" role="tab"> + <h4 class="panel-title"> + Content + </h4> + </div> + <ul + class='list-group' + ng-repeat='group in groups' + > + <group-item-container + class='list-group-item' + ng-if='!isEmptyReportItem(item)' + ng-repeat='item in group.reportItems track by $index' group='group' + report-item='item' > - </div> - </div> -</div> + </group-item-container> + </ul> </div> ` }; diff --git a/beat/web/reports/static/reports/app/directives/view/panelContent.js b/beat/web/reports/static/reports/app/directives/view/panelContent.js index 8fb5f28c1..29940bcc4 100644 --- a/beat/web/reports/static/reports/app/directives/view/panelContent.js +++ b/beat/web/reports/static/reports/app/directives/view/panelContent.js @@ -33,11 +33,6 @@ angular.module('reportApp').directive("groupPanelContent", ['GroupsService', fun link: function(scope){ }, template: ` -<div - ng-if='group.experiments.length > 0' - group-panel-items - group='group'> -</div> ` }; }]); diff --git a/beat/web/reports/static/reports/app/directives/view/panelItems.js b/beat/web/reports/static/reports/app/directives/view/panelItems.js index 4d8161c9e..b805824dd 100644 --- a/beat/web/reports/static/reports/app/directives/view/panelItems.js +++ b/beat/web/reports/static/reports/app/directives/view/panelItems.js @@ -33,16 +33,6 @@ angular.module('reportApp').directive("groupPanelItems", [function(){ link: function(scope){ }, template: ` -<div> - <div - group-item-container - ng-repeat='item in group.reportItems track by $index' - group='group' - report-item='item' - style='margin-bottom: 5px;' - > - </div> -</div> ` }; }]); diff --git a/beat/web/reports/static/reports/app/directives/view/plotItem.js b/beat/web/reports/static/reports/app/directives/view/plotItem.js index d853e8920..96cd0055e 100644 --- a/beat/web/reports/static/reports/app/directives/view/plotItem.js +++ b/beat/web/reports/static/reports/app/directives/view/plotItem.js @@ -43,11 +43,7 @@ angular.module('reportApp') }); }, template: ` -<div class='panel-body'> - <div class='panel-body'> - <div id='{{ renderDivId }}'></div> - </div> -</div> +<div id='{{ renderDivId }}'></div> ` }; }]); diff --git a/beat/web/reports/static/reports/app/directives/view/tableItem.js b/beat/web/reports/static/reports/app/directives/view/tableItem.js index 39bd27a0f..318131645 100644 --- a/beat/web/reports/static/reports/app/directives/view/tableItem.js +++ b/beat/web/reports/static/reports/app/directives/view/tableItem.js @@ -45,18 +45,16 @@ angular.module('reportApp') }; }, template: ` -<div class='panel-body'> - <div class='row'> - <div class='col-sm-12'> - <div class="btn-group" role="group" role='tab'> - <button class='btn btn-default' ng-click='toggleViewingCSV()'> - Toggle CSV View - </button> - </div> +<div class='row'> + <div class='col-sm-12'> + <div class="btn-group pull-right" role="group" role='tab'> + <button class='btn btn-primary' ng-click='toggleViewingCSV()'> + Toggle CSV View + </button> </div> </div> - <div table-item group='group' content='content' is-viewing-csv='isViewingCSV'></div> </div> +<div table-item group='group' content='content' is-viewing-csv='isViewingCSV'></div> ` }; }]); diff --git a/beat/web/reports/static/reports/app/directives/view/textItem.js b/beat/web/reports/static/reports/app/directives/view/textItem.js index 23650951a..ceb725593 100644 --- a/beat/web/reports/static/reports/app/directives/view/textItem.js +++ b/beat/web/reports/static/reports/app/directives/view/textItem.js @@ -63,24 +63,22 @@ angular.module('reportApp') scope.compileContent(); }, template: ` -<div class='panel-body'> - <div class='row'> - <div class='col-sm-12'> - <div class="btn-group" role="group" role='tab'> - <!-- dont show split view, just toggle between html/rst view !--> - <button class='btn btn-default' ng-click='isViewingSrc.val = !isViewingSrc.val'> - Toggle Source View - </button> - </div> +<div class='row'> + <div class='col-sm-12'> + <div class="btn-group pull-right" role="group" role='tab'> + <!-- dont show split view, just toggle between html/rst view !--> + <button class='btn btn-primary' ng-click='isViewingSrc.val = !isViewingSrc.val'> + Toggle Source View + </button> </div> </div> - <div class='row' style='margin-top: 5px;'> - <div class='col-sm-12'> - <div ng-if='!isViewingSrc.val' ng-bind-html='trustAsHtml(compiledContent.val)'></div> - <div ng-if='isViewingSrc.val'> - <i>Readonly view</i> - <ui-codemirror ng-model='item.content' ui-codemirror-opts='srccmOptions'></ui-codemirror> - </div> +</div> +<div class='row' style='margin-top: 5px;'> + <div class='col-sm-12'> + <div ng-if='!isViewingSrc.val' ng-bind-html='trustAsHtml(compiledContent.val)'></div> + <div ng-if='isViewingSrc.val'> + <i>Readonly view</i> + <ui-codemirror ng-model='item.content' ui-codemirror-opts='srccmOptions'></ui-codemirror> </div> </div> </div> -- GitLab