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 9fba43f28944e7eb73ef6d78ffa26a1077542509..bdc3711e492775fa493389276db451bc0823ca3d 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 d602cc8d79883a39bee60227623666ccc4accd21..3105eb9e0ac3ab06ae4373a482b63b3fa66f3718 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 3aed999c49d25f8dd93bd3b9059a387d610ffb22..2950fbd6a4cb67bb22a12d1481d9f265833b3682 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 b04199a46fb3d89e6af1b07338260fedf0bd0084..2a4f6675e7e555fa0403b1f7dc181710d227094f 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 8fb5f28c17ab09d7610d42937cf94c8183d6fe1d..29940bcc483127984729c8d19ab753221a677473 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 4d8161c9e03bf0fff15ba91edc3438655c6e357d..b805824dda251ce36fb1423670216ef7db8b61c4 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 d853e89200fee6536ff48166e7bd6566d75ac99a..96cd0055eae65b250c8bc7d6f5c41abeefb3e0c4 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 39bd27a0fcc478eeeaf3cc4d7bd8356113eeaac2..318131645dc5af992a05f46d23208b34185a46db 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 23650951ae49a9aec23c16b46b508874f007939f..ceb725593509c9a3661dc6ad14a0b0d76f89956c 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>