Skip to content
Snippets Groups Projects
Commit f4f3c314 authored by Mark M. Florida's avatar Mark M. Florida
Browse files

Extracted JS and CSS sections into new files 'BaseJS.vm' and 'AppJS.vm' so...

Extracted JS and CSS sections into new files 'BaseJS.vm' and 'AppJS.vm' so they can be included in other templates without other unnecessary scripts and stylesheets; Created new 'Basic.vm' layout with no XNAT content and 'Content.vm' as a container for XNAT data available through Velocity that can be retrieved via AJAX without pulling in conflicting scripts and stylesheets; Added sample templates 'Basic.vm' and 'Blank.vm' for use with the 'Basic' and 'Content' layouts respectively.
parent b837d681
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,11 @@ ...@@ -2,7 +2,11 @@
* Retrieve custom pages via AJAX * Retrieve custom pages via AJAX
* Used in: /xnat-templates/screens/Page.vm * Used in: /xnat-templates/screens/Page.vm
*/ */
(function(NS, factory){
var XNAT = getObject(XNAT);
XNAT.app = getObject(XNAT.app||{});
(function(factory){
if (typeof define === 'function' && define.amd) { if (typeof define === 'function' && define.amd) {
define(factory); define(factory);
} }
...@@ -10,14 +14,11 @@ ...@@ -10,14 +14,11 @@
module.exports = factory(); module.exports = factory();
} }
else { else {
return factory(NS); return factory();
} }
}('app.customPage', function(NS, undefined){ }(function(){
// setExtendedObject() hasn't been tested yet
// var customPage = setExtendedObject(XNAT, NS);
var customPage = getObject(eval('XNAT.'+NS)||{}); var customPage = getObject(XNAT.app.customPage||{});
customPage.getName = function(){ customPage.getName = function(){
var name = getQueryStringValue('view'); var name = getQueryStringValue('view');
......
<!DOCTYPE html>
##Copyright 2005 Harvard University / Howard Hughes Medical Institute (HHMI) All Rights Reserved
<!-- start xnat-templates/layouts/Basic.vm -->
<!--[if lt IE 9]><html class="ie ie8 ltie9 ltie10"><![endif]-->
<!--[if IE 9]><html class="ie ie9 ltie10"><![endif]-->
<!--[if gt IE 9]><!--> <html> <!--<![endif]-->
$screen_placeholder
<!-- end xnat-templates/layouts/Basic.vm -->
</html>
\ No newline at end of file
<!-- start xnat-templates/layouts/Content.vm -->
## probably don't want to load these since
## they may already be loaded elsewhere
##
## #parse("/navigations/BaseJS.vm")
## #parse("/navigations/AppJS.vm")
$screen_placeholder
<!-- end xnat-templates/layouts/Content.vm -->
## Main JavaScript and CSS files for XNAT
## only load once
#if (!$appJS)
<!-- app.css loaded last -->
<link rel="stylesheet" type="text/css" href="$content.getURI('style/app.css?v=1.7.0a1')">
<link rel="stylesheet" type="text/css" href="$content.getURI('scripts/xmodal-v1/xmodal.css?v=1.7.0a1')">
<script src="$content.getURI('scripts/xmodal-v1/xmodal.js')"></script>
<script src="$content.getURI('scripts/xmodal-v1/xmodal-migrate.js')"></script>
<!-- XNAT JLAPI scripts -->
<script src="$content.getURI('scripts/xnat/url.js')"></script>
<script src="$content.getURI('scripts/xnat/xhr.js')"></script>
##<script src="$content.getURI('scripts/xnat/widget.js')"></script>
<script src="$content.getURI('scripts/xnat/ui/popup.js')"></script>
<script src="$content.getURI('scripts/xnat/ui/dialog.js')"></script>
#set ($appJS = true)
#else
<!-- AppJS is loaded -->
#end
## Base JavaScript files
## only load once
#if (!$baseJS)
<!-- load polyfills before ANY other JavaScript -->
<script src="$content.getURI('scripts/polyfills.js')"></script>
<!-- set global vars that are used often -->
<script>
var XNAT = XNAT || {};
var serverRoot = "$content.getURI('')";
var csrfToken = "$!data.getSession().getAttribute("XNAT_CSRF")";
var showReason = typeof $showReason != 'undefined' ? $showReason : null;
var requireReason = typeof $requireReason != 'undefined' ? $showReason : null;
</script>
## separate script tags so not everything breaks if showReason or requireReason blows up
<!-- XNAT global functions (no dependencies) -->
<script src="$content.getURI('scripts/globals.js')"></script>
<!-- required libraries -->
<script src="$content.getURI('scripts/lib/loadjs/loadjs.js')"></script>
<script src="$content.getURI('scripts/lib/jquery/jquery.min.js')"></script>
<script src="$content.getURI('scripts/lib/jquery/jquery-migrate-1.2.1.min.js')"></script>
<script>
// alias jQuery to jq
var jq = jQuery;
</script>
<!-- jQuery plugins -->
<link rel="stylesheet" type="text/css" href="$content.getURI('scripts/lib/jquery-plugins/chosen/chosen.min.css?v=1.7.0a1')">
<script src="$content.getURI('scripts/lib/jquery-plugins/chosen/chosen.jquery.min.js')"></script>
<script src="$content.getURI('scripts/lib/jquery-plugins/jquery.maskedinput.min.js')"></script>
<!-- other libraries -->
<script src="$content.getURI('scripts/lib/spawn/spawn.js')"></script>
<!-- XNAT utility functions -->
<script src="$content.getURI('scripts/utils.js')"></script>
#set ($baseJS = true)
#else
<!-- BaseJS is loaded -->
#end
...@@ -15,56 +15,12 @@ ...@@ -15,56 +15,12 @@
<meta http-equiv="expires" content="-1"> <meta http-equiv="expires" content="-1">
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT"> <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
<!-- load polyfills before ANY other JavaScript -->
<script type="text/javascript" src="$content.getURI('scripts/polyfills.js')"></script>
<!-- set global vars that are used often --> ## pull in the base JavaScript files
<script type="text/javascript"> $navigation.setTemplate("/BaseJS.vm")
var serverRoot = "$content.getURI('')";
var csrfToken = "$!data.getSession().getAttribute("XNAT_CSRF")";
var showReason = typeof $showReason != 'undefined' ? $showReason : null;
var requireReason = typeof $requireReason != 'undefined' ? $showReason : null;
</script>
## separate script tags so not everything breaks if showReason or requireReason blows up
<!-- XNAT global functions (no dependencies) -->
<script type="text/javascript" src="$content.getURI('scripts/globals.js')"></script>
<!-- required libraries -->
<script> <script>
// loads minified versions by default
// add ?debug=true to the query string
// or #debug to the url hash to load
// the non-minified versions
writeScripts([
scriptUrl('lib/loadjs/loadjs'),
scriptUrl('lib/jquery/jquery|.min'),
scriptUrl('lib/jquery/jquery-migrate-1.2.1|.min'),
]);
</script>
##<script type="text/javascript" src="$content.getURI('scripts/lib/loadjs/loadjs.js')"></script>
##<script type="text/javascript" src="$content.getURI('scripts/lib/jquery/jquery.min.js')"></script>
##<script type="text/javascript" src="$content.getURI('scripts/lib/jquery/jquery-migrate-1.2.1.min.js')"></script>
<script type="text/javascript">
// use 'jq' to avoid _possible_ conflicts with Velocity
var jq = jQuery;
</script>
<!-- jQuery plugins -->
<link rel="stylesheet" type="text/css" href="$content.getURI('scripts/lib/jquery-plugins/chosen/chosen.min.css?v=1.7.0a1')">
<script type="text/javascript" src="$content.getURI('scripts/lib/jquery-plugins/chosen/chosen.jquery.min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/lib/jquery-plugins/jquery.maskedinput.min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/lib/jquery-plugins/jquery.spawn.js')"></script>
<!-- other libraries -->
<script type="text/javascript" src="$content.getURI('scripts/lib/spawn/spawn.js')"></script>
<!-- XNAT utility functions -->
<script type="text/javascript" src="$content.getURI('scripts/utils.js')"></script>
<script type="text/javascript">
/* /*
* XNAT global namespace object, which will not be overwriten if * XNAT global namespace object, which will not be overwriten if
...@@ -206,7 +162,7 @@ ...@@ -206,7 +162,7 @@
})(XNAT.data.todaysDate); })(XNAT.data.todaysDate);
</script> </script>
<script type="text/javascript"> <script>
// initialize "Chosen" menus on DOM load // initialize "Chosen" menus on DOM load
// all <select class="chosen-menu"> elements // all <select class="chosen-menu"> elements
// will be converted // will be converted
...@@ -214,39 +170,43 @@ ...@@ -214,39 +170,43 @@
// the jQuery DOM-ready queue // the jQuery DOM-ready queue
jq(function(){chosenInit()}); jq(function(){chosenInit()});
</script> </script>
<script type="text/javascript" src="$content.getURI('scripts/xdat.js')"></script> <script src="$content.getURI('scripts/xdat.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/DynamicJSLoad.js')"></script> <script src="$content.getURI('scripts/DynamicJSLoad.js')"></script>
<!-- YAHOO USER INTERFACE files below here --> <!-- YAHOO USER INTERFACE files below here -->
<script type="text/javascript" src="$content.getURI('scripts/yui/build/yahoo-dom-event/yahoo-dom-event.js')"></script> <script src="$content.getURI('scripts/yui/build/yahoo-dom-event/yahoo-dom-event.js')"></script>
##<script type="text/javascript" src="$content.getURI('scripts/yui/build/event/event.js')"></script> ##<script src="$content.getURI('scripts/yui/build/event/event.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/event/event-min.js')"></script> <script src="$content.getURI('scripts/yui/build/event/event-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/container/container-min.js')"></script> <script src="$content.getURI('scripts/yui/build/container/container-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/menu/menu-min.js')"></script> <script src="$content.getURI('scripts/yui/build/menu/menu-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/element/element-beta-min.js')"></script> <script src="$content.getURI('scripts/yui/build/element/element-beta-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/button/button-min.js')"></script> <script src="$content.getURI('scripts/yui/build/button/button-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/connection/connection-min.js')"></script> <script src="$content.getURI('scripts/yui/build/connection/connection-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/treeview/treeview-min.js')"></script> <script src="$content.getURI('scripts/yui/build/treeview/treeview-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/cookie/cookie-min.js')"></script> <script src="$content.getURI('scripts/yui/build/cookie/cookie-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/tabview/tabview-min.js')"></script> <script src="$content.getURI('scripts/yui/build/tabview/tabview-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/datasource/datasource-min.js')"></script> <script src="$content.getURI('scripts/yui/build/datasource/datasource-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/resize/resize-min.js')"></script> <script src="$content.getURI('scripts/yui/build/resize/resize-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/dragdrop/dragdrop-min.js')"></script> <script src="$content.getURI('scripts/yui/build/dragdrop/dragdrop-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/datatable/datatable-min.js')"></script> <script src="$content.getURI('scripts/yui/build/datatable/datatable-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/paginator/paginator-min.js')"></script> <script src="$content.getURI('scripts/yui/build/paginator/paginator-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/json/json-min.js')"></script> <script src="$content.getURI('scripts/yui/build/json/json-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/xnat_loader.js')"></script> <script src="$content.getURI('scripts/yui/xnat_loader.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/LeftBarTreeView.js')"></script> <script src="$content.getURI('scripts/LeftBarTreeView.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/justification/justification.js')"></script> <script src="$content.getURI('scripts/justification/justification.js')"></script>
<script type="text/javascript"> <script>
// The YUIDOM alias is used throughout XNAT // The YUIDOM alias is used throughout XNAT
var YUIDOM = YAHOO.util.Dom; var YUIDOM = YAHOO.util.Dom;
XNAT.dom = getObject(XNAT.dom||{}); XNAT.dom = getObject(XNAT.dom||{});
XNAT.dom.addFormCSRF = function(__form){ XNAT.dom.addFormCSRF = function(form){
__form = isDefined(__form) ? $$(__form) : jq('form'); $$(form||'form').each(function(){
__form.append('<input type="hidden" name="XNAT_CSRF" value="' + csrfToken + '">') var form$ = $(this);
if (!form$.has('input[name="XNAT_CSRF"]').length){
form$.append('<input type="hidden" name="XNAT_CSRF" value="' + csrfToken + '">')
}
});
}; };
jq(function(){ jq(function(){
...@@ -260,29 +220,19 @@ ...@@ -260,29 +220,19 @@
<!-- YUI css --> <!-- YUI css -->
<link rel="stylesheet" type="text/css" href="$content.getURI('scripts/yui/build/assets/skins/sam/skin.css?v=1.7.0a1')"> <link rel="stylesheet" type="text/css" href="$content.getURI('scripts/yui/build/assets/skins/sam/skin.css?v=1.7.0a1')">
<!-- xdat.css and xnat.css loaded last to override YUI styles --> <!-- date input stuff -->
<link rel="stylesheet" type="text/css" href="$content.getURI('style/app.css?v=1.7.0a1')"> <link type="text/css" rel="stylesheet" href="$content.getURI('scripts/yui/build/calendar/assets/skins/sam/calendar.css?v=1.7.0a1')">
##<link rel="stylesheet" type="text/css" href="$content.getURI('style/xnat.css?v=1.7.0a1')"> ##<script src="$content.getURI('scripts/yui/build/calendar/calendar.js')"></script>
##<link rel="stylesheet" type="text/css" href="$content.getURI('style/icons.css?v=1.7.0a1')"> <script src="$content.getURI('scripts/yui/build/calendar/calendar-min.js')"></script>
<script src="$content.getURI('scripts/ezCalendar.js')"></script>
<link rel="stylesheet" type="text/css" href="$content.getURI('scripts/xmodal-v1/xmodal.css?v=1.7.0a1')"> ## pull in the XNAT app JavaScript files
<script type="text/javascript" src="$content.getURI('scripts/xmodal-v1/xmodal.js')"></script> $navigation.setTemplate("/AppJS.vm")
<script type="text/javascript" src="$content.getURI('scripts/xmodal-v1/xmodal-migrate.js')"></script>
<link rel="stylesheet" type="text/css" href="$content.getURI('scripts/tabWrangler/tabWrangler.css?v=1.7.0a1')">
<script type="text/javascript" src="$content.getURI('scripts/tabWrangler/tabWrangler.js')"></script>
<!-- date input stuff --> <link rel="stylesheet" type="text/css" href="$content.getURI('scripts/tabWrangler/tabWrangler.css?v=1.7.0a1')">
<link type="text/css" rel="stylesheet" href="$content.getURI('scripts/yui/build/calendar/assets/skins/sam/calendar.css?v=1.7.0a1')"> <script src="$content.getURI('scripts/tabWrangler/tabWrangler.js')"></script>
##<script type="text/javascript" src="$content.getURI('scripts/yui/build/calendar/calendar.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/yui/build/calendar/calendar-min.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/ezCalendar.js')"></script>
<!-- XNAT JLAPI scripts -->
<script type="text/javascript" src="$content.getURI('scripts/xnat/url.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/xnat/xhr.js')"></script>
##<script type="text/javascript" src="$content.getURI('scripts/xnat/widget.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/xnat/ui/popup.js')"></script>
<script type="text/javascript" src="$content.getURI('scripts/xnat/ui/dialog.js')"></script>
#addGlobalCustomScreens("header") #addGlobalCustomScreens("header")
<!DOCTYPE html> <!DOCTYPE html>
##Copyright 2005 Harvard University / Howard Hughes Medical Institute (HHMI) All Rights Reserved ##Copyright 2005 Harvard University / Howard Hughes Medical Institute (HHMI) All Rights Reserved
<!--[if lt IE 7]> <html class="ie ie6 ltie7 ltie8 ltie9 ltie10 no-js"> <![endif]--> <!--[if lt IE 9]><html class="ie ie8 ltie9 ltie10"><![endif]-->
<!--[if IE 7]> <html class="ie ie7 ltie8 ltie9 ltie10 no-js"> <![endif]--> <!--[if IE 9]><html class="ie ie9 ltie10"><![endif]-->
<!--[if IE 8]> <html class="ie ie8 ltie9 ltie10 no-js"> <![endif]--> <!--[if gt IE 9]><!--><html><!--<![endif]-->
<!--[if IE 9]> <html class="ie ie9 ltie10 no-js"> <![endif]-->
<!--[if gt IE 9]><!--> <html class="no-js"> <!--<![endif]-->
##<!-- the "no-js" class is for Modernizr - are we even using that? -->
<head> <head>
<script type="text/javascript"> <script type="text/javascript">
var XNAT = {}; var XNAT = {};
......
## There's not a Java class file for this template yet.
###* @vtlvariable name="displayManager" type="org.nrg.xdat.display.DisplayManager" *#
###* @vtlvariable name="par_count" type="java.lang.Integer" *#
###* @vtlvariable name="data" type="org.apache.turbine.util.RunData" *#
###* @vtlvariable name="turbineUtils" type="org.nrg.xdat.turbine.utils.TurbineUtils" *#
###* @vtlvariable name="siteConfig" type="java.util.Properties" *#
###* @vtlvariable name="content" type="org.apache.turbine.services.pull.tools.ContentTool" *#
#set ($template = $data.getTemplateInfo())
$!template.setLayoutTemplate("Basic.vm")
<head>
<!-- start xnat-templates/screens/Basic.vm -->
## base JavaScript libraries
#parse("/navigations/BaseJS.vm")
## XNAT css and JLAPI scripts
#parse("/navigations/AppJS.vm")
</head>
<body id="basic-page" class="xnat app basic">
<!-- Bare-bones HTML file. No YUI files and only -->
<!-- essential js and css files for new pages. -->
<!-- ================= -->
<!-- CONTENT GOES HERE -->
<!-- ================= -->
<!-- end xnat-templates/screens/Basic.vm -->
</body>
\ No newline at end of file
#set ($template = $data.getTemplateInfo())
$!template.setLayoutTemplate("Content.vm")
<p>It's blank.</p>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment