Mercurial > hg > orthanc-dicomweb
changeset 684:84b036d64897
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 17 Dec 2024 11:59:07 +0100 |
parents | 38899665dfc5 |
children | 49aab490fc48 |
files | WebApplication/app.js WebApplication/index.html |
diffstat | 2 files changed, 101 insertions(+), 64 deletions(-) [+] |
line wrap: on
line diff
--- a/WebApplication/app.js Tue Dec 17 10:59:28 2024 +0100 +++ b/WebApplication/app.js Tue Dec 17 11:59:07 2024 +0100 @@ -65,21 +65,6 @@ ], studyToDelete: null, studyTags: [ ], - studyTagsFields: [ - { - key: 'Tag', - sortable: true - }, - { - key: 'Name', - label: 'Description', - sortable: true - }, - { - key: 'Value', - sortable: true - } - ], series: [ ], seriesFields: [ { @@ -92,22 +77,7 @@ } ], seriesToDelete: null, - seriesTags: [ ], - seriesTagsFields: [ - { - key: 'Tag', - sortable: true - }, - { - key: 'Name', - label: 'Description', - sortable: true - }, - { - key: 'Value', - sortable: true - } - ], + seriesTags: [ ], scrollToSeries: false, scrollToStudies: false }, @@ -139,7 +109,7 @@ window.scrollTo(0, element.offsetTop); }, ShowErrorModal: function() { - app.$refs['modal-error'].show(); + $(app.$refs['modal-error']).modal(); }, RefreshJobDetails: function() { axios @@ -232,7 +202,7 @@ return item; }); - app.$refs['study-details'].show(); + $(app.$refs['study-details']).modal(); }, RetrieveStudy: function(study) { var base = '../../servers/'; @@ -296,7 +266,7 @@ return item; }); - app.$refs['series-details'].show(); + $(app.$refs['series-details']).modal(); }, RetrieveSeries: function(series) { var base = '../../servers/';
--- a/WebApplication/index.html Tue Dec 17 10:59:28 2024 +0100 +++ b/WebApplication/index.html Tue Dec 17 11:59:07 2024 +0100 @@ -16,6 +16,10 @@ <!-- CSS style to truncate long text in tables, provided they have class "table-layout:fixed;" or attribute ":fixed=true" --> <style> + table { + table-layout:fixed; + } + table td { white-space: nowrap; overflow: hidden; @@ -60,18 +64,28 @@ </div> - <b-modal ref="modal-error" size="xl" ok-only="true"> - <template slot="modal-title"> - Connection error - </template> - <div class="d-block"> - <p> - There was an error connecting to "{{ activeServer }}" server. - </p> + <div class="modal" tabindex="-1" ref="modal-error"> + <div class="modal-dialog modal-xl"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title">Connection error</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <p> + There was an error connecting to "{{ activeServer }}" server. + </p> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button> + </div> + </div> </div> - </b-modal> + </div> - + <!-- LOOKUP --> <div class="row"> @@ -160,16 +174,6 @@ </tbody> </table> - <b-modal ref="study-details" size="xl" ok-only="true"> - <template slot="modal-title"> - Details of study - </template> - <div class="d-block text-center"> - <b-table striped :items="studyTags" :fields="studyTagsFields" :fixed="true"> - </b-table> - </div> - </b-modal> - <b-modal id="study-delete-confirm" size="xl" @ok="ExecuteDeleteStudy"> <template slot="modal-title"> Confirm deletion @@ -186,6 +190,41 @@ </div> + <div class="modal" tabindex="-1" ref="study-details"> + <div class="modal-dialog modal-xl"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title">Details of study</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <table class="table table-striped"> + <thead> + <tr> + <th scope="col" class="col-sm-2">Tag</th> + <th scope="col" class="col-sm-3">Description</th> + <th scope="col">Value</th> + </tr> + </thead> + <tbody> + <tr v-for="s in studyTags"> + <td>{{'Tag' in s ? s.Tag : ''}}</td> + <td>{{'Name' in s ? s.Name : ''}}</td> + <td>{{'Value' in s ? s.Value : ''}}</td> + </tr> + </tbody> + </table> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button> + </div> + </div> + </div> + </div> + + <!-- SERIES --> <hr v-show="showSeries" ref="series-top" /> @@ -222,16 +261,6 @@ </tbody> </table> - <b-modal ref="series-details" size="xl" ok-only="true"> - <template slot="modal-title"> - Details of series - </template> - <div class="d-block text-center"> - <b-table striped :items="seriesTags" :fields="seriesTagsFields" :fixed="true"> - </b-table> - </div> - </b-modal> - <b-modal ref="series-preview" size="xl" ok-only="true"> <template slot="modal-title"> Preview of series @@ -260,6 +289,41 @@ </div> + <div class="modal" tabindex="-1" ref="series-details"> + <div class="modal-dialog modal-xl"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title">Details of series</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + <div class="modal-body"> + <table class="table table-striped"> + <thead> + <tr> + <th scope="col" class="col-sm-2">Tag</th> + <th scope="col" class="col-sm-3">Description</th> + <th scope="col">Value</th> + </tr> + </thead> + <tbody> + <tr v-for="s in seriesTags"> + <td>{{'Tag' in s ? s.Tag : ''}}</td> + <td>{{'Name' in s ? s.Name : ''}}</td> + <td>{{'Value' in s ? s.Value : ''}}</td> + </tr> + </tbody> + </table> + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button> + </div> + </div> + </div> + </div> + + <b-modal ref="retrieve-job" size="xl" ok-only="true"> <template slot="modal-title"> Retrieving {{ jobLevel }} @@ -288,7 +352,10 @@ </div> <!-- Add Vue and Bootstrap-Vue JS just before the closing </body> tag --> + <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <!-- Necessary for Bootstrap --> + <script src="../libs/js/bootstrap.min.js"></script> <script src="../libs/js/vue.min.js"></script> + <script src="../libs/js/bootstrap-vue.min.js"></script> <script src="../libs/js/axios.min.js"></script> <script type="text/javascript" src="app.js"></script> </body>