PWV-1: Migrating study association modal to the new structure

This commit is contained in:
Bruno Alves de Faria authored and Erik Ziegler committed 2016-11-15 08:24:01 +01:00
1 parent 8e6ac3bf1e
commit 984ef94403
24 files changed
+180 -145

No files matched your search

@@ -8,14 +8,16 @@ import './section/section.html';
import './section/section.js';
// Mixins
import './mixins/action.js';
import './mixins/button.js';
import './mixins/checkbox.js';
import './mixins/component.js';
import './mixins/form.js';
import './mixins/formItem.js';
import './mixins/group.js';
import './mixins/groupRadio.js';
import './mixins/input.js';
import './mixins/checkbox.js';
import './mixins/link.js';
import './mixins/schemaData.js';
import './mixins/select.js';
import './mixins/select2.js';
@@ -27,6 +29,7 @@ import './templates/custom.html';
import './templates/div.html';
import './templates/form.html';
import './templates/input.html';
import './templates/link.html';
import './templates/select.html';
// wrappers
@@ -0,0 +1,37 @@
import { OHIF } from 'meteor/ohif:core';
import { Template } from 'meteor/templating';
/*
* action: controls an element that will trigger some form API's method
*/
OHIF.mixins.action = new OHIF.Mixin({
dependencies: 'formItem',
composition: {
onRendered() {
const instance = Template.instance();
const component = instance.component;
component.$element.addClass('form-action');
},
events: {
'click .form-action'(event, instance) {
const component = instance.component;
// Extract the action and the params
const { action, params } = instance.data;
// Get the current component's API
const api = component.getApi();
// Stop here if no API or action was defined
if (!api || !action || typeof api[action] !== 'function') {
return;
}
// Call the defined action function
api[action].call(this, params);
}
}
}
});
@@ -2,7 +2,7 @@ import { OHIF } from 'meteor/ohif:core';
import { Template } from 'meteor/templating';
/*
* input: controls a button
* button: controls a button
*/
OHIF.mixins.button = new OHIF.Mixin({
dependencies: 'formItem',
@@ -13,26 +13,6 @@ OHIF.mixins.button = new OHIF.Mixin({
// Set the element to be controlled
component.$element = instance.$('button:first');
},
events: {
'click button'(event, instance) {
const component = instance.component;
// Extract the action and the params
const { action, params } = instance.data;
// Get the current component's API
const api = component.getApi();
// Stop here if no API or action was defined
if (!api || !action || typeof api[action] !== 'function') {
return;
}
// Call the defined action function
api[action].call(this, params);
}
}
}
});
@@ -55,10 +55,12 @@ OHIF.mixins.form = new OHIF.Mixin({
// Set the component main and style elements
component.$style = component.$element = instance.$('form:first');
// Block page redirecting on submit
component.$element[0].onsubmit = () => false;
},
events: {
submit: event => event.preventDefault(),
'click .validation-error-container a'(event, instance) {
// Get the target key
const targetKey = $(event.currentTarget).attr('data-target');
@@ -0,0 +1,26 @@
import { OHIF } from 'meteor/ohif:core';
import { Template } from 'meteor/templating';
/*
* link: controls a link
*/
OHIF.mixins.link = new OHIF.Mixin({
dependencies: 'formItem',
composition: {
onRendered() {
const instance = Template.instance();
const component = instance.component;
// Set the element to be controlled
component.$element = instance.$('a:first');
},
events: {
'click a'(event, instance) {
if (instance.data.action) {
event.preventDefault();
}
}
}
}
});
@@ -0,0 +1,11 @@
<template name="baseLink">
<a
id="{{this.id}}"
class="{{this.class}} {{#if this.disabled}}disabled{{/if}}"
href="{{choose this.href '#'}}"
title="{{this.title}}"
{{this.tagAttributes}}
>
{{>UI.contentBlock}}
</a>
</template>
@@ -1,17 +1,19 @@
<template name="dialogForm">
<div id="{{this.id}}" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog {{this.dialogClass}}" role="document">
{{#form class='modal-content' schema=this.schema hideValidationBox=true api=instance.api}}
{{#form class='modal-content' api=instance.api schema=this.schema hideValidationBox=true}}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{{#button class='close' action='cancel' tagAttributes=(extend this.tagAttributes aria-label='Close')}}
<span aria-hidden="true">&times;</span>
{{/button}}
<h4 class="modal-title">{{this.title}}</h4>
</div>
<div class="modal-body">
{{>UI.contentBlock}}
</div>
<div class="modal-footer">
{{#button class='btn-default' action='cancel'}}Cancel{{/button}}
{{#button class='btn-primary' action='confirm'}}Confirm{{/button}}
{{#button class='btn btn-default' action='cancel'}}{{choose this.cancelLabel 'Cancel'}}{{/button}}
{{#button class='btn btn-primary' action='confirm'}}{{choose this.confirmLabel 'Confirm'}}{{/button}}
</div>
{{/form}}
</div>
@@ -36,7 +36,10 @@ Template.dialogForm.onRendered(() => {
// Create the bootstrap modal
const $modal = instance.$('.modal');
$modal.modal();
$modal.modal({
backdrop: 'static',
keyboard: false
});
// Remove the created modal backdrop from DOM after promise is done
const $backdrop = $modal.next('.modal-backdrop');
@@ -1,8 +1,7 @@
<template name="button">
{{#baseComponent (extend this
base='baseButton'
class=(concat 'btn ' this.class)
mixins=(concat 'button ' this.mixins)
mixins=(concat 'button action ' this.mixins)
)}}
{{>UI.contentBlock}}
{{/baseComponent}}
@@ -0,0 +1,8 @@
<template name="link">
{{#baseComponent (extend this
base='baseLink'
mixins=(concat 'link action ' this.mixins)
)}}
{{>UI.contentBlock}}
{{/baseComponent}}
</template>
@@ -6,6 +6,7 @@ import './dialog/login.js';
import './form/button.html';
import './form/form.html';
import './form/group.html';
import './form/link.html';
import './input/checkbox.html';
import './input/hidden.html';