From 04100fb9e3937d60ffb281e2c5e3efc4e878710b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Thu, 24 Aug 2023 23:30:06 +0200 Subject: [PATCH 1/8] style: middle horizontal alignment on tables --- components/app/R/www/styles.min.css | 2 +- scss/components/_table.scss | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/components/app/R/www/styles.min.css b/components/app/R/www/styles.min.css index 9b057b12e..2f9df726b 100644 --- a/components/app/R/www/styles.min.css +++ b/components/app/R/www/styles.min.css @@ -1 +1 @@ -html #app{min-height:calc(100vh - 48px)}html body{font-size:14px}html body a{color:#0a3c64;text-decoration:none}html .alert{margin-bottom:0 !important}html .content{min-height:800px}html h2{font-size:1.85em}html h3{font-size:1.5em}html h4{font-weight:600;font-size:1.2em}html .control-label{margin-bottom:0px;margin-top:2px}html .tabbable .nav-tabs{padding:0px;margin:5px 0px 20px 0px;border-radius:0px;font-size:18px}html .nav-tabs>li>a{margin:0px 20px 20px 0px;padding:2px 0px;border-radius:0px}html .nav-tabs>li.active{border-top:3px solid #0a3c64;margin-top:-3px}html .box{border-top:0px !important}html #datainfo{background:#fcfcfc;font-size:12px;padding:20px 10px;line-height:1em}html .well{font-size:14px;line-height:1.2em;background:transparent}html .code{color:#1f1f1fFF;background-color:#F9F9F9FF;font-weight:400}html .gene-info{font-size:0.9em;line-height:1.1em}html .bg-cover-image{background-color:#dde6f0;background-color:#fff}html .btn-circle-xs,html .btn-circle-xs:focus{background:#FFFFFF;color:#DDD;text-shadow:0 0 0px #ccc;border:0px;border-radius:3px !important}html .btn-circle-xs:hover{background-color:#fff;color:#444;border:0px;border-radius:3px}html .module-label{color:#AAA;font-family:"Arial";font-size:18px;font-weight:600;padding-right:8px}html .chart-wrapper .chart-notes{font-size:11px;font-weight:400;line-height:1.3em}html .caption{font-size:13px;font-weight:400;line-height:1.1em;margin:6px 4px 3px 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html .caption2{font-size:22px;font-weight:400;line-height:1.1em;padding:2rem 0rem 0rem 0rem}html .current-user{position:fixed;font-weight:200;font-size:11px;color:#fff;color:#000;top:1px;right:20px;z-index:9999}html .current-dataset{position:relative;padding:8px 0vw;font-weight:200;font-size:16px;color:#000;text-align:left}html .current-section{padding:8px 0vw;font-weight:400;font-size:18px;color:#000;text-align:center;min-width:0vw}html .run-button,html .load-button{outline:none;border-color:#1967be;box-shadow:0 0 5px #1967be}html .action-button .fab .fa{font-size:16px;margin-top:0px}html .btn-social-icon{padding:0px;width:28px;height:24px}html #social-buttons{position:fixed;font-weight:300;font-size:30px !important;color:#FFFFFF88;bottom:10px;left:10px;z-index:9999}html .radioGroupButtons{margin-top:-3px;margin-bottom:-3px}html .btn-xl{padding:.3rem 1.5rem;margin:20px;font-size:2.0rem;border-radius:.3rem}html .red-button{color:white;background-color:#e45c00;background-image:none;border:0px;padding:8px 12px}html .red-button:hover,html .red-button:focus,html .red-button:active,html .red-button:active:hover{background-color:#b44c00}html .blue-button{color:white;background-color:#337ab7;border-color:#2e6da4}html .blue-button:hover,html .blue-button:focus,html .blue-button:active,html .blue-button:active:hover{background-color:#286090;border-color:#204d74}html div#navheader-current-section{font-size:30px;font-weight:400;margin:15px 0 5px 0px}html div#navheader-dataset-stats{margin:22px 0px 0px 40px;font-size:24px;color:#3181DE}html div#navheader-current-dataset{margin:35px 10px 0px 0px;font-size:14px;color:black}html .footer{position:absolute;right:0;left:0;bottom:0;padding:3rem 1rem;text-align:center;font-size:0.8em}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;color:#2244AA;background-color:transparent;border-style:none;padding:0}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;background-color:#eee;border-style:none;padding:0}html #emailLinkWrapper{display:none;padding-left:20rem}html .white{color:white}html textarea.form-control{font-size:0.95em;line-height:1.1em}html .form-group{margin-bottom:0.3rem}.tooltip{pointer-events:none}html .big-tab{padding:0px 15px}html .navbar{padding-top:0.3rem;border-bottom:2px solid #004ca7}html .nav-tabs .nav-link{color:#b8b8b8;border-bottom:solid 1px}html #logo-bigomics:hover{cursor:pointer}html .btn.dropdown-toggle::after{content:none}html .nav-link.dropdown-toggle::after{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f078";border-top:none;vertical-align:0}html .sidebar-container{height:calc(100vh - 48px)}html .sidebar-expanded>.sidebar{width:12rem;min-width:12rem;max-height:calc(100vh - 300px);overflow-y:auto}html #sidebar-help-title{padding-top:10rem}html #sidebar-help-container{width:11.5rem;font-size:12px;line-height:1.2em;background:url("assets/img/mascotte-sc.png") no-repeat;background-size:5rem 5rem;background-position:3.5rem 5rem;position:absolute;bottom:10px}html .sidebar-menu{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-item{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-menu-item{font-size:17px;line-height:1.1rem;font-weight:400;color:#333 !important;padding:0 0.4rem 0 0.4rem}html .sidebar-label{font-size:18px}html .text-muted{color:#333 !important}html .active-sidebar{background-color:#EFEFEF}html .tab-sidebar{line-height:1.1rem;padding:0.65rem 0rem 0.65rem 0.7rem}html .settings-container{height:calc(100vh - 48px)}html .settings-expanded{width:12rem;min-width:12rem}html .valuebox-value{font-weight:800;color:white;padding:16px 0 0 0;margin:0 0 0 20px}html .valuebox-label{margin:0 0 0 20px;font-weight:400;color:white;padding-bottom:25px}html #shiny-modal{display:flex !important;margin:auto}html .modal-title{margin-right:auto;margin-left:auto;margin-top:-5px;font-size:1.2em}html .modal-content .well{font-size:1.3em;line-height:1.2em;width:100%}html .modal-dialog{box-shadow:10px 10px 30px #999;display:flex !important;margin:auto}html .modal-dialog.modal-lg{width:600px;justify-content:center;align-items:center}html .modal-dialog.modal-sm{width:300px;justify-content:center;align-items:center}html .modal-footer .btn{margin-left:5px;margin-bottom:0;font-size:14px}html .img-fluid{display:block;margin-right:auto;margin-left:auto}html .modal-content{border:0}html .modal-backdrop{background-color:#000;background-color:#FFF}html .modal-backdrop.show,html .modal-backdrop.in{opacity:0.85}html .bg-cover-image{background-color:#fff}html .swal2-popup{font-size:1rem !important}html .modal-body{height:auto}html .sweet-alert p{color:black}html .tablewidget{padding:5px 15px 25px 15px}html .tablewidget-header{border-bottom:1px solid #ccc;height:24px;margin-bottom:5px}html .table-caption{font-size:13px;font-weight:400;line-height:1.1em;position:relative;padding:5px 0px 10px 0px;bottom:0px}html div.dataTables_wrapper div.dataTables_filter{text-align:left}html .popup-table div.dataTables_wrapper div.dataTables_filter{text-align:left;font-size:18px}html .popup-table div.dataTables_info{font-size:18px}html div.dataTables_wrapper div.dataTables_filter input{width:350px;background-color:#f7fafd}html table.dataTable{border-collapse:collapse !important}html table.dataTable td,html table.dataTable th{border-bottom:solid 1px #aaa !important}html table.dataTable>thead>tr>th{font-size:13px;padding:0px 0px 4px 0px;line-height:1em}html table.dataTable>tbody>tr>td{font-size:13px;padding:5px}html .popup-table table.dataTable>thead>tr>th{font-size:18px}html .popup-table table.dataTable>tbody>tr>td{font-size:16px;padding:7px}html .table.dataTable tbody td.active,html .table.dataTable tbody tr.active td{background-color:#e9ecef;color:black;font-weight:600}html #init-load-data,html #init-upload-data{margin-right:2rem}html #welcome-page{text-align:center;background-color:#f0f9fd;min-height:calc(100vh - 48px)}html #welcome-text{font-size:50px;font-weight:600;color:#2484bb;padding-top:300px;background:url("monster-hi.png") no-repeat;background-size:300px 300px;background-position:53% 0px}html .welcome-btn{padding:10px 26px;margin-top:20px;margin-left:6px;font-size:24px;width:300px;color:black;border-width:2.5px}html #welcome-subtext{padding:0 25%;text-align:center;font-size:1.8em;line-height:1.4em}html #welcome-carousel{margin-top:20px}html .welcome-slide{width:50%;margin-left:auto;margin-right:auto;text-align:center;line-height:1.4em}html .plotmodule{padding:5px 15px 50px 15px}html .plotmodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .plotmodule-title{font-size:16px}html .plotmodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-modal>div{margin-left:auto;margin-right:auto}html .popup-modal .modal-title{font-size:2.5em;margin-right:0}html .popup-modal .modal-footer{display:none}html .popup-plot>div{margin-left:auto;margin-right:auto}html .tablemodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .tablemodule-title{font-size:16px}html .tablemodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-table{width:90%;margin-left:auto;margin-right:auto}html .popup-table>div{margin-left:auto;margin-right:auto}html .popup-table-caption{width:90%;margin-left:auto;margin-right:auto}html ul.nav.navbar-nav>li>a{padding:0px 10px 1px 10px;color:grey;background-color:#e7eaed;border-radius:50px;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li>a:hover ul.nav.navbar-nav>li>a:active{color:black;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li{display:inline-block}html ul.nav.navbar-nav{display:inline-block !important}html #modal-splash{height:32rem;width:100%;background-color:#004ca7;padding:0px !important}html #particles-target{position:absolute;top:0px;width:100%;height:500px}html div#splash-fullscreen{background-color:#2780e3 !important;padding:2rem 2rem}html #splash-logo2{height:3rem}html img#splash-image{max-height:65vh}html #splash-panel{margin-top:65%;text-align:center;max-width:350px}html #splash-panel .card{color:#555;background:white;padding:10px 10px;text-align:center;box-shadow:10px 10px 20px #0002;margin-top:-50%}html #splash-panel .card-title{margin-top:0.5rem;margin-bottom:0.5rem}html #splash-panel .shiny-input-container{width:100%;max-width:100%}html #splash-buttons .btn-xl{padding:5px 20px;font-size:24px;border-radius:8px}html button#auth-emailSubmit{border:1px solid #ccc;padding:5px 40px;margin:0 0 10px 0;width:100%}html .social-button{border:1px solid #fff;padding:8px 10px;border-radius:5px;text-decoration:none !important}html .google-button{background-color:#dd4b39;color:white !important}html .facebook-button{background-color:#4267B2;color:white !important}html .apple-button{background-color:#ccc;color:white !important}html .twitter-button{background-color:#26a7de;color:white !important}html a#auth-launchGoogle{color:white !important;text-decoration:none !important}html a#auth-launchFacebook{color:white !important;text-decoration:none !important}html a#auth-launchApple{color:black !important;text-decoration:none !important}html a#auth-launchTwitter{color:white !important;text-decoration:none !important}html .btn-social{padding:3px !important;background-color:white !important;border-color:white !important;font-size:32px !important;color:steelblue !important}html .progress{border-radius:0px;background-color:#eee;box-shadow:none}html .progress-bar{background-color:#2780e3}html .shiny-notification{border-radius:0px;background-color:#fff}html .spinner-container{position:absolute;z-index:999;top:50%;transform:translateY(-50%);left:-50px}html .spinner-container .spinner-text{display:none;position:absolute;top:calc(50% + 30px);left:calc(50% + 1.5rem);transform:translate(-50%, -50%);white-space:nowrap;z-index:1}html #spinner-container:hover .spinner-text{display:block}.dropdown-menu{margin:5px 1px !important}.dropdown-menu.show{font-size:0.95em}.dropdown-menu .form-group{margin-bottom:0rem}.shiny-download-link{background-color:white;border-color:lightgrey}html .card{--bs-card-spacer-y: 0.6rem !important}html .caption{margin:4px}html .caption:hover{overflow:auto}html .card-footer{background-color:#F7FAFD;padding:2px 0 0 2px;height:3em !important;max-height:3em !important;min-height:3em !important;display:none}html .form-check.form-switch{font-size:1em;float:left}html .form-check-input:checked{background-color:#4081dc;border-color:#b8ddff}html .row{--bs-gutter-x: 0.5rem}html [class*="col-lg-"],html [class*="col-md-"],html [class*="col-sm-"],html [class*="col-xs-"]{padding:0px 4px !important}html #chirp_button{width:auto;background-color:white;padding:2px 12px;font-size:13px;color:#3181DE;margin:6px 12px 6px 0px;height:25px}html .chatContainer{background-color:white;box-shadow:none}html .offcanvas.offcanvas-bottom{right:auto;left:auto;width:60%;background-color:transparent}html .chatMessage{float:left;text-align:left;margin-bottom:5px;padding:2px 20px;border-radius:5px;clear:both;box-shadow:none}html .chatMessage>p{margin:0.1rem}html .chatTitle{font-size:16px;font-weight:600;margin-bottom:10px;text-align:center}.popover-body{border:1px solid;border-color:var(--bs-border-color-translucent);border-radius:.375rem}.btn-active{background-color:#fff !important;color:#444 !important;border:0px !important} +html #app{min-height:calc(100vh - 48px)}html body{font-size:14px}html body a{color:#0a3c64;text-decoration:none}html .alert{margin-bottom:0 !important}html .content{min-height:800px}html h2{font-size:1.85em}html h3{font-size:1.5em}html h4{font-weight:600;font-size:1.2em}html .control-label{margin-bottom:0px;margin-top:2px}html .tabbable .nav-tabs{padding:0px;margin:5px 0px 20px 0px;border-radius:0px;font-size:18px}html .nav-tabs>li>a{margin:0px 20px 20px 0px;padding:2px 0px;border-radius:0px}html .nav-tabs>li.active{border-top:3px solid #0a3c64;margin-top:-3px}html .box{border-top:0px !important}html #datainfo{background:#fcfcfc;font-size:12px;padding:20px 10px;line-height:1em}html .well{font-size:14px;line-height:1.2em;background:transparent}html .code{color:#1f1f1fFF;background-color:#F9F9F9FF;font-weight:400}html .gene-info{font-size:0.9em;line-height:1.1em}html .bg-cover-image{background-color:#dde6f0;background-color:#fff}html .btn-circle-xs,html .btn-circle-xs:focus{background:#FFFFFF;color:#DDD;text-shadow:0 0 0px #ccc;border:0px;border-radius:3px !important}html .btn-circle-xs:hover{background-color:#fff;color:#444;border:0px;border-radius:3px}html .module-label{color:#AAA;font-family:"Arial";font-size:18px;font-weight:600;padding-right:8px}html .chart-wrapper .chart-notes{font-size:11px;font-weight:400;line-height:1.3em}html .caption{font-size:13px;font-weight:400;line-height:1.1em;margin:6px 4px 3px 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html .caption2{font-size:22px;font-weight:400;line-height:1.1em;padding:2rem 0rem 0rem 0rem}html .current-user{position:fixed;font-weight:200;font-size:11px;color:#fff;color:#000;top:1px;right:20px;z-index:9999}html .current-dataset{position:relative;padding:8px 0vw;font-weight:200;font-size:16px;color:#000;text-align:left}html .current-section{padding:8px 0vw;font-weight:400;font-size:18px;color:#000;text-align:center;min-width:0vw}html .run-button,html .load-button{outline:none;border-color:#1967be;box-shadow:0 0 5px #1967be}html .action-button .fab .fa{font-size:16px;margin-top:0px}html .btn-social-icon{padding:0px;width:28px;height:24px}html #social-buttons{position:fixed;font-weight:300;font-size:30px !important;color:#FFFFFF88;bottom:10px;left:10px;z-index:9999}html .radioGroupButtons{margin-top:-3px;margin-bottom:-3px}html .btn-xl{padding:.3rem 1.5rem;margin:20px;font-size:2.0rem;border-radius:.3rem}html .red-button{color:white;background-color:#e45c00;background-image:none;border:0px;padding:8px 12px}html .red-button:hover,html .red-button:focus,html .red-button:active,html .red-button:active:hover{background-color:#b44c00}html .blue-button{color:white;background-color:#337ab7;border-color:#2e6da4}html .blue-button:hover,html .blue-button:focus,html .blue-button:active,html .blue-button:active:hover{background-color:#286090;border-color:#204d74}html div#navheader-current-section{font-size:30px;font-weight:400;margin:15px 0 5px 0px}html div#navheader-dataset-stats{margin:22px 0px 0px 40px;font-size:24px;color:#3181DE}html div#navheader-current-dataset{margin:35px 10px 0px 0px;font-size:14px;color:black}html .footer{position:absolute;right:0;left:0;bottom:0;padding:3rem 1rem;text-align:center;font-size:0.8em}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;color:#2244AA;background-color:transparent;border-style:none;padding:0}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;background-color:#eee;border-style:none;padding:0}html #emailLinkWrapper{display:none;padding-left:20rem}html .white{color:white}html textarea.form-control{font-size:0.95em;line-height:1.1em}html .form-group{margin-bottom:0.3rem}.tooltip{pointer-events:none}html .big-tab{padding:0px 15px}html .navbar{padding-top:0.3rem;border-bottom:2px solid #004ca7}html .nav-tabs .nav-link{color:#b8b8b8;border-bottom:solid 1px}html #logo-bigomics:hover{cursor:pointer}html .btn.dropdown-toggle::after{content:none}html .nav-link.dropdown-toggle::after{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f078";border-top:none;vertical-align:0}html .sidebar-container{height:calc(100vh - 48px)}html .sidebar-expanded>.sidebar{width:12rem;min-width:12rem;max-height:calc(100vh - 300px);overflow-y:auto}html #sidebar-help-title{padding-top:10rem}html #sidebar-help-container{width:11.5rem;font-size:12px;line-height:1.2em;background:url("assets/img/mascotte-sc.png") no-repeat;background-size:5rem 5rem;background-position:3.5rem 5rem;position:absolute;bottom:10px}html .sidebar-menu{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-item{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-menu-item{font-size:17px;line-height:1.1rem;font-weight:400;color:#333 !important;padding:0 0.4rem 0 0.4rem}html .sidebar-label{font-size:18px}html .text-muted{color:#333 !important}html .active-sidebar{background-color:#EFEFEF}html .tab-sidebar{line-height:1.1rem;padding:0.65rem 0rem 0.65rem 0.7rem}html .settings-container{height:calc(100vh - 48px)}html .settings-expanded{width:12rem;min-width:12rem}html .valuebox-value{font-weight:800;color:white;padding:16px 0 0 0;margin:0 0 0 20px}html .valuebox-label{margin:0 0 0 20px;font-weight:400;color:white;padding-bottom:25px}html #shiny-modal{display:flex !important;margin:auto}html .modal-title{margin-right:auto;margin-left:auto;margin-top:-5px;font-size:1.2em}html .modal-content .well{font-size:1.3em;line-height:1.2em;width:100%}html .modal-dialog{box-shadow:10px 10px 30px #999;display:flex !important;margin:auto}html .modal-dialog.modal-lg{width:600px;justify-content:center;align-items:center}html .modal-dialog.modal-sm{width:300px;justify-content:center;align-items:center}html .modal-footer .btn{margin-left:5px;margin-bottom:0;font-size:14px}html .img-fluid{display:block;margin-right:auto;margin-left:auto}html .modal-content{border:0}html .modal-backdrop{background-color:#000;background-color:#FFF}html .modal-backdrop.show,html .modal-backdrop.in{opacity:0.85}html .bg-cover-image{background-color:#fff}html .swal2-popup{font-size:1rem !important}html .modal-body{height:auto}html .sweet-alert p{color:black}html .tablewidget{padding:5px 15px 25px 15px}html .tablewidget-header{border-bottom:1px solid #ccc;height:24px;margin-bottom:5px}html .table-caption{font-size:13px;font-weight:400;line-height:1.1em;position:relative;padding:5px 0px 10px 0px;bottom:0px}html div.dataTables_wrapper div.dataTables_filter{text-align:left}html .popup-table div.dataTables_wrapper div.dataTables_filter{text-align:left;font-size:18px}html .popup-table div.dataTables_info{font-size:18px}html div.dataTables_wrapper div.dataTables_filter input{width:350px;background-color:#f7fafd}html table.dataTable{border-collapse:collapse !important}html table.dataTable td,html table.dataTable th{border-bottom:solid 1px #aaa !important;vertical-align:middle}html table.dataTable>thead>tr>th{font-size:13px;padding:0px 0px 4px 0px;line-height:1em}html table.dataTable>tbody>tr>td{font-size:13px;padding:5px}html .popup-table table.dataTable>thead>tr>th{font-size:18px}html .popup-table table.dataTable>tbody>tr>td{font-size:16px;padding:7px}html .table.dataTable tbody td.active,html .table.dataTable tbody tr.active td{background-color:#e9ecef;color:black;font-weight:600}html #init-load-data,html #init-upload-data{margin-right:2rem}html #welcome-page{text-align:center;background-color:#f0f9fd;min-height:calc(100vh - 48px)}html #welcome-text{font-size:50px;font-weight:600;color:#2484bb;padding-top:300px;background:url("monster-hi.png") no-repeat;background-size:300px 300px;background-position:53% 0px}html .welcome-btn{padding:10px 26px;margin-top:20px;margin-left:6px;font-size:24px;width:300px;color:black;border-width:2.5px}html #welcome-subtext{padding:0 25%;text-align:center;font-size:1.8em;line-height:1.4em}html #welcome-carousel{margin-top:20px}html .welcome-slide{width:50%;margin-left:auto;margin-right:auto;text-align:center;line-height:1.4em}html .plotmodule{padding:5px 15px 50px 15px}html .plotmodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .plotmodule-title{font-size:16px}html .plotmodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-modal>div{margin-left:auto;margin-right:auto}html .popup-modal .modal-title{font-size:2.5em;margin-right:0}html .popup-modal .modal-footer{display:none}html .popup-plot>div{margin-left:auto;margin-right:auto}html .tablemodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .tablemodule-title{font-size:16px}html .tablemodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-table{width:90%;margin-left:auto;margin-right:auto}html .popup-table>div{margin-left:auto;margin-right:auto}html .popup-table-caption{width:90%;margin-left:auto;margin-right:auto}html ul.nav.navbar-nav>li>a{padding:0px 10px 1px 10px;color:grey;background-color:#e7eaed;border-radius:50px;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li>a:hover ul.nav.navbar-nav>li>a:active{color:black;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li{display:inline-block}html ul.nav.navbar-nav{display:inline-block !important}html #modal-splash{height:32rem;width:100%;background-color:#004ca7;padding:0px !important}html #particles-target{position:absolute;top:0px;width:100%;height:500px}html div#splash-fullscreen{background-color:#2780e3 !important;padding:2rem 2rem}html #splash-logo2{height:3rem}html img#splash-image{max-height:65vh}html #splash-panel{margin-top:65%;text-align:center;max-width:350px}html #splash-panel .card{color:#555;background:white;padding:10px 10px;text-align:center;box-shadow:10px 10px 20px #0002;margin-top:-50%}html #splash-panel .card-title{margin-top:0.5rem;margin-bottom:0.5rem}html #splash-panel .shiny-input-container{width:100%;max-width:100%}html #splash-buttons .btn-xl{padding:5px 20px;font-size:24px;border-radius:8px}html button#auth-emailSubmit{border:1px solid #ccc;padding:5px 40px;margin:0 0 10px 0;width:100%}html .social-button{border:1px solid #fff;padding:8px 10px;border-radius:5px;text-decoration:none !important}html .google-button{background-color:#dd4b39;color:white !important}html .facebook-button{background-color:#4267B2;color:white !important}html .apple-button{background-color:#ccc;color:white !important}html .twitter-button{background-color:#26a7de;color:white !important}html a#auth-launchGoogle{color:white !important;text-decoration:none !important}html a#auth-launchFacebook{color:white !important;text-decoration:none !important}html a#auth-launchApple{color:black !important;text-decoration:none !important}html a#auth-launchTwitter{color:white !important;text-decoration:none !important}html .btn-social{padding:3px !important;background-color:white !important;border-color:white !important;font-size:32px !important;color:steelblue !important}html .progress{border-radius:0px;background-color:#eee;box-shadow:none}html .progress-bar{background-color:#2780e3}html .shiny-notification{border-radius:0px;background-color:#fff}html .spinner-container{position:absolute;z-index:999;top:50%;transform:translateY(-50%);left:-50px}html .spinner-container .spinner-text{display:none;position:absolute;top:calc(50% + 30px);left:calc(50% + 1.5rem);transform:translate(-50%, -50%);white-space:nowrap;z-index:1}html #spinner-container:hover .spinner-text{display:block}.dropdown-menu{margin:5px 1px !important}.dropdown-menu.show{font-size:0.95em}.dropdown-menu .form-group{margin-bottom:0rem}.shiny-download-link{background-color:white;border-color:lightgrey}html .card{--bs-card-spacer-y: 0.6rem !important}html .caption{margin:4px}html .caption:hover{overflow:auto}html .card-footer{background-color:#F7FAFD;padding:2px 0 0 2px;height:3em !important;max-height:3em !important;min-height:3em !important;display:none}html .form-check.form-switch{font-size:1em;float:left}html .form-check-input:checked{background-color:#4081dc;border-color:#b8ddff}html .row{--bs-gutter-x: 0.5rem}html [class*="col-lg-"],html [class*="col-md-"],html [class*="col-sm-"],html [class*="col-xs-"]{padding:0px 4px !important}html #chirp_button{width:auto;background-color:white;padding:2px 12px;font-size:13px;color:#3181DE;margin:6px 12px 6px 0px;height:25px}html .chatContainer{background-color:white;box-shadow:none}html .offcanvas.offcanvas-bottom{right:auto;left:auto;width:60%;background-color:transparent}html .chatMessage{float:left;text-align:left;margin-bottom:5px;padding:2px 20px;border-radius:5px;clear:both;box-shadow:none}html .chatMessage>p{margin:0.1rem}html .chatTitle{font-size:16px;font-weight:600;margin-bottom:10px;text-align:center}.popover-body{border:1px solid;border-color:var(--bs-border-color-translucent);border-radius:.375rem}.btn-active{background-color:#fff !important;color:#444 !important;border:0px !important} diff --git a/scss/components/_table.scss b/scss/components/_table.scss index c226523e4..61a84dbfd 100644 --- a/scss/components/_table.scss +++ b/scss/components/_table.scss @@ -64,6 +64,7 @@ html { table.dataTable td, table.dataTable th { border-bottom: solid 1px #aaa !important; + vertical-align: middle; // border-style: none !important; } From d31bd525e3917aa4f4cc2ef1fdf9b4688dd3be8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Thu, 24 Aug 2023 23:30:51 +0200 Subject: [PATCH 2/8] feat: links as rowname icon also pass `csvFunc` so that the HTML icon with href is not downloaded --- .../board.expression/R/expression_table_gsettable.R | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/components/board.expression/R/expression_table_gsettable.R b/components/board.expression/R/expression_table_gsettable.R index cb79428e9..bb6733c37 100644 --- a/components/board.expression/R/expression_table_gsettable.R +++ b/components/board.expression/R/expression_table_gsettable.R @@ -13,7 +13,7 @@ #' @export expression_table_gsettable_ui <- function( id, - title, + title, caption, info.text, width, @@ -55,11 +55,14 @@ expression_table_gsettable_server <- function(id, "Please select a gene in the table." )) - df$geneset <- playbase::wrapHyperLink(df$geneset, rownames(df)) - + external_links <- playbase::wrapHyperLink( + rep_len("", nrow(df)), + rownames(df) + ) DT::datatable(df, # class = "compact", ## not good! - rownames = FALSE, escape = c(-1, -2), + rownames = external_links, + escape = c(-1, -2), extensions = c("Scroller"), plugins = "scrollResize", fillContainer = TRUE, @@ -91,6 +94,7 @@ expression_table_gsettable_server <- function(id, "datasets", func = gsettable.RENDER, func2 = gsettable.RENDER_modal, + csvFunc = gx_related_genesets, selector = "single" ) From 7c1fad4af7af44c33f58f715bf7d0b4e955808b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Thu, 24 Aug 2023 23:55:07 +0200 Subject: [PATCH 3/8] feat: plots with `wrapHyperLink` icons to have same feeling --- .../board.clustering/R/clustering_table_clustannot.R | 10 ++++++++-- .../R/enrichment_table_enrichment_analysis.R | 7 +++++-- .../R/enrichment_table_gset_enrich_all_contrasts.R | 7 +++++-- components/board.pathway/R/functional_table_go_table.R | 7 +++++-- components/board.signature/R/signature_table_overlap.R | 9 ++++++--- .../board.wordcloud/R/wordcloud_table_leading_edge.R | 8 ++++++-- 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/components/board.clustering/R/clustering_table_clustannot.R b/components/board.clustering/R/clustering_table_clustannot.R index 2c27770fa..0233b7375 100644 --- a/components/board.clustering/R/clustering_table_clustannot.R +++ b/components/board.clustering/R/clustering_table_clustannot.R @@ -59,12 +59,18 @@ clustering_table_clustannot_server <- function( df <- data.frame(feature = rho.name, round(as.matrix(rho), digits = 3)) rownames(df) <- rownames(rho) if (xann_level == "geneset") { - df$feature <- playbase::wrapHyperLink(df$feature, rownames(df)) + feature_link <- playbase::wrapHyperLink( + rep_len("", nrow(df)), + rownames(df) + ) + } else { + feature_link <- FALSE } DT::datatable( df, - rownames = FALSE, escape = c(-1, -2), + rownames = feature_link, + escape = c(-1, -2), extensions = c("Buttons", "Scroller"), plugins = "scrollResize", selection = list(mode = "single", target = "row", selected = c(1)), diff --git a/components/board.enrichment/R/enrichment_table_enrichment_analysis.R b/components/board.enrichment/R/enrichment_table_enrichment_analysis.R index ff8091a23..2a09ace30 100644 --- a/components/board.enrichment/R/enrichment_table_enrichment_analysis.R +++ b/components/board.enrichment/R/enrichment_table_enrichment_analysis.R @@ -68,7 +68,10 @@ enrichment_table_enrichment_analysis_server <- function(id, } ## wrap genesets names with known links. - rpt$GS <- playbase::wrapHyperLink(rpt$GS, rownames(rpt)) + GS_link <- playbase::wrapHyperLink( + rep_len("", nrow(rpt)), + rownames(rpt) + ) selectmode <- "single" is.numcol <- sapply(rpt, is.numeric) @@ -79,7 +82,7 @@ enrichment_table_enrichment_analysis_server <- function(id, DT::datatable(rpt, class = "compact cell-border stripe hover", - rownames = FALSE, + rownames = GS_link, escape = c(-1, -5), extensions = c("Scroller"), plugins = "scrollResize", diff --git a/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R b/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R index 5e252b0f8..3724dc147 100644 --- a/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R +++ b/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R @@ -99,11 +99,14 @@ enrichment_table_gset_enrich_all_contrasts_server <- function(id, F <- td$F ## wrap with hyperlink - df$geneset <- playbase::wrapHyperLink(df$geneset, rownames(df)) + geneset_link <- playbase::wrapHyperLink( + rep_len("", nrow(df)), + rownames(df) + ) dt <- DT::datatable( df, - rownames = FALSE, + rownames = geneset_link, escape = -1, class = "compact cell-border stripe hover", extensions = c("Scroller"), diff --git a/components/board.pathway/R/functional_table_go_table.R b/components/board.pathway/R/functional_table_go_table.R index 0436b1a97..c07b020e4 100644 --- a/components/board.pathway/R/functional_table_go_table.R +++ b/components/board.pathway/R/functional_table_go_table.R @@ -79,12 +79,15 @@ functional_table_go_table_server <- function(id, dt1 <- round(cbind(score = scores, logFC = fx, meta.q = qv), digits = 4) dt <- data.frame(id = names(scores), term = go.term1, dt1, stringsAsFactors = FALSE) id2 <- paste0("abc(", sub(":", "_", dt$id), ")") ## to match with wrapHyperLink - dt$id <- playbase::wrapHyperLink(as.character(dt$id), id2) ## add link + id_link <- playbase::wrapHyperLink( + rep_len("", nrow(dt)), + id2 + ) ## add link numeric.cols <- colnames(dt)[which(sapply(dt, is.numeric))] DT::datatable(dt, - rownames = FALSE, + rownames = id_link, escape = c(-1, -2), # extensions = c("Scroller"), diff --git a/components/board.signature/R/signature_table_overlap.R b/components/board.signature/R/signature_table_overlap.R index 7ed6f5667..516cc57df 100644 --- a/components/board.signature/R/signature_table_overlap.R +++ b/components/board.signature/R/signature_table_overlap.R @@ -32,14 +32,17 @@ signature_table_overlap_server <- function(id, df <- getOverlapTable() shiny::req(df) - df$geneset <- playbase::wrapHyperLink(df$geneset, df$geneset) + geneset_link <- playbase::wrapHyperLink( + rep_len("", nrow(df)), + df$geneset + ) numeric.cols <- which(sapply(df, is.numeric)) numeric.cols <- intersect(c("p.fisher", "q.fisher"), colnames(df)) DT::datatable(df, - # - rownames = FALSE, escape = c(-1, -2), + rownames = geneset_link, + escape = c(-1, -2), extensions = c("Scroller"), plugins = "scrollResize", selection = "none", diff --git a/components/board.wordcloud/R/wordcloud_table_leading_edge.R b/components/board.wordcloud/R/wordcloud_table_leading_edge.R index e5d57ed67..a19113cc4 100644 --- a/components/board.wordcloud/R/wordcloud_table_leading_edge.R +++ b/components/board.wordcloud/R/wordcloud_table_leading_edge.R @@ -46,10 +46,14 @@ wordcloud_table_leading_edge_server <- function(id, rownames(df) <- ee numeric.cols <- colnames(df)[which(sapply(df, is.numeric))] - df$leading.edge <- playbase::wrapHyperLink(df$leading.edge, df$leading.edge) ## add link + leading.edge_link <- playbase::wrapHyperLink( + rep_len("", nrow(df)), + df$leading.edge + ) ## add link tbl <- DT::datatable(df, - rownames = FALSE, escape = c(-1, -2), + rownames = leading.edge_link, + escape = c(-1, -2), class = "compact cell-border stripe hover", extensions = c("Scroller"), plugins = "scrollResize", From f448eb88d19cb06f71c23ba0a8dbca8032aaaa61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Fri, 25 Aug 2023 01:09:34 +0200 Subject: [PATCH 4/8] style: handle no link icons --- components/app/R/www/styles.min.css | 2 +- .../board.clustering/R/clustering_table_clustannot.R | 3 +++ .../R/enrichment_table_enrichment_analysis.R | 3 +++ .../R/enrichment_table_gset_enrich_all_contrasts.R | 4 ++++ .../board.expression/R/expression_table_gsettable.R | 3 +++ components/board.pathway/R/functional_table_go_table.R | 7 +++++-- components/board.signature/R/signature_table_overlap.R | 3 +++ .../board.wordcloud/R/wordcloud_table_leading_edge.R | 5 ++++- components/ui/ui-utils.R | 7 +++++++ scss/components/_table.scss | 10 ++++++++++ 10 files changed, 43 insertions(+), 4 deletions(-) diff --git a/components/app/R/www/styles.min.css b/components/app/R/www/styles.min.css index 2f9df726b..75917eff6 100644 --- a/components/app/R/www/styles.min.css +++ b/components/app/R/www/styles.min.css @@ -1 +1 @@ -html #app{min-height:calc(100vh - 48px)}html body{font-size:14px}html body a{color:#0a3c64;text-decoration:none}html .alert{margin-bottom:0 !important}html .content{min-height:800px}html h2{font-size:1.85em}html h3{font-size:1.5em}html h4{font-weight:600;font-size:1.2em}html .control-label{margin-bottom:0px;margin-top:2px}html .tabbable .nav-tabs{padding:0px;margin:5px 0px 20px 0px;border-radius:0px;font-size:18px}html .nav-tabs>li>a{margin:0px 20px 20px 0px;padding:2px 0px;border-radius:0px}html .nav-tabs>li.active{border-top:3px solid #0a3c64;margin-top:-3px}html .box{border-top:0px !important}html #datainfo{background:#fcfcfc;font-size:12px;padding:20px 10px;line-height:1em}html .well{font-size:14px;line-height:1.2em;background:transparent}html .code{color:#1f1f1fFF;background-color:#F9F9F9FF;font-weight:400}html .gene-info{font-size:0.9em;line-height:1.1em}html .bg-cover-image{background-color:#dde6f0;background-color:#fff}html .btn-circle-xs,html .btn-circle-xs:focus{background:#FFFFFF;color:#DDD;text-shadow:0 0 0px #ccc;border:0px;border-radius:3px !important}html .btn-circle-xs:hover{background-color:#fff;color:#444;border:0px;border-radius:3px}html .module-label{color:#AAA;font-family:"Arial";font-size:18px;font-weight:600;padding-right:8px}html .chart-wrapper .chart-notes{font-size:11px;font-weight:400;line-height:1.3em}html .caption{font-size:13px;font-weight:400;line-height:1.1em;margin:6px 4px 3px 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html .caption2{font-size:22px;font-weight:400;line-height:1.1em;padding:2rem 0rem 0rem 0rem}html .current-user{position:fixed;font-weight:200;font-size:11px;color:#fff;color:#000;top:1px;right:20px;z-index:9999}html .current-dataset{position:relative;padding:8px 0vw;font-weight:200;font-size:16px;color:#000;text-align:left}html .current-section{padding:8px 0vw;font-weight:400;font-size:18px;color:#000;text-align:center;min-width:0vw}html .run-button,html .load-button{outline:none;border-color:#1967be;box-shadow:0 0 5px #1967be}html .action-button .fab .fa{font-size:16px;margin-top:0px}html .btn-social-icon{padding:0px;width:28px;height:24px}html #social-buttons{position:fixed;font-weight:300;font-size:30px !important;color:#FFFFFF88;bottom:10px;left:10px;z-index:9999}html .radioGroupButtons{margin-top:-3px;margin-bottom:-3px}html .btn-xl{padding:.3rem 1.5rem;margin:20px;font-size:2.0rem;border-radius:.3rem}html .red-button{color:white;background-color:#e45c00;background-image:none;border:0px;padding:8px 12px}html .red-button:hover,html .red-button:focus,html .red-button:active,html .red-button:active:hover{background-color:#b44c00}html .blue-button{color:white;background-color:#337ab7;border-color:#2e6da4}html .blue-button:hover,html .blue-button:focus,html .blue-button:active,html .blue-button:active:hover{background-color:#286090;border-color:#204d74}html div#navheader-current-section{font-size:30px;font-weight:400;margin:15px 0 5px 0px}html div#navheader-dataset-stats{margin:22px 0px 0px 40px;font-size:24px;color:#3181DE}html div#navheader-current-dataset{margin:35px 10px 0px 0px;font-size:14px;color:black}html .footer{position:absolute;right:0;left:0;bottom:0;padding:3rem 1rem;text-align:center;font-size:0.8em}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;color:#2244AA;background-color:transparent;border-style:none;padding:0}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;background-color:#eee;border-style:none;padding:0}html #emailLinkWrapper{display:none;padding-left:20rem}html .white{color:white}html textarea.form-control{font-size:0.95em;line-height:1.1em}html .form-group{margin-bottom:0.3rem}.tooltip{pointer-events:none}html .big-tab{padding:0px 15px}html .navbar{padding-top:0.3rem;border-bottom:2px solid #004ca7}html .nav-tabs .nav-link{color:#b8b8b8;border-bottom:solid 1px}html #logo-bigomics:hover{cursor:pointer}html .btn.dropdown-toggle::after{content:none}html .nav-link.dropdown-toggle::after{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f078";border-top:none;vertical-align:0}html .sidebar-container{height:calc(100vh - 48px)}html .sidebar-expanded>.sidebar{width:12rem;min-width:12rem;max-height:calc(100vh - 300px);overflow-y:auto}html #sidebar-help-title{padding-top:10rem}html #sidebar-help-container{width:11.5rem;font-size:12px;line-height:1.2em;background:url("assets/img/mascotte-sc.png") no-repeat;background-size:5rem 5rem;background-position:3.5rem 5rem;position:absolute;bottom:10px}html .sidebar-menu{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-item{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-menu-item{font-size:17px;line-height:1.1rem;font-weight:400;color:#333 !important;padding:0 0.4rem 0 0.4rem}html .sidebar-label{font-size:18px}html .text-muted{color:#333 !important}html .active-sidebar{background-color:#EFEFEF}html .tab-sidebar{line-height:1.1rem;padding:0.65rem 0rem 0.65rem 0.7rem}html .settings-container{height:calc(100vh - 48px)}html .settings-expanded{width:12rem;min-width:12rem}html .valuebox-value{font-weight:800;color:white;padding:16px 0 0 0;margin:0 0 0 20px}html .valuebox-label{margin:0 0 0 20px;font-weight:400;color:white;padding-bottom:25px}html #shiny-modal{display:flex !important;margin:auto}html .modal-title{margin-right:auto;margin-left:auto;margin-top:-5px;font-size:1.2em}html .modal-content .well{font-size:1.3em;line-height:1.2em;width:100%}html .modal-dialog{box-shadow:10px 10px 30px #999;display:flex !important;margin:auto}html .modal-dialog.modal-lg{width:600px;justify-content:center;align-items:center}html .modal-dialog.modal-sm{width:300px;justify-content:center;align-items:center}html .modal-footer .btn{margin-left:5px;margin-bottom:0;font-size:14px}html .img-fluid{display:block;margin-right:auto;margin-left:auto}html .modal-content{border:0}html .modal-backdrop{background-color:#000;background-color:#FFF}html .modal-backdrop.show,html .modal-backdrop.in{opacity:0.85}html .bg-cover-image{background-color:#fff}html .swal2-popup{font-size:1rem !important}html .modal-body{height:auto}html .sweet-alert p{color:black}html .tablewidget{padding:5px 15px 25px 15px}html .tablewidget-header{border-bottom:1px solid #ccc;height:24px;margin-bottom:5px}html .table-caption{font-size:13px;font-weight:400;line-height:1.1em;position:relative;padding:5px 0px 10px 0px;bottom:0px}html div.dataTables_wrapper div.dataTables_filter{text-align:left}html .popup-table div.dataTables_wrapper div.dataTables_filter{text-align:left;font-size:18px}html .popup-table div.dataTables_info{font-size:18px}html div.dataTables_wrapper div.dataTables_filter input{width:350px;background-color:#f7fafd}html table.dataTable{border-collapse:collapse !important}html table.dataTable td,html table.dataTable th{border-bottom:solid 1px #aaa !important;vertical-align:middle}html table.dataTable>thead>tr>th{font-size:13px;padding:0px 0px 4px 0px;line-height:1em}html table.dataTable>tbody>tr>td{font-size:13px;padding:5px}html .popup-table table.dataTable>thead>tr>th{font-size:18px}html .popup-table table.dataTable>tbody>tr>td{font-size:16px;padding:7px}html .table.dataTable tbody td.active,html .table.dataTable tbody tr.active td{background-color:#e9ecef;color:black;font-weight:600}html #init-load-data,html #init-upload-data{margin-right:2rem}html #welcome-page{text-align:center;background-color:#f0f9fd;min-height:calc(100vh - 48px)}html #welcome-text{font-size:50px;font-weight:600;color:#2484bb;padding-top:300px;background:url("monster-hi.png") no-repeat;background-size:300px 300px;background-position:53% 0px}html .welcome-btn{padding:10px 26px;margin-top:20px;margin-left:6px;font-size:24px;width:300px;color:black;border-width:2.5px}html #welcome-subtext{padding:0 25%;text-align:center;font-size:1.8em;line-height:1.4em}html #welcome-carousel{margin-top:20px}html .welcome-slide{width:50%;margin-left:auto;margin-right:auto;text-align:center;line-height:1.4em}html .plotmodule{padding:5px 15px 50px 15px}html .plotmodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .plotmodule-title{font-size:16px}html .plotmodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-modal>div{margin-left:auto;margin-right:auto}html .popup-modal .modal-title{font-size:2.5em;margin-right:0}html .popup-modal .modal-footer{display:none}html .popup-plot>div{margin-left:auto;margin-right:auto}html .tablemodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .tablemodule-title{font-size:16px}html .tablemodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-table{width:90%;margin-left:auto;margin-right:auto}html .popup-table>div{margin-left:auto;margin-right:auto}html .popup-table-caption{width:90%;margin-left:auto;margin-right:auto}html ul.nav.navbar-nav>li>a{padding:0px 10px 1px 10px;color:grey;background-color:#e7eaed;border-radius:50px;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li>a:hover ul.nav.navbar-nav>li>a:active{color:black;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li{display:inline-block}html ul.nav.navbar-nav{display:inline-block !important}html #modal-splash{height:32rem;width:100%;background-color:#004ca7;padding:0px !important}html #particles-target{position:absolute;top:0px;width:100%;height:500px}html div#splash-fullscreen{background-color:#2780e3 !important;padding:2rem 2rem}html #splash-logo2{height:3rem}html img#splash-image{max-height:65vh}html #splash-panel{margin-top:65%;text-align:center;max-width:350px}html #splash-panel .card{color:#555;background:white;padding:10px 10px;text-align:center;box-shadow:10px 10px 20px #0002;margin-top:-50%}html #splash-panel .card-title{margin-top:0.5rem;margin-bottom:0.5rem}html #splash-panel .shiny-input-container{width:100%;max-width:100%}html #splash-buttons .btn-xl{padding:5px 20px;font-size:24px;border-radius:8px}html button#auth-emailSubmit{border:1px solid #ccc;padding:5px 40px;margin:0 0 10px 0;width:100%}html .social-button{border:1px solid #fff;padding:8px 10px;border-radius:5px;text-decoration:none !important}html .google-button{background-color:#dd4b39;color:white !important}html .facebook-button{background-color:#4267B2;color:white !important}html .apple-button{background-color:#ccc;color:white !important}html .twitter-button{background-color:#26a7de;color:white !important}html a#auth-launchGoogle{color:white !important;text-decoration:none !important}html a#auth-launchFacebook{color:white !important;text-decoration:none !important}html a#auth-launchApple{color:black !important;text-decoration:none !important}html a#auth-launchTwitter{color:white !important;text-decoration:none !important}html .btn-social{padding:3px !important;background-color:white !important;border-color:white !important;font-size:32px !important;color:steelblue !important}html .progress{border-radius:0px;background-color:#eee;box-shadow:none}html .progress-bar{background-color:#2780e3}html .shiny-notification{border-radius:0px;background-color:#fff}html .spinner-container{position:absolute;z-index:999;top:50%;transform:translateY(-50%);left:-50px}html .spinner-container .spinner-text{display:none;position:absolute;top:calc(50% + 30px);left:calc(50% + 1.5rem);transform:translate(-50%, -50%);white-space:nowrap;z-index:1}html #spinner-container:hover .spinner-text{display:block}.dropdown-menu{margin:5px 1px !important}.dropdown-menu.show{font-size:0.95em}.dropdown-menu .form-group{margin-bottom:0rem}.shiny-download-link{background-color:white;border-color:lightgrey}html .card{--bs-card-spacer-y: 0.6rem !important}html .caption{margin:4px}html .caption:hover{overflow:auto}html .card-footer{background-color:#F7FAFD;padding:2px 0 0 2px;height:3em !important;max-height:3em !important;min-height:3em !important;display:none}html .form-check.form-switch{font-size:1em;float:left}html .form-check-input:checked{background-color:#4081dc;border-color:#b8ddff}html .row{--bs-gutter-x: 0.5rem}html [class*="col-lg-"],html [class*="col-md-"],html [class*="col-sm-"],html [class*="col-xs-"]{padding:0px 4px !important}html #chirp_button{width:auto;background-color:white;padding:2px 12px;font-size:13px;color:#3181DE;margin:6px 12px 6px 0px;height:25px}html .chatContainer{background-color:white;box-shadow:none}html .offcanvas.offcanvas-bottom{right:auto;left:auto;width:60%;background-color:transparent}html .chatMessage{float:left;text-align:left;margin-bottom:5px;padding:2px 20px;border-radius:5px;clear:both;box-shadow:none}html .chatMessage>p{margin:0.1rem}html .chatTitle{font-size:16px;font-weight:600;margin-bottom:10px;text-align:center}.popover-body{border:1px solid;border-color:var(--bs-border-color-translucent);border-radius:.375rem}.btn-active{background-color:#fff !important;color:#444 !important;border:0px !important} +html #app{min-height:calc(100vh - 48px)}html body{font-size:14px}html body a{color:#0a3c64;text-decoration:none}html .alert{margin-bottom:0 !important}html .content{min-height:800px}html h2{font-size:1.85em}html h3{font-size:1.5em}html h4{font-weight:600;font-size:1.2em}html .control-label{margin-bottom:0px;margin-top:2px}html .tabbable .nav-tabs{padding:0px;margin:5px 0px 20px 0px;border-radius:0px;font-size:18px}html .nav-tabs>li>a{margin:0px 20px 20px 0px;padding:2px 0px;border-radius:0px}html .nav-tabs>li.active{border-top:3px solid #0a3c64;margin-top:-3px}html .box{border-top:0px !important}html #datainfo{background:#fcfcfc;font-size:12px;padding:20px 10px;line-height:1em}html .well{font-size:14px;line-height:1.2em;background:transparent}html .code{color:#1f1f1fFF;background-color:#F9F9F9FF;font-weight:400}html .gene-info{font-size:0.9em;line-height:1.1em}html .bg-cover-image{background-color:#dde6f0;background-color:#fff}html .btn-circle-xs,html .btn-circle-xs:focus{background:#FFFFFF;color:#DDD;text-shadow:0 0 0px #ccc;border:0px;border-radius:3px !important}html .btn-circle-xs:hover{background-color:#fff;color:#444;border:0px;border-radius:3px}html .module-label{color:#AAA;font-family:"Arial";font-size:18px;font-weight:600;padding-right:8px}html .chart-wrapper .chart-notes{font-size:11px;font-weight:400;line-height:1.3em}html .caption{font-size:13px;font-weight:400;line-height:1.1em;margin:6px 4px 3px 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html .caption2{font-size:22px;font-weight:400;line-height:1.1em;padding:2rem 0rem 0rem 0rem}html .current-user{position:fixed;font-weight:200;font-size:11px;color:#fff;color:#000;top:1px;right:20px;z-index:9999}html .current-dataset{position:relative;padding:8px 0vw;font-weight:200;font-size:16px;color:#000;text-align:left}html .current-section{padding:8px 0vw;font-weight:400;font-size:18px;color:#000;text-align:center;min-width:0vw}html .run-button,html .load-button{outline:none;border-color:#1967be;box-shadow:0 0 5px #1967be}html .action-button .fab .fa{font-size:16px;margin-top:0px}html .btn-social-icon{padding:0px;width:28px;height:24px}html #social-buttons{position:fixed;font-weight:300;font-size:30px !important;color:#FFFFFF88;bottom:10px;left:10px;z-index:9999}html .radioGroupButtons{margin-top:-3px;margin-bottom:-3px}html .btn-xl{padding:.3rem 1.5rem;margin:20px;font-size:2.0rem;border-radius:.3rem}html .red-button{color:white;background-color:#e45c00;background-image:none;border:0px;padding:8px 12px}html .red-button:hover,html .red-button:focus,html .red-button:active,html .red-button:active:hover{background-color:#b44c00}html .blue-button{color:white;background-color:#337ab7;border-color:#2e6da4}html .blue-button:hover,html .blue-button:focus,html .blue-button:active,html .blue-button:active:hover{background-color:#286090;border-color:#204d74}html div#navheader-current-section{font-size:30px;font-weight:400;margin:15px 0 5px 0px}html div#navheader-dataset-stats{margin:22px 0px 0px 40px;font-size:24px;color:#3181DE}html div#navheader-current-dataset{margin:35px 10px 0px 0px;font-size:14px;color:black}html .footer{position:absolute;right:0;left:0;bottom:0;padding:3rem 1rem;text-align:center;font-size:0.8em}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;color:#2244AA;background-color:transparent;border-style:none;padding:0}html .action-text #sig_example1 #sig_example2 #sig_example3{font-size:0.9em;background-color:#eee;border-style:none;padding:0}html #emailLinkWrapper{display:none;padding-left:20rem}html .white{color:white}html textarea.form-control{font-size:0.95em;line-height:1.1em}html .form-group{margin-bottom:0.3rem}.tooltip{pointer-events:none}html .big-tab{padding:0px 15px}html .navbar{padding-top:0.3rem;border-bottom:2px solid #004ca7}html .nav-tabs .nav-link{color:#b8b8b8;border-bottom:solid 1px}html #logo-bigomics:hover{cursor:pointer}html .btn.dropdown-toggle::after{content:none}html .nav-link.dropdown-toggle::after{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f078";border-top:none;vertical-align:0}html .sidebar-container{height:calc(100vh - 48px)}html .sidebar-expanded>.sidebar{width:12rem;min-width:12rem;max-height:calc(100vh - 300px);overflow-y:auto}html #sidebar-help-title{padding-top:10rem}html #sidebar-help-container{width:11.5rem;font-size:12px;line-height:1.2em;background:url("assets/img/mascotte-sc.png") no-repeat;background-size:5rem 5rem;background-position:3.5rem 5rem;position:absolute;bottom:10px}html .sidebar-menu{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-item{font-size:18px;font-weight:bold;color:#333 !important}html .sidebar-menu-item{font-size:17px;line-height:1.1rem;font-weight:400;color:#333 !important;padding:0 0.4rem 0 0.4rem}html .sidebar-label{font-size:18px}html .text-muted{color:#333 !important}html .active-sidebar{background-color:#EFEFEF}html .tab-sidebar{line-height:1.1rem;padding:0.65rem 0rem 0.65rem 0.7rem}html .settings-container{height:calc(100vh - 48px)}html .settings-expanded{width:12rem;min-width:12rem}html .valuebox-value{font-weight:800;color:white;padding:16px 0 0 0;margin:0 0 0 20px}html .valuebox-label{margin:0 0 0 20px;font-weight:400;color:white;padding-bottom:25px}html #shiny-modal{display:flex !important;margin:auto}html .modal-title{margin-right:auto;margin-left:auto;margin-top:-5px;font-size:1.2em}html .modal-content .well{font-size:1.3em;line-height:1.2em;width:100%}html .modal-dialog{box-shadow:10px 10px 30px #999;display:flex !important;margin:auto}html .modal-dialog.modal-lg{width:600px;justify-content:center;align-items:center}html .modal-dialog.modal-sm{width:300px;justify-content:center;align-items:center}html .modal-footer .btn{margin-left:5px;margin-bottom:0;font-size:14px}html .img-fluid{display:block;margin-right:auto;margin-left:auto}html .modal-content{border:0}html .modal-backdrop{background-color:#000;background-color:#FFF}html .modal-backdrop.show,html .modal-backdrop.in{opacity:0.85}html .bg-cover-image{background-color:#fff}html .swal2-popup{font-size:1rem !important}html .modal-body{height:auto}html .sweet-alert p{color:black}html .tablewidget{padding:5px 15px 25px 15px}html .tablewidget-header{border-bottom:1px solid #ccc;height:24px;margin-bottom:5px}html .table-caption{font-size:13px;font-weight:400;line-height:1.1em;position:relative;padding:5px 0px 10px 0px;bottom:0px}html div.dataTables_wrapper div.dataTables_filter{text-align:left}html .popup-table div.dataTables_wrapper div.dataTables_filter{text-align:left;font-size:18px}html .popup-table div.dataTables_info{font-size:18px}html div.dataTables_wrapper div.dataTables_filter input{width:350px;background-color:#f7fafd}html table.dataTable{border-collapse:collapse !important}html table.dataTable td,html table.dataTable th{border-bottom:solid 1px #aaa !important;vertical-align:middle}html table.dataTable>thead>tr>th{font-size:13px;padding:0px 0px 4px 0px;line-height:1em}html table.dataTable>tbody>tr>td{font-size:13px;padding:5px}html .popup-table table.dataTable>thead>tr>th{font-size:18px}html .popup-table table.dataTable>tbody>tr>td{font-size:16px;padding:7px}html .table.dataTable tbody td.active,html .table.dataTable tbody tr.active td{background-color:#e9ecef;color:black;font-weight:600}html .icon_container{position:relative}html .icon_nested{position:absolute;left:5px;color:#d9534f}html #init-load-data,html #init-upload-data{margin-right:2rem}html #welcome-page{text-align:center;background-color:#f0f9fd;min-height:calc(100vh - 48px)}html #welcome-text{font-size:50px;font-weight:600;color:#2484bb;padding-top:300px;background:url("monster-hi.png") no-repeat;background-size:300px 300px;background-position:53% 0px}html .welcome-btn{padding:10px 26px;margin-top:20px;margin-left:6px;font-size:24px;width:300px;color:black;border-width:2.5px}html #welcome-subtext{padding:0 25%;text-align:center;font-size:1.8em;line-height:1.4em}html #welcome-carousel{margin-top:20px}html .welcome-slide{width:50%;margin-left:auto;margin-right:auto;text-align:center;line-height:1.4em}html .plotmodule{padding:5px 15px 50px 15px}html .plotmodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .plotmodule-title{font-size:16px}html .plotmodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-modal>div{margin-left:auto;margin-right:auto}html .popup-modal .modal-title{font-size:2.5em;margin-right:0}html .popup-modal .modal-footer{display:none}html .popup-plot>div{margin-left:auto;margin-right:auto}html .tablemodule-header{padding:6px 9px 5px 9px;border-bottom:1px solid #ccc}html .tablemodule-title{font-size:16px}html .tablemodule-info{padding:5px;font-size:15px;line-height:1.2em}html .popup-table{width:90%;margin-left:auto;margin-right:auto}html .popup-table>div{margin-left:auto;margin-right:auto}html .popup-table-caption{width:90%;margin-left:auto;margin-right:auto}html ul.nav.navbar-nav>li>a{padding:0px 10px 1px 10px;color:grey;background-color:#e7eaed;border-radius:50px;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li>a:hover ul.nav.navbar-nav>li>a:active{color:black;font-size:calc(100% - 20%)}html ul.nav.navbar-nav>li{display:inline-block}html ul.nav.navbar-nav{display:inline-block !important}html #modal-splash{height:32rem;width:100%;background-color:#004ca7;padding:0px !important}html #particles-target{position:absolute;top:0px;width:100%;height:500px}html div#splash-fullscreen{background-color:#2780e3 !important;padding:2rem 2rem}html #splash-logo2{height:3rem}html img#splash-image{max-height:65vh}html #splash-panel{margin-top:65%;text-align:center;max-width:350px}html #splash-panel .card{color:#555;background:white;padding:10px 10px;text-align:center;box-shadow:10px 10px 20px #0002;margin-top:-50%}html #splash-panel .card-title{margin-top:0.5rem;margin-bottom:0.5rem}html #splash-panel .shiny-input-container{width:100%;max-width:100%}html #splash-buttons .btn-xl{padding:5px 20px;font-size:24px;border-radius:8px}html button#auth-emailSubmit{border:1px solid #ccc;padding:5px 40px;margin:0 0 10px 0;width:100%}html .social-button{border:1px solid #fff;padding:8px 10px;border-radius:5px;text-decoration:none !important}html .google-button{background-color:#dd4b39;color:white !important}html .facebook-button{background-color:#4267B2;color:white !important}html .apple-button{background-color:#ccc;color:white !important}html .twitter-button{background-color:#26a7de;color:white !important}html a#auth-launchGoogle{color:white !important;text-decoration:none !important}html a#auth-launchFacebook{color:white !important;text-decoration:none !important}html a#auth-launchApple{color:black !important;text-decoration:none !important}html a#auth-launchTwitter{color:white !important;text-decoration:none !important}html .btn-social{padding:3px !important;background-color:white !important;border-color:white !important;font-size:32px !important;color:steelblue !important}html .progress{border-radius:0px;background-color:#eee;box-shadow:none}html .progress-bar{background-color:#2780e3}html .shiny-notification{border-radius:0px;background-color:#fff}html .spinner-container{position:absolute;z-index:999;top:50%;transform:translateY(-50%);left:-50px}html .spinner-container .spinner-text{display:none;position:absolute;top:calc(50% + 30px);left:calc(50% + 1.5rem);transform:translate(-50%, -50%);white-space:nowrap;z-index:1}html #spinner-container:hover .spinner-text{display:block}.dropdown-menu{margin:5px 1px !important}.dropdown-menu.show{font-size:0.95em}.dropdown-menu .form-group{margin-bottom:0rem}.shiny-download-link{background-color:white;border-color:lightgrey}html .card{--bs-card-spacer-y: 0.6rem !important}html .caption{margin:4px}html .caption:hover{overflow:auto}html .card-footer{background-color:#F7FAFD;padding:2px 0 0 2px;height:3em !important;max-height:3em !important;min-height:3em !important;display:none}html .form-check.form-switch{font-size:1em;float:left}html .form-check-input:checked{background-color:#4081dc;border-color:#b8ddff}html .row{--bs-gutter-x: 0.5rem}html [class*="col-lg-"],html [class*="col-md-"],html [class*="col-sm-"],html [class*="col-xs-"]{padding:0px 4px !important}html #chirp_button{width:auto;background-color:white;padding:2px 12px;font-size:13px;color:#3181DE;margin:6px 12px 6px 0px;height:25px}html .chatContainer{background-color:white;box-shadow:none}html .offcanvas.offcanvas-bottom{right:auto;left:auto;width:60%;background-color:transparent}html .chatMessage{float:left;text-align:left;margin-bottom:5px;padding:2px 20px;border-radius:5px;clear:both;box-shadow:none}html .chatMessage>p{margin:0.1rem}html .chatTitle{font-size:16px;font-weight:600;margin-bottom:10px;text-align:center}.popover-body{border:1px solid;border-color:var(--bs-border-color-translucent);border-radius:.375rem}.btn-active{background-color:#fff !important;color:#444 !important;border:0px !important} diff --git a/components/board.clustering/R/clustering_table_clustannot.R b/components/board.clustering/R/clustering_table_clustannot.R index 0233b7375..af951f643 100644 --- a/components/board.clustering/R/clustering_table_clustannot.R +++ b/components/board.clustering/R/clustering_table_clustannot.R @@ -62,6 +62,9 @@ clustering_table_clustannot_server <- function( feature_link <- playbase::wrapHyperLink( rep_len("", nrow(df)), rownames(df) + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" ) } else { feature_link <- FALSE diff --git a/components/board.enrichment/R/enrichment_table_enrichment_analysis.R b/components/board.enrichment/R/enrichment_table_enrichment_analysis.R index 2a09ace30..7ef3964b3 100644 --- a/components/board.enrichment/R/enrichment_table_enrichment_analysis.R +++ b/components/board.enrichment/R/enrichment_table_enrichment_analysis.R @@ -71,6 +71,9 @@ enrichment_table_enrichment_analysis_server <- function(id, GS_link <- playbase::wrapHyperLink( rep_len("", nrow(rpt)), rownames(rpt) + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" ) selectmode <- "single" diff --git a/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R b/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R index 3724dc147..6f009f840 100644 --- a/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R +++ b/components/board.enrichment/R/enrichment_table_gset_enrich_all_contrasts.R @@ -99,9 +99,13 @@ enrichment_table_gset_enrich_all_contrasts_server <- function(id, F <- td$F ## wrap with hyperlink + # browser() geneset_link <- playbase::wrapHyperLink( rep_len("", nrow(df)), rownames(df) + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" ) dt <- DT::datatable( diff --git a/components/board.expression/R/expression_table_gsettable.R b/components/board.expression/R/expression_table_gsettable.R index bb6733c37..115923028 100644 --- a/components/board.expression/R/expression_table_gsettable.R +++ b/components/board.expression/R/expression_table_gsettable.R @@ -58,6 +58,9 @@ expression_table_gsettable_server <- function(id, external_links <- playbase::wrapHyperLink( rep_len("", nrow(df)), rownames(df) + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" ) DT::datatable(df, # class = "compact", ## not good! diff --git a/components/board.pathway/R/functional_table_go_table.R b/components/board.pathway/R/functional_table_go_table.R index c07b020e4..c51b446ae 100644 --- a/components/board.pathway/R/functional_table_go_table.R +++ b/components/board.pathway/R/functional_table_go_table.R @@ -82,8 +82,11 @@ functional_table_go_table_server <- function(id, id_link <- playbase::wrapHyperLink( rep_len("", nrow(dt)), id2 - ) ## add link - + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" + ) + numeric.cols <- colnames(dt)[which(sapply(dt, is.numeric))] DT::datatable(dt, diff --git a/components/board.signature/R/signature_table_overlap.R b/components/board.signature/R/signature_table_overlap.R index 516cc57df..d22de6e6e 100644 --- a/components/board.signature/R/signature_table_overlap.R +++ b/components/board.signature/R/signature_table_overlap.R @@ -35,6 +35,9 @@ signature_table_overlap_server <- function(id, geneset_link <- playbase::wrapHyperLink( rep_len("", nrow(df)), df$geneset + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" ) numeric.cols <- which(sapply(df, is.numeric)) diff --git a/components/board.wordcloud/R/wordcloud_table_leading_edge.R b/components/board.wordcloud/R/wordcloud_table_leading_edge.R index a19113cc4..af374f601 100644 --- a/components/board.wordcloud/R/wordcloud_table_leading_edge.R +++ b/components/board.wordcloud/R/wordcloud_table_leading_edge.R @@ -49,7 +49,10 @@ wordcloud_table_leading_edge_server <- function(id, leading.edge_link <- playbase::wrapHyperLink( rep_len("", nrow(df)), df$leading.edge - ) ## add link + ) |> HandleNoLinkFound( + NoLinkString = "", + SubstituteString = "" + ) tbl <- DT::datatable(df, rownames = leading.edge_link, diff --git a/components/ui/ui-utils.R b/components/ui/ui-utils.R index 130efee51..ebd9990d7 100644 --- a/components/ui/ui-utils.R +++ b/components/ui/ui-utils.R @@ -246,3 +246,10 @@ pgx.showSmallModal <- function(msg = "Please wait...") { size = "s", easyClose = FALSE, fade = FALSE )) } + +HandleNoLinkFound <- function(wrapHyperLinkOutput, NoLinkString, SubstituteString) { + pattern <- paste0("^",NoLinkString, "$") + special_cases <- grepl(pattern, wrapHyperLinkOutput, perl = TRUE) + wrapHyperLinkOutput[special_cases] <- SubstituteString + return(wrapHyperLinkOutput) +} diff --git a/scss/components/_table.scss b/scss/components/_table.scss index 61a84dbfd..987c5f4ed 100644 --- a/scss/components/_table.scss +++ b/scss/components/_table.scss @@ -92,4 +92,14 @@ html { font-weight: 600; } + .icon_container { + position: relative + } + + .icon_nested { + position: absolute; + left: 5px; + color: rgba(217, 83, 79, 1); + } + } From 73d31aec6150c0c752fd76fa088d1aebb7d92117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Fri, 25 Aug 2023 02:18:20 +0200 Subject: [PATCH 5/8] feat: remove icons from csv --- .../R/clustering_table_clustannot.R | 15 ++++++++++----- .../board.pathway/R/functional_table_go_table.R | 1 + .../board.signature/R/signature_table_overlap.R | 15 +++++++++++---- .../R/wordcloud_table_leading_edge.R | 1 + 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/components/board.clustering/R/clustering_table_clustannot.R b/components/board.clustering/R/clustering_table_clustannot.R index af951f643..5fb58ba50 100644 --- a/components/board.clustering/R/clustering_table_clustannot.R +++ b/components/board.clustering/R/clustering_table_clustannot.R @@ -46,18 +46,22 @@ clustering_table_clustannot_server <- function( moduleServer(id, function(input, output, session) { ns <- session$ns + table_data <- reactive({ + rho <- getClustAnnotCorrelation() + rho.name <- playbase::shortstring(sub(".*:", "", rownames(rho)), 60) + df <- data.frame(feature = rho.name, round(as.matrix(rho), digits = 3)) + rownames(df) <- rownames(rho) + return(df) + }) + clustannot_table.RENDER <- shiny::reactive({ + df <- table_data() rho <- getClustAnnotCorrelation() xann_level <- xann_level() if (is.null(rho)) { return(NULL) } - # - rho.name <- playbase::shortstring(sub(".*:", "", rownames(rho)), 60) - # - df <- data.frame(feature = rho.name, round(as.matrix(rho), digits = 3)) - rownames(df) <- rownames(rho) if (xann_level == "geneset") { feature_link <- playbase::wrapHyperLink( rep_len("", nrow(df)), @@ -101,6 +105,7 @@ clustering_table_clustannot_server <- function( "datasets", func = clustannot_table.RENDER, func2 = clustannot_table.RENDER_modal, + csvFunc = table_data, selector = "none" ) }) # end module server diff --git a/components/board.pathway/R/functional_table_go_table.R b/components/board.pathway/R/functional_table_go_table.R index c51b446ae..c515fd230 100644 --- a/components/board.pathway/R/functional_table_go_table.R +++ b/components/board.pathway/R/functional_table_go_table.R @@ -139,6 +139,7 @@ functional_table_go_table_server <- function(id, "datasets", func = table_RENDER, func2 = table_RENDER_modal, + csvFunc = function(){table_RENDER()$x$data[,-1]}, selector = "none" ) }) ## end of moduleServer diff --git a/components/board.signature/R/signature_table_overlap.R b/components/board.signature/R/signature_table_overlap.R index d22de6e6e..28c35d70d 100644 --- a/components/board.signature/R/signature_table_overlap.R +++ b/components/board.signature/R/signature_table_overlap.R @@ -28,9 +28,18 @@ signature_table_overlap_server <- function(id, fullH, tabH) { moduleServer(id, function(input, output, session) { - overlapTable.RENDER <- shiny::reactive({ + + table_data <- shiny::reactive({ df <- getOverlapTable() shiny::req(df) + return(df) + }) + + overlapTable.RENDER <- shiny::reactive({ + df <- table_data() + + numeric.cols <- which(sapply(df, is.numeric)) + numeric.cols <- intersect(c("p.fisher", "q.fisher"), colnames(df)) geneset_link <- playbase::wrapHyperLink( rep_len("", nrow(df)), @@ -40,9 +49,6 @@ signature_table_overlap_server <- function(id, SubstituteString = "" ) - numeric.cols <- which(sapply(df, is.numeric)) - numeric.cols <- intersect(c("p.fisher", "q.fisher"), colnames(df)) - DT::datatable(df, rownames = geneset_link, escape = c(-1, -2), @@ -78,6 +84,7 @@ signature_table_overlap_server <- function(id, "datasets", func = overlapTable.RENDER, func2 = overlapTable.RENDER_modal, + csvFunc = table_data, selector = "none" ) return(overlapTable) diff --git a/components/board.wordcloud/R/wordcloud_table_leading_edge.R b/components/board.wordcloud/R/wordcloud_table_leading_edge.R index af374f601..77c9e0546 100644 --- a/components/board.wordcloud/R/wordcloud_table_leading_edge.R +++ b/components/board.wordcloud/R/wordcloud_table_leading_edge.R @@ -91,6 +91,7 @@ wordcloud_table_leading_edge_server <- function(id, "datasets", func = wordcloud_leadingEdgeTable.RENDER, func2 = wordcloud_leadingEdgeTable.RENDER_modal, + csvFunc = function(){wordcloud_leadingEdgeTable.RENDER()$x$data[,-1]}, selector = "none" ) From e158b6cc03aa5355d6b6e382e406b3a1cb5ec315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Mon, 28 Aug 2023 12:36:43 +0200 Subject: [PATCH 6/8] style: wikipathway link as icon --- .../board.pathway/R/functional_table_wikipathway.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/components/board.pathway/R/functional_table_wikipathway.R b/components/board.pathway/R/functional_table_wikipathway.R index 85858fb32..e9908b69c 100644 --- a/components/board.pathway/R/functional_table_wikipathway.R +++ b/components/board.pathway/R/functional_table_wikipathway.R @@ -65,16 +65,18 @@ functional_table_wikipathway_server <- function(id, url <- paste0( "https://www.wikipathways.org/pathways/", df$pathway.id, ".html" ) - df$pathway.id <- paste0( - "", df$pathway.id, "" + + pathway.id_link <- paste0( + "", + rep_len("", nrow(df)), + "" ) numeric.cols <- colnames(df)[which(sapply(df, is.numeric))] DT::datatable(df, - rownames = FALSE, + rownames = pathway.id_link, escape = c(-1, -2), - # extensions = c("Scroller"), selection = list( mode = "single", From 87c21f9f20aeece0b4757b1a645c5429eeaf3a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Mon, 28 Aug 2023 12:56:59 +0200 Subject: [PATCH 7/8] style: reactome link as icon --- components/board.pathway/R/functional_table_reactome.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/board.pathway/R/functional_table_reactome.R b/components/board.pathway/R/functional_table_reactome.R index 23d8c5b9f..1b853b4ef 100644 --- a/components/board.pathway/R/functional_table_reactome.R +++ b/components/board.pathway/R/functional_table_reactome.R @@ -49,17 +49,17 @@ functional_table_reactome_server <- function(id, ## add hyperlink url <- paste0("https://reactome.org/content/detail/", df$reactome.id) - df[["reactome.id"]] <- paste0( + reactome.id_link <- paste0( "", - df[["reactome.id"]], "" + rep_len("", nrow(df)), + "" ) numeric.cols <- colnames(df)[which(sapply(df, is.numeric))] DT::datatable(df, - rownames = FALSE, + rownames = reactome.id_link, escape = c(-1, -2), - # extensions = c("Scroller"), selection = list( mode = "single", From 11704a44b9929c3a0fd1194b093596aaf38d362d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Escrib=C3=A0=20Montagut?= Date: Mon, 28 Aug 2023 13:01:48 +0200 Subject: [PATCH 8/8] feat: remove icons from csv --- components/board.pathway/R/functional_table_reactome.R | 1 + components/board.pathway/R/functional_table_wikipathway.R | 1 + 2 files changed, 2 insertions(+) diff --git a/components/board.pathway/R/functional_table_reactome.R b/components/board.pathway/R/functional_table_reactome.R index 1b853b4ef..9499ca698 100644 --- a/components/board.pathway/R/functional_table_reactome.R +++ b/components/board.pathway/R/functional_table_reactome.R @@ -118,6 +118,7 @@ functional_table_reactome_server <- function(id, "tablemodule", func = table_RENDER, func2 = table_RENDER_modal, + csvFunc = table_data, selector = "single" ) diff --git a/components/board.pathway/R/functional_table_wikipathway.R b/components/board.pathway/R/functional_table_wikipathway.R index e9908b69c..598e4e3f4 100644 --- a/components/board.pathway/R/functional_table_wikipathway.R +++ b/components/board.pathway/R/functional_table_wikipathway.R @@ -137,6 +137,7 @@ functional_table_wikipathway_server <- function(id, "tablemodule", func = table_RENDER, func2 = table_RENDER_modal, + csvFunc = function() {table_data()$df}, selector = "single" )