mirror of http://localhost:9400/cloud/cms
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
4.8 KiB
HTML
135 lines
4.8 KiB
HTML
<!--
|
|
(c) 2004 - 2022 Health Information Privacy Laboratory
|
|
Vanderbilt University Medical Center
|
|
|
|
|
|
This is a flask-based cms that considers the following for a website :
|
|
- header
|
|
- content
|
|
- menu
|
|
- content
|
|
- footer
|
|
|
|
|
|
-->
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head >
|
|
<title>{{layout.header.title}}</title>
|
|
|
|
<link rel="shortcut icon" href="{{system.icon}}">
|
|
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="keywords" content="quick cms, cms, python, flask, qcms">
|
|
<meta name="robots" content="/, follow, max-snippet:-1, max-image-preview:large">
|
|
<link href="{{system.context}}/static/css/default.css" rel="stylesheet" type="text/css">
|
|
<link href="{{system.context}}/static/css/menu.css" rel="stylesheet" type="text/css">
|
|
<link href="{{system.context}}/static/css/border.css" rel="stylesheet" type="text/css">
|
|
|
|
<!-- <link href="{{system.context}}/static/css/animation/_ocean.css" rel="stylesheet" type="text/css"> -->
|
|
<link href="{{system.context}}/static/css/themes/{{system.theme}}" rel="stylesheet" type="text/css">
|
|
<link href="{{system.context}}/static/css/icons.css" rel="stylesheet" type="text/css">
|
|
|
|
<script src="{{system.context}}/static/js/jx/dom.js"></script>
|
|
<script src="{{system.context}}/static/js/jx/utils.js"></script>
|
|
<script src="{{system.context}}/static/js/jx/rpc.js"></script>
|
|
<script src="{{system.context}}/static/js/jx/ext/modal.js"></script>
|
|
<script src="{{system.context}}/static/js/jquery/jquery.js"></script>
|
|
<script src="{{system.context}}/static/js/menu.js"></script>
|
|
<script src="{{system.context}}/static/js/search.js"></script>
|
|
<script src="{{system.context}}/static/js/fontawesome/js/all.js"></script>
|
|
</head>
|
|
<script>
|
|
sessionStorage.setItem('{{system.id}}','{{system.context|safe}}')
|
|
var _layout = {{layout|tojson}}
|
|
//
|
|
// Rendering here requires an observer design pattern because calls are asynchronous
|
|
//
|
|
/**
|
|
* @id _domURI of the pane where the output is to be written
|
|
* @uri _fileURI of the file
|
|
*/
|
|
var CMSObserver = function(_domId,_fileURI){
|
|
this._domId = _domId
|
|
this._fileURI = _fileURI
|
|
this.apply = function (_caller){
|
|
var http = HttpClient.instance()
|
|
http.setHeader('uri',_fileURI)
|
|
var uri = '{{context}}/page'
|
|
try{
|
|
http.post(uri,function(x){
|
|
console.log(jx.dom.exists(_domId))
|
|
if (x.status == 200){
|
|
// jx.dom.set.value(_domId,x.responseText)
|
|
var _domElement = jx.dom.get.instance('div')
|
|
_domElement.innerHTML = x.responseText
|
|
jx.dom.append(_domId, _domElement)
|
|
|
|
|
|
}
|
|
|
|
_caller.notify()
|
|
})
|
|
|
|
}catch(error){
|
|
_caller.notify()
|
|
}
|
|
}
|
|
|
|
}
|
|
var finalize = function(_id){
|
|
this.apply = function(_caller){
|
|
menu.runScript('#'+_id)
|
|
}
|
|
}
|
|
if (_layout.on != null ){
|
|
//
|
|
// load and error are required
|
|
$(document).ready(function(){
|
|
jx.utils.keys(_layout.on.load).forEach(function(_id){
|
|
|
|
var observers =
|
|
jx.utils.patterns.visitor(_layout.on.load[_id], function(_uri){
|
|
return new CMSObserver(_id,_uri)
|
|
})
|
|
observers.push(new finalize(_id))
|
|
//
|
|
// At this point we can execute the observer design pattern
|
|
//
|
|
jx.utils.patterns.observer(observers,'apply')
|
|
|
|
})
|
|
})
|
|
}
|
|
|
|
|
|
</script>
|
|
<body>
|
|
|
|
<div class="main">
|
|
<div class="header" onclick="window.location.href='{{system.context}}/'" style="cursor:pointer">
|
|
{%include "header.html" %}
|
|
</div>
|
|
|
|
<div id="menu" class="menu">
|
|
{%include "menu.html" %}
|
|
</div>
|
|
<div class="content">
|
|
|
|
{%include "content.html" %}
|
|
|
|
</div>
|
|
<div id="pane" class="pane">
|
|
{%include "pane.html" %}
|
|
</div>
|
|
|
|
<div id="footer" class="footer">
|
|
{%include "footer.html" %}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</body>
|
|
</html>
|