feat(user preferences) Add User Preferences & Theming to Standalone Viewer (closes #117). Update Standalone to Meteor 1.7
This commit is contained in:
parent
7090b4f3e0
commit
de7135f3b8
@ -63,5 +63,5 @@ aldeed:collection2
|
||||
zuuk:stale-session
|
||||
dangrossman:bootstrap-daterangepicker
|
||||
johdirr:meteor-git-rev
|
||||
u2622:persistent-session@0.4.4
|
||||
cultofcoders:persistent-session@0.4.4
|
||||
shell-server@0.3.0
|
||||
|
||||
@ -27,6 +27,7 @@ clinical:fonts@1.1.6
|
||||
clinical:hipaa-audit-log@2.4.2
|
||||
clinical:hipaa-logger@1.3.0
|
||||
clinical:theming@0.4.10
|
||||
cultofcoders:persistent-session@0.4.5
|
||||
dangrossman:bootstrap-daterangepicker@2.1.13
|
||||
ddp@1.4.0
|
||||
ddp-client@2.2.0
|
||||
@ -137,7 +138,6 @@ templating-runtime@1.3.2
|
||||
templating-tools@1.1.2
|
||||
tracker@1.1.3
|
||||
twbs:bootstrap@3.3.6
|
||||
u2622:persistent-session@0.4.4
|
||||
ui@1.0.13
|
||||
underscore@1.0.10
|
||||
url@1.1.0
|
||||
|
||||
@ -12,19 +12,19 @@ Template.app.onCreated(() => {
|
||||
action: OHIF.user.audit,
|
||||
text: 'View Audit Log',
|
||||
iconClasses: 'log',
|
||||
iconSvgUse: 'packages/ohif_user-management/assets/user-menu-icons.svg#log',
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#log',
|
||||
separatorAfter: true
|
||||
}, {
|
||||
action: () => OHIF.ui.showDialog('themeSelectorModal'),
|
||||
text: 'Themes',
|
||||
iconClasses: 'theme',
|
||||
iconSvgUse: 'packages/ohif_user-management/assets/user-menu-icons.svg#theme',
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#theme',
|
||||
separatorAfter: true
|
||||
}, {
|
||||
action: () => OHIF.ui.showDialog('serverInformationModal'),
|
||||
text: 'Server Information',
|
||||
iconClasses: 'server',
|
||||
iconSvgUse: 'packages/ohif_user-management/assets/user-menu-icons.svg#server',
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#server',
|
||||
separatorAfter: true
|
||||
}, {
|
||||
action: () => OHIF.ui.showDialog('userPreferencesDialog'),
|
||||
@ -35,12 +35,12 @@ Template.app.onCreated(() => {
|
||||
action: OHIF.user.changePassword,
|
||||
text: 'Change Password',
|
||||
iconClasses: 'password',
|
||||
iconSvgUse: 'packages/ohif_user-management/assets/user-menu-icons.svg#password'
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#password'
|
||||
}, {
|
||||
action: OHIF.user.logout,
|
||||
text: 'Logout',
|
||||
iconClasses: 'logout',
|
||||
iconSvgUse: 'packages/ohif_user-management/assets/user-menu-icons.svg#logout'
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#logout'
|
||||
}]);
|
||||
|
||||
instance.autorun(() => {
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
<template name="userPreferencesDialog">
|
||||
{{#dialogSimple (extend this class='themed' dialogClass='dialog-user-preferences modal-lg' title='User Preferences')}}
|
||||
<ul class="nav nav-tabs">
|
||||
<li role="presentation" class="{{tabClasses 'hotkeys'}}">
|
||||
<a href="#" data-id="hotkeys">Keyboard Shortcuts</a>
|
||||
</li>
|
||||
<li role="presentation" class="{{tabClasses 'wwwc'}}">
|
||||
<a href="#" data-id="wwwc">Window W/L</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="{{#unless eq instance.activeTab.get 'hotkeys'}}hidden{{/unless}}">
|
||||
{{>hotkeysForm (extend contextName='viewer')}}
|
||||
</div>
|
||||
<div class="{{#unless eq instance.activeTab.get 'wwwc'}}hidden{{/unless}}">
|
||||
{{>windowLevelPresetsForm}}
|
||||
</div>
|
||||
{{/dialogSimple}}
|
||||
</template>
|
||||
@ -49,5 +49,5 @@ aldeed:simple-schema # Third party package to deal with schemas
|
||||
aldeed:template-extension
|
||||
gilbertwat:bootstrap3-daterangepicker
|
||||
johdirr:meteor-git-rev
|
||||
u2622:persistent-session@0.4.4
|
||||
cultofcoders:persistent-session
|
||||
shell-server@0.3.0
|
||||
|
||||
@ -20,6 +20,7 @@ caching-compiler@1.1.9
|
||||
caching-html-compiler@1.1.2
|
||||
callback-hook@1.0.10
|
||||
check@1.2.5
|
||||
cultofcoders:persistent-session@0.4.5
|
||||
dangrossman:bootstrap-daterangepicker@2.1.13
|
||||
ddp@1.4.0
|
||||
ddp-client@2.2.0
|
||||
@ -120,7 +121,6 @@ templating-runtime@1.3.2
|
||||
templating-tools@1.1.2
|
||||
tracker@1.1.3
|
||||
twbs:bootstrap@3.3.6
|
||||
u2622:persistent-session@0.4.4
|
||||
ui@1.0.13
|
||||
underscore@1.0.10
|
||||
url@1.1.0
|
||||
|
||||
@ -13,6 +13,12 @@ Template.ohifViewer.onCreated(() => {
|
||||
text: 'Server Information',
|
||||
icon: 'fa fa-server fa-lg',
|
||||
separatorAfter: true
|
||||
}, {
|
||||
action: () => OHIF.ui.showDialog('themeSelectorModal'),
|
||||
text: 'Themes',
|
||||
iconClasses: 'theme',
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#theme',
|
||||
separatorAfter: false
|
||||
}, {
|
||||
action: () => OHIF.ui.showDialog('userPreferencesDialog'),
|
||||
text: 'Preferences',
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
import { Template } from 'meteor/templating';
|
||||
import { ReactiveVar } from 'meteor/reactive-var';
|
||||
|
||||
Template.userPreferencesDialog.onCreated(() => {
|
||||
const instance = Template.instance();
|
||||
instance.activeTab = new ReactiveVar('hotkeys');
|
||||
});
|
||||
|
||||
Template.userPreferencesDialog.events({
|
||||
'click .nav-tabs li a'(event, instance) {
|
||||
const tabId = $(event.currentTarget).attr('data-id');
|
||||
instance.activeTab.set(tabId);
|
||||
}
|
||||
});
|
||||
|
||||
Template.userPreferencesDialog.helpers({
|
||||
tabClasses(tabId) {
|
||||
const instance = Template.instance();
|
||||
const activeTab = instance.activeTab.get();
|
||||
return tabId === activeTab ? 'active' : '';
|
||||
}
|
||||
});
|
||||
@ -1,79 +0,0 @@
|
||||
@require '{ohif:design}/app'
|
||||
|
||||
.dialog-user-preferences
|
||||
|
||||
.modal-body
|
||||
overflow: hidden
|
||||
|
||||
.form-content
|
||||
theme('border-bottom', '1px solid $uiBorderColor')
|
||||
margin-bottom: 10px
|
||||
margin-left: -15px
|
||||
margin-right: -15px
|
||||
max-height: 70vh
|
||||
overflow-y: auto
|
||||
padding: 15px
|
||||
|
||||
.popover
|
||||
width: 300px
|
||||
|
||||
.nav-tabs
|
||||
border-bottom: 0
|
||||
margin-bottom: 3px
|
||||
position: relative
|
||||
z-index: 1
|
||||
|
||||
&>li
|
||||
font-size: 14px
|
||||
font-weight: normal
|
||||
height: 40px
|
||||
line-height: 40px
|
||||
margin-bottom: 0
|
||||
|
||||
&>a
|
||||
display: block
|
||||
width: 100%
|
||||
line-height: inherit
|
||||
margin: 0
|
||||
height: inherit
|
||||
padding: 0 10px 0 10px
|
||||
|
||||
&:after
|
||||
background-color: transparent
|
||||
bottom: -3px
|
||||
content: ' '
|
||||
display: block
|
||||
height: 3px
|
||||
transition(background-color 0.3s ease)
|
||||
width: 100%
|
||||
|
||||
&>a, &.active>a
|
||||
&, &:hover, &:active, &:focus
|
||||
theme('color', '$activeColor')
|
||||
background-color: transparent
|
||||
border: 0
|
||||
|
||||
&.active>a
|
||||
font-weight: bold
|
||||
|
||||
&:after
|
||||
theme('background-color', '$activeColor')
|
||||
|
||||
.form-themed
|
||||
|
||||
table
|
||||
color: #fff
|
||||
|
||||
th, td
|
||||
font-size: 14px
|
||||
font-weight: 300
|
||||
|
||||
th
|
||||
line-height: 60px
|
||||
|
||||
td
|
||||
line-height: 20px
|
||||
|
||||
|
||||
input[type=text]
|
||||
font-weight: 300
|
||||
@ -32,7 +32,7 @@ $height = 25px
|
||||
padding: 0 22px
|
||||
position: relative
|
||||
text-transform: uppercase
|
||||
transition: transition($sidebarTransition)
|
||||
transition($sidebarTransition)
|
||||
z-index: 1
|
||||
|
||||
svg
|
||||
|
||||
@ -76,3 +76,19 @@ label.wrapperLabel:not(.checkboxLabel)
|
||||
&.select2-container--open span.select2-selection span.select2-selection__arrow
|
||||
theme('background-color', '$uiGrayDark')
|
||||
theme('color', '$textPrimaryColor')
|
||||
|
||||
.form-control
|
||||
background-color: #FFFFFF
|
||||
border: 0
|
||||
border-radius(2px)
|
||||
font-size: 14px
|
||||
height: 30px
|
||||
line-height: 16px
|
||||
padding: 8px 9px 6px
|
||||
|
||||
&:focus
|
||||
theme('box-shadow', '0 0 0 2px $activeColor !important')
|
||||
|
||||
.form-themed .form-control
|
||||
theme('box-shadow', '0 0 0 1px $uiBorderColor')
|
||||
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
@require '{ohif:design}/app'
|
||||
@import '{ohif:design}/app'
|
||||
|
||||
html body
|
||||
theme('background-color', '$primaryBackgroundColor')
|
||||
font-family: 'Roboto', 'OpenSans', 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif
|
||||
-webkit-backface-visibility: hidden // Prevent Chrome from shifting parent elements on transform
|
||||
font-family: Roboto
|
||||
|
||||
html body.stretch
|
||||
height: 100%
|
||||
@ -105,15 +107,62 @@ body .select2-container--default .select2-results>.select2-results__options
|
||||
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
theme('background', '$primaryBackgroundColor')
|
||||
theme('background-color', '$uiGrayDarker')
|
||||
theme('border-color', '$uiBorderColor')
|
||||
theme('color', '$textSecondaryColor')
|
||||
border-radius(6px)
|
||||
border: 0
|
||||
|
||||
.modal-header, .modal-footer
|
||||
theme('border-color', '$uiBorderColor')
|
||||
|
||||
&:hover
|
||||
.dialog-separator,
|
||||
.dialog-separator-before,
|
||||
.dialog-separator-after
|
||||
position: relative
|
||||
|
||||
.dialog-separator:before,
|
||||
.dialog-separator:after,
|
||||
.dialog-separator-before:before,
|
||||
.dialog-separator-after:after
|
||||
background-color: #000000
|
||||
box-shadow(-50px 0 0 #000000\, 50px 0 0 #000000)
|
||||
content: ' '
|
||||
display: block
|
||||
height: 3px
|
||||
left: 0
|
||||
position: absolute
|
||||
width: 100%
|
||||
|
||||
.dialog-separator:before,
|
||||
.dialog-separator-before:before
|
||||
top: -3px
|
||||
|
||||
.dialog-separator:after,
|
||||
.dialog-separator-after:after
|
||||
bottom: -3px
|
||||
|
||||
.modal-body
|
||||
theme('color', '$textPrimaryColor')
|
||||
padding: 16px 22px 25px
|
||||
position: relative
|
||||
|
||||
.modal-header
|
||||
border-bottom-width: 3px
|
||||
border-bottom-style: solid
|
||||
border-bottom-color: #000000
|
||||
padding: 19px 22px 17px
|
||||
position: relative
|
||||
|
||||
h4
|
||||
theme('color', '$textSecondaryColor')
|
||||
font-size: 20px
|
||||
font-weight: 500
|
||||
line-height: 24px
|
||||
padding-right: 24px
|
||||
|
||||
.modal-footer
|
||||
border-top: 0
|
||||
|
||||
.card-round
|
||||
theme('background-color', '$uiGrayDark')
|
||||
@ -199,3 +248,109 @@ body .select2-container--default .select2-results>.select2-results__options
|
||||
|
||||
.nowrap
|
||||
white-space: nowrap
|
||||
|
||||
.themed
|
||||
table
|
||||
theme('color', '$textPrimaryColor')
|
||||
|
||||
th, td
|
||||
font-size: 15px
|
||||
font-weight: normal
|
||||
|
||||
th
|
||||
line-height: 60px
|
||||
|
||||
td
|
||||
line-height: 18px
|
||||
|
||||
.btn
|
||||
border: 0
|
||||
border-radius(4px)
|
||||
font-size: 15px
|
||||
font-weight: normal
|
||||
height: 37px
|
||||
line-height: 37px
|
||||
padding: 0 12px
|
||||
|
||||
&.btn-primary, &.btn-secondary
|
||||
color: #000000
|
||||
|
||||
&:hover, &:active, &:focus, &:focus:active
|
||||
color: #000000
|
||||
|
||||
&.btn-primary, &.btn-secondary, &.btn-danger
|
||||
transition(background-color 0.3s ease)
|
||||
|
||||
&.btn-primary
|
||||
theme('background-color', '$activeColor')
|
||||
|
||||
&:hover, &:active, &:focus, &:focus:active
|
||||
theme('background-color', '$activeColor', 0.8)
|
||||
|
||||
&.btn-secondary
|
||||
theme('background-color', '$textSecondaryColor')
|
||||
|
||||
&:hover, &:active, &:focus, &:focus:active
|
||||
theme('background-color', '$textSecondaryColor', 0.8)
|
||||
|
||||
&.btn-danger
|
||||
theme('background-color', '$destructiveColor')
|
||||
theme('color', '$textPrimaryColor')
|
||||
|
||||
&:hover, &:active, &:focus, &:focus:active
|
||||
theme('color', '$textPrimaryColor')
|
||||
theme('background-color', '$destructiveColor', 0.8)
|
||||
|
||||
&.active
|
||||
box-shadow(inset 1px 1px 2px rgba(0, 0, 0, 0.5))
|
||||
|
||||
.wrapperLabel .wrapperText
|
||||
theme('color', '$textPrimaryColor')
|
||||
font-size: 14px
|
||||
font-weight: bold
|
||||
line-height: 16px
|
||||
|
||||
&:not(:empty)
|
||||
margin-bottom: 13px
|
||||
|
||||
.nav-tabs
|
||||
border-bottom: 0
|
||||
margin-bottom: 3px
|
||||
position: relative
|
||||
z-index: 1
|
||||
|
||||
&>li
|
||||
font-size: 14px
|
||||
font-weight: normal
|
||||
height: 40px
|
||||
line-height: 40px
|
||||
margin-bottom: 0
|
||||
|
||||
&>a
|
||||
display: block
|
||||
width: 100%
|
||||
line-height: inherit
|
||||
margin: 0
|
||||
height: inherit
|
||||
padding: 0 10px 0 10px
|
||||
|
||||
&:after
|
||||
background-color: transparent
|
||||
bottom: -3px
|
||||
content: ' '
|
||||
display: block
|
||||
height: 3px
|
||||
transition(background-color 0.3s ease)
|
||||
width: 100%
|
||||
|
||||
&>a, &.active>a
|
||||
&, &:hover, &:active, &:focus
|
||||
theme('color', '$activeColor')
|
||||
background-color: transparent
|
||||
border: 0
|
||||
|
||||
&.active>a
|
||||
font-weight: bold
|
||||
|
||||
&:after
|
||||
theme('background-color', '$activeColor')
|
||||
|
||||
@ -42,14 +42,14 @@ $height = 20px
|
||||
theme('background-color', '$uiGrayDark')
|
||||
theme('border', '2px solid $uiBorderColorDark')
|
||||
theme('color', '$textSecondaryColor')
|
||||
transition: transition($sidebarTransition)
|
||||
transition($sidebarTransition)
|
||||
border-radius: $height
|
||||
|
||||
&.active a
|
||||
theme('background-color', '$activeColor')
|
||||
theme('border-color', '$uiBorderColorActive')
|
||||
theme('color', '$textColorActive')
|
||||
transition: transition($sidebarTransition)
|
||||
transition($sidebarTransition)
|
||||
|
||||
p
|
||||
h2
|
||||
|
||||
@ -19,7 +19,7 @@ Package.onUse(function(api) {
|
||||
'reactive-var',
|
||||
'session',
|
||||
'iron:router',
|
||||
'u2622:persistent-session'
|
||||
'cultofcoders:persistent-session'
|
||||
]);
|
||||
|
||||
// OHIF dependencies
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template name="themeSelectorModal">
|
||||
{{#dialogForm (extend this
|
||||
id='themeSelectorModal' dialogClass='modal-lg' confirmLabel='Apply theme'
|
||||
id='themeSelectorModal' dialogClass='themed modal-lg' confirmLabel='Apply theme'
|
||||
title='Themes' titleIcon='fa fa-sliders'
|
||||
)}}
|
||||
<ul class="theme-list text-center">
|
||||
|
||||
@ -12,7 +12,7 @@ $ohifThemesCommon['tide'] = {
|
||||
$uiGray: #263340
|
||||
$uiGrayDark: #16202B
|
||||
$uiGrayDarker: #151A1F
|
||||
$uiGrayDarkest: #14191E
|
||||
$uiGrayDarkest: #14202A
|
||||
|
||||
// Interface UI Colors
|
||||
$defaultColor: #9CCEF9
|
||||
@ -22,13 +22,14 @@ $ohifThemesCommon['tide'] = {
|
||||
$uiBorderColorDark: #3C5D80
|
||||
$uiBorderColorActive: #00a4d9
|
||||
$primaryBackgroundColor: #000000
|
||||
$boxBackgroundColor: #344a61
|
||||
$boxBackgroundColor: #3E5975
|
||||
|
||||
// Text Colors
|
||||
$textColorActive: #000000
|
||||
$textPrimaryColor: #ffffff
|
||||
$textSecondaryColor: #91B9CD
|
||||
$largeNumbersColor: #6FBDE2
|
||||
$textDisabledColor: #878787
|
||||
|
||||
// Other Colors
|
||||
$imageSliderColor: #163239
|
||||
|
||||
@ -1,26 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<symbol id="theme" viewBox="0 0 24 24">
|
||||
<title>Theme</title>
|
||||
<path d="M17.484 12c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM14.484 8.016c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM9.516 8.016c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM6.516 12c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM12 3c4.969 0 9 3.609 9 8.016 0 2.766-2.25 4.969-5.016 4.969h-1.734c-0.844 0-1.5 0.656-1.5 1.5 0 0.375 0.141 0.703 0.375 0.984s0.375 0.656 0.375 1.031c0 0.844-0.656 1.5-1.5 1.5-4.969 0-9-4.031-9-9s4.031-9 9-9z"></path>
|
||||
</symbol>
|
||||
<symbol id="log" viewBox="0 0 24 24">
|
||||
<title>Log</title>
|
||||
<path d="M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zM15.516 14.016l4.969 4.969-1.5 1.5-4.969-4.969v-0.797l-0.281-0.281c-1.125 0.984-2.625 1.547-4.219 1.547-3.609 0-6.516-2.859-6.516-6.469s2.906-6.516 6.516-6.516 6.469 2.906 6.469 6.516c0 1.594-0.563 3.094-1.547 4.219l0.281 0.281h0.797z"></path>
|
||||
</symbol>
|
||||
<symbol id="server" viewBox="0 0 24 28">
|
||||
<title>Server</title>
|
||||
<path d="M12 12c4.703 0 9.422-0.844 12-2.656v2.656c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2.656c2.578 1.813 7.297 2.656 12 2.656zM12 24c4.703 0 9.422-0.844 12-2.656v2.656c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2.656c2.578 1.813 7.297 2.656 12 2.656zM12 18c4.703 0 9.422-0.844 12-2.656v2.656c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2.656c2.578 1.813 7.297 2.656 12 2.656zM12 0c6.625 0 12 1.797 12 4v2c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2c0-2.203 5.375-4 12-4z"></path>
|
||||
</symbol>
|
||||
<symbol id="study-list" viewBox="0 0 24 24">
|
||||
<title>Study List</title>
|
||||
<path d="M9 5.016h12v3.984h-12v-3.984zM9 18.984v-3.984h12v3.984h-12zM9 14.016v-4.031h12v4.031h-12zM3.984 9v-3.984h4.031v3.984h-4.031zM3.984 18.984v-3.984h4.031v3.984h-4.031zM3.984 14.016v-4.031h4.031v4.031h-4.031z"></path>
|
||||
</symbol>
|
||||
<symbol id="logout" viewBox="0 0 24 28">
|
||||
<title>Logout</title>
|
||||
<path d="M24 14c0 6.609-5.391 12-12 12s-12-5.391-12-12c0-3.797 1.75-7.297 4.797-9.578 0.891-0.672 2.141-0.5 2.797 0.391 0.672 0.875 0.484 2.141-0.391 2.797-2.031 1.531-3.203 3.859-3.203 6.391 0 4.406 3.594 8 8 8s8-3.594 8-8c0-2.531-1.172-4.859-3.203-6.391-0.875-0.656-1.062-1.922-0.391-2.797 0.656-0.891 1.922-1.062 2.797-0.391 3.047 2.281 4.797 5.781 4.797 9.578zM14 2v10c0 1.094-0.906 2-2 2s-2-0.906-2-2v-10c0-1.094 0.906-2 2-2s2 0.906 2 2z"></path>
|
||||
</symbol>
|
||||
<symbol id="password" viewBox="0 0 18 28">
|
||||
<title>Password</title>
|
||||
<path d="M5 12h8v-3c0-2.203-1.797-4-4-4s-4 1.797-4 4v3zM18 13.5v9c0 0.828-0.672 1.5-1.5 1.5h-15c-0.828 0-1.5-0.672-1.5-1.5v-9c0-0.828 0.672-1.5 1.5-1.5h0.5v-3c0-3.844 3.156-7 7-7s7 3.156 7 7v3h0.5c0.828 0 1.5 0.672 1.5 1.5z"></path>
|
||||
</symbol>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.9 KiB |
@ -26,9 +26,6 @@ Package.onUse(function(api) {
|
||||
api.use('ohif:user');
|
||||
api.use('ohif:study-list');
|
||||
|
||||
// Load icons
|
||||
api.addAssets('assets/user-menu-icons.svg', 'client');
|
||||
|
||||
api.addFiles('both/collections.js', ['client', 'server']);
|
||||
//api.addFiles('both/schema/reviewers.js', ['client', 'server']);
|
||||
|
||||
|
||||
@ -210,4 +210,28 @@
|
||||
<path d="m26.695 2.992c-1.014-1.016-2.362-1.575-3.797-1.575 -0.001 0-0.001 0-0.002 0 -1.435 0-2.784 0.56-3.798 1.573l-7.551 7.553c-1.017 1.016-1.576 2.363-1.576 3.799 0 1.434 0.558 2.784 1.574 3.797l2.297 2.297 2.01-2.009 -2.298-2.297c-0.477-0.477-0.741-1.113-0.741-1.788 0-0.676 0.265-1.311 0.742-1.788l7.553-7.555c0.477-0.477 1.111-0.74 1.789-0.74 0 0 0 0 0.001 0 0.674 0 1.309 0.264 1.786 0.74l2.297 2.299c0.477 0.477 0.74 1.111 0.74 1.788 0 0.674-0.264 1.311-0.74 1.788l-3.776 3.777 2.009 2.009 3.776-3.777c1.014-1.013 1.573-2.363 1.574-3.797 0-1.435-0.56-2.784-1.574-3.797l-2.295-2.296z"/>
|
||||
</g>
|
||||
</symbol>
|
||||
<symbol id="theme" viewBox="0 0 24 24">
|
||||
<title>Theme</title>
|
||||
<path d="M17.484 12c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM14.484 8.016c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM9.516 8.016c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM6.516 12c0.844 0 1.5-0.656 1.5-1.5s-0.656-1.5-1.5-1.5-1.5 0.656-1.5 1.5 0.656 1.5 1.5 1.5zM12 3c4.969 0 9 3.609 9 8.016 0 2.766-2.25 4.969-5.016 4.969h-1.734c-0.844 0-1.5 0.656-1.5 1.5 0 0.375 0.141 0.703 0.375 0.984s0.375 0.656 0.375 1.031c0 0.844-0.656 1.5-1.5 1.5-4.969 0-9-4.031-9-9s4.031-9 9-9z"></path>
|
||||
</symbol>
|
||||
<symbol id="log" viewBox="0 0 24 24">
|
||||
<title>Log</title>
|
||||
<path d="M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zM15.516 14.016l4.969 4.969-1.5 1.5-4.969-4.969v-0.797l-0.281-0.281c-1.125 0.984-2.625 1.547-4.219 1.547-3.609 0-6.516-2.859-6.516-6.469s2.906-6.516 6.516-6.516 6.469 2.906 6.469 6.516c0 1.594-0.563 3.094-1.547 4.219l0.281 0.281h0.797z"></path>
|
||||
</symbol>
|
||||
<symbol id="server" viewBox="0 0 24 28">
|
||||
<title>Server</title>
|
||||
<path d="M12 12c4.703 0 9.422-0.844 12-2.656v2.656c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2.656c2.578 1.813 7.297 2.656 12 2.656zM12 24c4.703 0 9.422-0.844 12-2.656v2.656c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2.656c2.578 1.813 7.297 2.656 12 2.656zM12 18c4.703 0 9.422-0.844 12-2.656v2.656c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2.656c2.578 1.813 7.297 2.656 12 2.656zM12 0c6.625 0 12 1.797 12 4v2c0 2.203-5.375 4-12 4s-12-1.797-12-4v-2c0-2.203 5.375-4 12-4z"></path>
|
||||
</symbol>
|
||||
<symbol id="study-list" viewBox="0 0 24 24">
|
||||
<title>Study List</title>
|
||||
<path d="M9 5.016h12v3.984h-12v-3.984zM9 18.984v-3.984h12v3.984h-12zM9 14.016v-4.031h12v4.031h-12zM3.984 9v-3.984h4.031v3.984h-4.031zM3.984 18.984v-3.984h4.031v3.984h-4.031zM3.984 14.016v-4.031h4.031v4.031h-4.031z"></path>
|
||||
</symbol>
|
||||
<symbol id="logout" viewBox="0 0 24 28">
|
||||
<title>Logout</title>
|
||||
<path d="M24 14c0 6.609-5.391 12-12 12s-12-5.391-12-12c0-3.797 1.75-7.297 4.797-9.578 0.891-0.672 2.141-0.5 2.797 0.391 0.672 0.875 0.484 2.141-0.391 2.797-2.031 1.531-3.203 3.859-3.203 6.391 0 4.406 3.594 8 8 8s8-3.594 8-8c0-2.531-1.172-4.859-3.203-6.391-0.875-0.656-1.062-1.922-0.391-2.797 0.656-0.891 1.922-1.062 2.797-0.391 3.047 2.281 4.797 5.781 4.797 9.578zM14 2v10c0 1.094-0.906 2-2 2s-2-0.906-2-2v-10c0-1.094 0.906-2 2-2s2 0.906 2 2z"></path>
|
||||
</symbol>
|
||||
<symbol id="password" viewBox="0 0 18 28">
|
||||
<title>Password</title>
|
||||
<path d="M5 12h8v-3c0-2.203-1.797-4-4-4s-4 1.797-4 4v3zM18 13.5v9c0 0.828-0.672 1.5-1.5 1.5h-15c-0.828 0-1.5-0.672-1.5-1.5v-9c0-0.828 0.672-1.5 1.5-1.5h0.5v-3c0-3.844 3.156-7 7-7s7 3.156 7 7v3h0.5c0.828 0 1.5 0.672 1.5 1.5z"></path>
|
||||
</symbol>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 20 KiB |
@ -6,12 +6,13 @@
|
||||
overflow: hidden
|
||||
|
||||
.form-content
|
||||
margin-bottom: 10px
|
||||
margin-left: -15px
|
||||
margin-right: -15px
|
||||
border-bottom: 3px solid #000000
|
||||
margin-bottom: 20px
|
||||
margin-left: -22px
|
||||
margin-right: -22px
|
||||
max-height: 70vh
|
||||
overflow-y: auto
|
||||
padding: 15px
|
||||
padding: 22px
|
||||
|
||||
.popover
|
||||
width: 300px
|
||||
@ -14,7 +14,7 @@ Package.onUse(function(api) {
|
||||
'stylus',
|
||||
'momentjs:moment',
|
||||
'validatejs',
|
||||
'u2622:persistent-session'
|
||||
'cultofcoders:persistent-session'
|
||||
]);
|
||||
|
||||
// OHIF dependencies
|
||||
@ -177,6 +177,10 @@ Package.onUse(function(api) {
|
||||
api.addFiles('client/components/viewer/toolbarSectionTools/toolbarSectionTools.js', 'client');
|
||||
api.addFiles('client/components/viewer/toolbarSectionTools/toolbarSectionTools.styl', 'client');
|
||||
|
||||
api.addFiles('client/components/viewer/userPreferences/dialog.html', 'client');
|
||||
api.addFiles('client/components/viewer/userPreferences/dialog.js', 'client');
|
||||
api.addFiles('client/components/viewer/userPreferences/dialog.styl', 'client');
|
||||
|
||||
api.addFiles('client/components/viewer/confirmDeleteDialog/confirmDeleteDialog.html', 'client');
|
||||
api.addFiles('client/components/viewer/confirmDeleteDialog/confirmDeleteDialog.js', 'client');
|
||||
api.addFiles('client/components/viewer/confirmDeleteDialog/confirmDeleteDialog.styl', 'client');
|
||||
@ -228,7 +232,7 @@ Package.onTest(function(api) {
|
||||
'mongo',
|
||||
'momentjs:moment',
|
||||
'validatejs',
|
||||
'u2622:persistent-session'
|
||||
'cultofcoders:persistent-session'
|
||||
], both);
|
||||
|
||||
// OHIF dependencies
|
||||
|
||||
@ -15,3 +15,4 @@ notices-for-facebook-graph-api-2
|
||||
1.4.1-add-shell-server-package
|
||||
1.4.3-split-account-service-packages
|
||||
1.5-add-dynamic-import-package
|
||||
1.7-split-underscore-from-meteor-base
|
||||
|
||||
@ -4,18 +4,18 @@
|
||||
# 'meteor add' and 'meteor remove' will edit this file for you,
|
||||
# but you can also edit it by hand.
|
||||
|
||||
meteor-base@1.1.0 # Packages every Meteor app needs to have
|
||||
meteor-base@1.4.0 # Packages every Meteor app needs to have
|
||||
mobile-experience@1.0.5 # Packages for a great mobile UX
|
||||
mongo@1.2.2 # The database Meteor supports right now
|
||||
mongo@1.5.0 # The database Meteor supports right now
|
||||
blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views
|
||||
reactive-var@1.0.11 # Reactive variable for tracker
|
||||
jquery@1.11.10 # Helpful client-side library
|
||||
tracker@1.1.3 # Meteor's client-side reactive programming library
|
||||
tracker@1.2.0 # Meteor's client-side reactive programming library
|
||||
|
||||
standard-minifier-css@1.3.5 # CSS minifier run for production mode
|
||||
standard-minifier-js@2.1.2 # JS minifier run for production mode
|
||||
ecmascript@0.8.3 # Enable ECMAScript2015+ syntax in app code
|
||||
shell-server@0.2.4 # Server-side component of the `meteor shell` command
|
||||
standard-minifier-css@1.4.1 # CSS minifier run for production mode
|
||||
standard-minifier-js@2.3.4 # JS minifier run for production mode
|
||||
ecmascript@0.11.1 # Enable ECMAScript2015+ syntax in app code
|
||||
shell-server@0.3.1 # Server-side component of the `meteor shell` command
|
||||
|
||||
# OHIF Packages
|
||||
ohif:polyfill
|
||||
@ -28,16 +28,16 @@ ohif:viewerbase
|
||||
ohif:metadata
|
||||
ohif:study-list
|
||||
ohif:dicom-services
|
||||
ohif:hanging-protocols
|
||||
|
||||
aldeed:template-extension
|
||||
aldeed:simple-schema@1.5.3
|
||||
stylus@2.513.9
|
||||
iron:router
|
||||
session@1.1.7
|
||||
u2622:persistent-session@0.4.4
|
||||
reactive-dict@1.1.9
|
||||
cultofcoders:persistent-session
|
||||
reactive-dict@1.2.0
|
||||
twbs:bootstrap
|
||||
fortawesome:fontawesome
|
||||
mrt:moment
|
||||
random@1.0.10
|
||||
random@1.1.0
|
||||
underscore
|
||||
|
||||
@ -1 +1 @@
|
||||
METEOR@1.5.2.2
|
||||
METEOR@1.7.0.3
|
||||
|
||||
@ -1,47 +1,49 @@
|
||||
accounts-base@1.3.4
|
||||
accounts-base@1.4.2
|
||||
aldeed:collection2@2.10.0
|
||||
aldeed:collection2-core@1.2.0
|
||||
aldeed:schema-deny@1.1.0
|
||||
aldeed:schema-index@1.1.1
|
||||
aldeed:simple-schema@1.5.3
|
||||
aldeed:simple-schema@1.5.4
|
||||
aldeed:template-extension@4.1.0
|
||||
allow-deny@1.0.9
|
||||
allow-deny@1.1.0
|
||||
amplify@1.0.0
|
||||
autoupdate@1.3.12
|
||||
babel-compiler@6.20.0
|
||||
babel-runtime@1.0.1
|
||||
base64@1.0.10
|
||||
autoupdate@1.4.1
|
||||
babel-compiler@7.1.1
|
||||
babel-runtime@1.2.2
|
||||
base64@1.0.11
|
||||
binary-heap@1.0.10
|
||||
blaze@2.3.2
|
||||
blaze-html-templates@1.1.2
|
||||
blaze-tools@1.0.10
|
||||
boilerplate-generator@1.2.0
|
||||
caching-compiler@1.1.9
|
||||
boilerplate-generator@1.5.0
|
||||
caching-compiler@1.1.12
|
||||
caching-html-compiler@1.1.2
|
||||
callback-hook@1.0.10
|
||||
check@1.2.5
|
||||
callback-hook@1.1.0
|
||||
check@1.3.1
|
||||
cultofcoders:persistent-session@0.4.5
|
||||
dangrossman:bootstrap-daterangepicker@2.1.13
|
||||
ddp@1.3.1
|
||||
ddp-client@2.1.3
|
||||
ddp-common@1.2.9
|
||||
ddp@1.4.0
|
||||
ddp-client@2.3.3
|
||||
ddp-common@1.4.0
|
||||
ddp-rate-limiter@1.0.7
|
||||
ddp-server@2.0.2
|
||||
ddp-server@2.2.0
|
||||
deps@1.0.12
|
||||
diff-sequence@1.0.7
|
||||
dynamic-import@0.1.3
|
||||
ecmascript@0.8.3
|
||||
ecmascript-runtime@0.4.1
|
||||
ecmascript-runtime-client@0.4.3
|
||||
ecmascript-runtime-server@0.4.1
|
||||
ejson@1.0.14
|
||||
diff-sequence@1.1.0
|
||||
dynamic-import@0.4.1
|
||||
ecmascript@0.11.1
|
||||
ecmascript-runtime@0.7.0
|
||||
ecmascript-runtime-client@0.7.1
|
||||
ecmascript-runtime-server@0.7.0
|
||||
ejson@1.1.0
|
||||
es5-shim@4.8.0
|
||||
fastclick@1.0.13
|
||||
fortawesome:fontawesome@4.7.0
|
||||
geojson-utils@1.0.10
|
||||
hot-code-push@1.0.4
|
||||
html-tools@1.0.11
|
||||
htmljs@1.0.11
|
||||
http@1.2.12
|
||||
id-map@1.0.9
|
||||
http@1.4.1
|
||||
id-map@1.1.0
|
||||
iron:controller@1.0.12
|
||||
iron:core@1.0.11
|
||||
iron:dynamic-template@1.0.12
|
||||
@ -50,36 +52,37 @@ iron:location@1.0.11
|
||||
iron:middleware-stack@1.1.0
|
||||
iron:router@1.1.2
|
||||
iron:url@1.1.0
|
||||
jquery@1.11.10
|
||||
jquery@1.11.11
|
||||
launch-screen@1.1.1
|
||||
livedata@1.0.18
|
||||
localstorage@1.1.1
|
||||
logging@1.1.19
|
||||
localstorage@1.2.0
|
||||
logging@1.1.20
|
||||
mdg:validation-error@0.5.1
|
||||
meteor@1.7.2
|
||||
meteor-base@1.1.0
|
||||
meteor@1.9.0
|
||||
meteor-base@1.4.0
|
||||
meteor-platform@1.2.6
|
||||
minifier-css@1.2.16
|
||||
minifier-js@2.1.4
|
||||
minimongo@1.3.3
|
||||
minifier-css@1.3.1
|
||||
minifier-js@2.3.5
|
||||
minimongo@1.4.4
|
||||
mobile-experience@1.0.5
|
||||
mobile-status-bar@1.0.14
|
||||
modules@0.10.0
|
||||
modules-runtime@0.8.0
|
||||
modern-browsers@0.1.1
|
||||
modules@0.12.1
|
||||
modules-runtime@0.10.2
|
||||
momentjs:moment@2.18.1
|
||||
mongo@1.2.2
|
||||
mongo-dev-server@1.0.1
|
||||
mongo-id@1.0.6
|
||||
mongo@1.5.1
|
||||
mongo-dev-server@1.1.0
|
||||
mongo-id@1.0.7
|
||||
mrt:moment@2.8.1
|
||||
natestrauser:select2@4.0.3
|
||||
npm-mongo@2.2.33
|
||||
npm-mongo@3.0.7
|
||||
observe-sequence@1.0.16
|
||||
ohif:commands@0.0.1
|
||||
ohif:core@0.0.1
|
||||
ohif:cornerstone@0.0.1
|
||||
ohif:cornerstone-settings@0.0.1
|
||||
ohif:design@0.0.1
|
||||
ohif:dicom-services@0.0.1
|
||||
ohif:hanging-protocols@0.0.1
|
||||
ohif:header@0.0.1
|
||||
ohif:hotkeys@0.0.1
|
||||
ohif:log@0.0.1
|
||||
@ -92,36 +95,37 @@ ohif:themes@0.0.1
|
||||
ohif:themes-common@0.0.1
|
||||
ohif:viewerbase@0.0.1
|
||||
ohif:wadoproxy@0.0.1
|
||||
ordered-dict@1.0.9
|
||||
promise@0.9.0
|
||||
ordered-dict@1.1.0
|
||||
promise@0.11.1
|
||||
raix:eventemitter@0.1.3
|
||||
random@1.0.10
|
||||
rate-limit@1.0.8
|
||||
reactive-dict@1.1.9
|
||||
random@1.1.0
|
||||
rate-limit@1.0.9
|
||||
reactive-dict@1.2.0
|
||||
reactive-var@1.0.11
|
||||
reload@1.1.11
|
||||
retry@1.0.9
|
||||
routepolicy@1.0.12
|
||||
reload@1.2.0
|
||||
retry@1.1.0
|
||||
routepolicy@1.0.13
|
||||
service-configuration@1.0.11
|
||||
session@1.1.7
|
||||
shell-server@0.2.4
|
||||
shell-server@0.3.1
|
||||
silentcicero:jszip@0.0.4
|
||||
socket-stream-client@0.2.2
|
||||
spacebars@1.0.15
|
||||
spacebars-compiler@1.1.3
|
||||
standard-app-packages@1.0.9
|
||||
standard-minifier-css@1.3.5
|
||||
standard-minifier-js@2.1.2
|
||||
stylus@2.513.9
|
||||
standard-minifier-css@1.4.1
|
||||
standard-minifier-js@2.3.4
|
||||
stylus@2.513.14
|
||||
templating@1.3.2
|
||||
templating-compiler@1.3.3
|
||||
templating-runtime@1.3.2
|
||||
templating-tools@1.1.2
|
||||
tracker@1.1.3
|
||||
tracker@1.2.0
|
||||
twbs:bootstrap@3.3.6
|
||||
u2622:persistent-session@0.4.4
|
||||
u2622:persistent-session@0.1.4
|
||||
ui@1.0.13
|
||||
underscore@1.0.10
|
||||
url@1.1.0
|
||||
url@1.2.0
|
||||
validatejs@0.0.1
|
||||
webapp@1.3.19
|
||||
webapp@1.6.2
|
||||
webapp-hashing@1.0.9
|
||||
|
||||
3
StandaloneViewer/StandaloneViewer/client/body.html
Normal file
3
StandaloneViewer/StandaloneViewer/client/body.html
Normal file
@ -0,0 +1,3 @@
|
||||
<body>
|
||||
<div id="notificationArea" class="notification-area"></div>
|
||||
</body>
|
||||
@ -6,6 +6,12 @@
|
||||
</svg>
|
||||
<div class="logo-text">Open Health Imaging Foundation</div>
|
||||
{{/section}}
|
||||
{{#section 'headerMenu'}}
|
||||
<span class="header-options pull-left m-r-1">Options</span>
|
||||
<div class="menu-toggle pull-right">
|
||||
<span class="caret-down"></span>
|
||||
</div>
|
||||
{{/section}}
|
||||
{{/header}}
|
||||
{{>viewer}}
|
||||
</template>
|
||||
|
||||
@ -37,13 +37,6 @@ Template.toolbarSection.helpers({
|
||||
iconClasses: 'fa fa-crosshairs'
|
||||
});
|
||||
|
||||
extraTools.push({
|
||||
id: 'stackScroll',
|
||||
title: 'Stack Scroll',
|
||||
classes: 'imageViewerTool',
|
||||
iconClasses: 'fa fa-bars'
|
||||
});
|
||||
|
||||
extraTools.push({
|
||||
id: 'magnify',
|
||||
title: 'Magnify',
|
||||
@ -116,6 +109,13 @@ Template.toolbarSection.helpers({
|
||||
|
||||
const buttonData = [];
|
||||
|
||||
buttonData.push({
|
||||
id: 'stackScroll',
|
||||
title: 'Stack Scroll',
|
||||
classes: 'imageViewerTool',
|
||||
iconClasses: 'fa fa-bars'
|
||||
});
|
||||
|
||||
buttonData.push({
|
||||
id: 'zoom',
|
||||
title: 'Zoom',
|
||||
|
||||
14
StandaloneViewer/StandaloneViewer/client/headerItems.js
Normal file
14
StandaloneViewer/StandaloneViewer/client/headerItems.js
Normal file
@ -0,0 +1,14 @@
|
||||
import { OHIF } from 'meteor/ohif:core';
|
||||
|
||||
OHIF.header.dropdown.setItems([{
|
||||
action: () => OHIF.ui.showDialog('themeSelectorModal'),
|
||||
text: 'Themes',
|
||||
iconClasses: 'theme',
|
||||
iconSvgUse: 'packages/ohif_viewerbase/assets/icons.svg#theme',
|
||||
separatorAfter: false
|
||||
}, {
|
||||
action: () => OHIF.ui.showDialog('userPreferencesDialog'),
|
||||
text: 'Preferences',
|
||||
icon: 'fa fa-user',
|
||||
separatorAfter: false
|
||||
}]);
|
||||
@ -5,8 +5,8 @@
|
||||
"start": "meteor run"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-runtime": "^6.23.0",
|
||||
"cornerstone-web-image-loader": "^2.1.0",
|
||||
"meteor-node-stubs": "^0.2.11"
|
||||
"@babel/runtime": "^7.0.0-beta.51",
|
||||
"core-js": "^2.5.7",
|
||||
"cornerstone-web-image-loader": "^2.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user