Skip to content

Instantly share code, notes, and snippets.

@haubourg
Created November 29, 2017 10:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haubourg/b7bccd19213cb7bb7c5b45cea8d8c50a to your computer and use it in GitHub Desktop.
Save haubourg/b7bccd19213cb7bb7c5b45cea8d8c50a to your computer and use it in GitHub Desktop.
/* MarkTree JavaScript code
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* Miika Nurminen, 12.7.2004.
*/
/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
function get_keycode(evt) {
// IE
code = document.layers ? evt.which
: document.all ? event.keyCode // event.keyCode!=evt.keyCode!
: evt.keyCode;
if (code==0)
code=evt.which; // for NS
return code;
}
var lastnode=null;
var listnodes = null;
var list_index=1;
var lastnodetype=''; // determines if node is a link, input or text;
// up, left, down, right, keypress codes
//ijkl
//var keys = new Array(105,106,107,108);
//num arrows
//var keys = new Array(56,52,50,54);
//wasd
// var press2 = new Array(119,97,115,100);
var press = new Array(47,45,42,43);
// keydown codes
// var keys2=new Array(87,65,83,68);
var keys= new Array(38,37,40,39);
// keyset 1 = keydown, otherwise press
function checkup(keyset,n) {
if (keyset==1) return (n==keys[0]);
return ((n==press[0]) /*|| (n==press2[0])*/)
}
function checkdn(keyset,n) {
if (keyset==1) return (n==keys[2]);
return ((n==press[2]) /*|| (n==press2[2])*/)
}
function checkl(keyset,n) {
if (keyset==1) return (n==keys[1]);
return ((n==press[1]) /*|| (n==press2[1])*/)
}
function checkr(keyset,n) {
if (keyset==1) return (n==keys[3]);
return ((n==press[3]) /*|| (n==press2[3])*/)
}
function is_exp(n) {
if (n==null) return false;
return ((n.className=='exp') || (n.className=='exp_active'));
}
function is_col(n) {
if (n==null) return false;
return ((n.className=='col') || (n.className=='col_active'));
}
function is_basic(n) {
if (n==null) return false;
return ((n.className=='basic') || (n.className=='basic_active'));
}
/* returns i>=0 if true */
function is_active(node) {
if (node.className==null) return false
return node.className.indexOf('_active');
}
function toggle_class(node) {
if ((node==null) || (node.className==null)) return;
str=node.className;
result="";
i = str.indexOf('_active');
if (i>0)
result= str.substr(0,i);
else
result= str+"_active";
node.className=result;
return node;
}
function activate(node) {
node.style.backgroundColor='#eeeeff';
}
function deactivate(node) {
node.style.backgroundColor='#ffffff';
}
function is_list_node(n) {
if (n==null) return false;
if (n.className==null) return false;
if ( (is_exp(n)) ||
(is_col(n)) ||
(is_basic(n)) )
return true; else return false;
}
function get_href(n) {
alist=n.attributes;
if (alist!=null) {
hr = alist.getNamedItem('href');
if (hr!=null) return hr.nodeValue;
}
if (n.childNodes.length==0) return '';
for (var i=0; i<n.childNodes.length; i++) {
s = get_href(n.childNodes[i]);
if (s!='') return s;
}
return '';
}
function get_link(n) {
if (n==null) return null;
if (n.style==null) return null;
// disabling uncontrolled recursion to prevent error messages on IE
// when trying to focus to invisible links (readonly mode)
// alert(n.nodeName+' '+n.className);
if ((n.nodeName=='UL') && (n.className=='sub')) return null;
if (n.nodeName=='A') return n;
if (n.childNodes.length==0) return null;
for (var i=0; i<n.childNodes.length; i++) {
s = get_link(n.childNodes[i]);
if (s!=null) return s;
}
return null;
}
function set_lastnode(n) {
/*var d = new Date();
var t_mil = d.getMilliseconds();*/
// testattu nopeuksia explorerilla, ei merkitt�vi� eroja
if (lastnode==n) return;
/* deactivate(lastnode)
lastnode=n;
activate(lastnode);*/
if (is_active(lastnode)>=0)
toggle_class(lastnode);
lastnode=n;
if (!(is_active(lastnode)>=0))
toggle_class(lastnode);
/*var d2 = new Date();
var t_mil2 = d2.getMilliseconds();
window.alert(t_mil2-t_mil);*/
}
function next_list_node() {
tempIndex = list_index;
while (tempIndex<listnodes.length-1) {
tempIndex++;
var x = listnodes[tempIndex];
if (is_list_node(x)) {
list_index=tempIndex;
return;
}
}
}
function prev_list_node() {
tempIndex = list_index;
while (tempIndex>0) {
tempIndex--;
var x = listnodes[tempIndex];
if (is_list_node(x)) {
list_index=tempIndex;
return;
}
}
}
function getsub (li) {
if (li.childNodes.length==0) return null;
for (var c = 0; c < li.childNodes.length; c++)
if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') )
return li.childNodes[c];
}
function find_listnode_recursive (li) {
if (is_list_node(li)) return li;
if (li.childNodes.length==0) return null;
result=null;
for (var c = 0; c < li.childNodes.length; c++) {
result=find_listnode_recursive(li.childNodes[c]);
if (result!=null) return result;
}
return null;
}
function next_child_listnode(li) {
var result=null;
for (var i=0; i<li.childNodes.length; i++) {
result=find_listnode_recursive(li.childNodes[i]);
if (result!=null) return result;
}
return null;
}
function next_actual_sibling_listnode(li) {
if (li==null) return null;
var temp=li;
while (1) {
var n = temp.nextSibling;
if (n==null) {
n=parent_listnode(temp);
return next_actual_sibling_listnode(n);
}
if (is_list_node(n)) return n;
temp=n;
}
}
function next_sibling_listnode(li) {
if (li==null) return null;
var result=null;
var temp=li;
if (is_col(temp)) return next_child_listnode(temp);
while (1) {
var n = temp.nextSibling;
if (n==null) {
n=parent_listnode(temp);
return next_actual_sibling_listnode(n);
}
if (is_list_node(n)) return n;
temp=n;
}
}
function last_sibling_listnode(li) {
if (li==null) return null;
var temp=li;
var last=null;
while(1) {
var n = temp.nextSibling;
if (is_list_node(temp))
last = temp;
if (n==null) {
if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
else return last;
}
temp = n;
}
}
function prev_sibling_listnode(li) {
if (li==null) return null;
var temp=li;
var n = null;
while (1) {
n = temp.previousSibling;
if (n==null) {
return parent_listnode(li);
}
if (is_list_node(n)) {
if (is_col(n)) {
return last_sibling_listnode(next_child_listnode(n));
}
else {
return n;
}
}
temp=n;
}
}
function parent_listnode(li) {
// added 12.7.2004 to prevent IE error when readonly mode==true
if (li==null) return null;
n=li;
while (1) {
n=n.parentNode;
if (n==null) return null;
if (is_list_node(n)) return n;
}
}
function getVisibleParents(id) {
var n = document.getElementById(id);
while(1) {
expand(n);
n = parent_listnode(n);
if (n==null) return;
}
}
function onClickHandler (evt) {
if (lastnode==null)
{
listnodes = document.getElementsByTagName('li');
lastnode=listnodes[1];
temp=listnodes[1];
}
var target = evt ? evt.target : event.srcElement;
if (!is_list_node(target)) return;
toggle(target);
set_lastnode(target);
}
function expand(node) {
if (!is_exp(node)) return;
if (node.className=='exp_active')
node.className='col_active';
else
node.className='col';
setSubClass(node,'subexp');
// getsub(node).className='subexp';
}
function collapse(node) {
if (!is_col(node)) return;
if (node.className=='col_active')
node.className='exp_active'
else
node.className='exp';
setSubClass(node,'sub');
// getsub(node).className='sub';
}
function setSubClass(node,name) {
sub = getsub(node);
if (sub==null) return;
sub.className=name;
}
function toggle(target) {
if (!is_list_node(target)) return;
if (is_col(target)) {
target.className='exp';
setSubClass(target,'sub');
// getsub(target).className='sub';
}
else if (is_exp(target)) {
target.className='col';
setSubClass(target,'subexp');
// getsub(target).className='subexp';
}
}
function expandAll(node) {
if (node.className=='exp') {
node.className='col';
setSubClass(node,'subexp');
// getsub(node).className='subexp';
}
var i;
if (node.childNodes!=null)
// if (node.hasChildNodes())
for ( i = 0; i<node.childNodes.length; i++)
expandAll(node.childNodes[i]);
}
function collapseAll(node) {
if (node.className=='col') {
node.className='exp';
setSubClass(node,'sub');
// getsub(node).className='sub';
}
var i;
if (node.childNodes!=null)
// for opera if (node.hasChildNodes())
for ( i = 0; i<node.childNodes.length; i++)
collapseAll(node.childNodes[i]);
}
function unFocus(node) {
// unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
// tested with mozilla 1.7, 12.7.2004. /mn (
intemp=parent_listnode(node);
a = get_link(intemp); // added 6.4. to get keyboard working with
// moved before collapse to prevent an error message with IE when readonly==true
if (a!=null) a.blur(); // netscape after collapsing a focused node
return intemp;
}
// mode: 0==keypress, 1==keyup
function keyfunc(evt,mode) {
var c = get_keycode(evt);
var temp = null;
var a = null;
if (lastnode==null) {
listnodes = document.getElementsByTagName('li');
lastnode=listnodes[1];
temp=listnodes[1];
}
//window.alert(c);
if (checkup(mode,c)) { // i
temp=prev_sibling_listnode(lastnode);
}
else if (checkdn(mode,c)) { // k
temp=next_sibling_listnode(lastnode);
}
else if (checkr(mode,c)) { // l
expand(lastnode);
// temp=next_child_listnode(lastnode);
// if (temp==null) {
a = get_link(lastnode);
if (a!=null) a.focus(); else self.focus();
//}
}
else if (checkl(mode,c)) { // j
if (is_col(lastnode)) {
unFocus(lastnode);
collapse(lastnode);
}
else {
temp=unFocus(lastnode);
collapse(temp);
}
// if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
}
else return;
if (temp!=null) set_lastnode(temp);
// alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
return true;
}
function keytest (evt) {
return keyfunc(evt,1);
};
function presstest (evt) {
return keyfunc(evt,0);
};
document.onclick = onClickHandler;
document.onkeypress = presstest;
document.onkeyup = keytest;
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="treestyles.css" type="text/css"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!--This file has been created with toxhtml.xsl--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>QWAT Features</title><link rel="stylesheet" href="QWAT_Feature_grid.html_files/treestyles.css" type="text/css"/><script type="text/javascript" src="QWAT_Feature_grid.html_files/marktree.js"> 
</script></head><body><div class="basetop"><a href="#" onclick="expandAll(document.getElementById('base'))">Expand</a> -
<a href="#" onclick="collapseAll(document.getElementById('base'))">Collapse</a></div><div id="base" class="basetext"><ul>
<li class="col" id="FMID_1723255651FM"><div class="nodecontent" style="color:#000000;font-size:183%;font-weight:bold;"><p style="text-align: center"><font color="#6699ff" face="Sawasdee">QWAT Features </font></p></div>
<ul class="subexp">
<li class="basic" id="FMID_1807018833FM"><div class="nodecontent" style="color:#0066cc;background-color:#cfe7ff;font-size:133%;font-weight:bold;"/></li>
<li class="basic" id="FMID_986546557FM"><div class="nodecontent" style="color:#000000;background-color:#cfe7ff;font-size:83%;font-style:italic;">version 1.3.0 201711/27</div></li>
<li class="exp" id="FMID_452777468FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Pure Open Source Design</div>
<ul class="sub">
<li class="exp" id="FMID_1506622133FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Collaborative practices</div>
<ul class="sub">
<li class="basic" id="FMID_1430590713FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">GIT code versionning and collaboration</div></li>
<li class="exp" id="FMID_416690505FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">GITHUB project management</div>
<ul class="sub">
<li class="basic" id="FMID_1967911636FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">issues</div></li>
<li class="basic" id="FMID_169441034FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Review process</div></li>
<li class="basic" id="FMID_331732328FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Continuous Integration / Unit tests / Travis</div></li></ul></li></ul></li>
<li class="basic" id="FMID_168464572FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Free to use and adapt</div></li>
<li class="col" id="FMID_1635107330FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Efficiency</div>
<ul class="subexp">
<li class="basic" id="FMID_271868942FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">common components wiht QGEP</div></li>
<li class="basic" id="FMID_623297166FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">OSGEO tools</div></li>
<li class="basic" id="FMID_536235913FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">PostgreSQL</div></li></ul></li></ul></li>
<li class="exp" id="FMID_390947824FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Data Model and Rules</div>
<ul class="sub">
<li class="exp" id="FMID_1614103445FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Concepts and classes</div>
<ul class="sub">
<li class="basic" id="FMID_1821892522FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Pipes</div></li>
<li class="col" id="FMID_1662920566FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Nodes</div>
<ul class="subexp">
<li class="col" id="FMID_335278074FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Network elements</div>
<ul class="subexp">
<li class="basic" id="FMID_622830110FM"><div class="nodecontent" style="color:#000000;font-size:83%;">meter</div></li>
<li class="basic" id="FMID_1870509190FM"><div class="nodecontent" style="color:#000000;font-size:83%;">hydrant</div></li>
<li class="basic" id="FMID_497506517FM"><div class="nodecontent" style="color:#000000;font-size:83%;">subscriber</div></li>
<li class="basic" id="FMID_674553297FM"><div class="nodecontent" style="color:#000000;font-size:83%;">sampling point</div></li>
<li class="col" id="FMID_830928841FM"><div class="nodecontent" style="color:#000000;font-size:83%;">installations</div>
<ul class="subexp">
<li class="basic" id="FMID_1087731750FM"><div class="nodecontent" style="color:#000000;font-size:83%;">tank</div></li>
<li class="basic" id="FMID_705499164FM"><div class="nodecontent" style="color:#000000;font-size:83%;">chamber</div></li>
<li class="basic" id="FMID_1746617841FM"><div class="nodecontent" style="color:#000000;font-size:83%;">cover</div></li>
<li class="basic" id="FMID_688968445FM"><div class="nodecontent" style="color:#000000;font-size:83%;">treatment</div></li>
<li class="basic" id="FMID_1117874209FM"><div class="nodecontent" style="color:#000000;font-size:83%;">pump</div></li>
<li class="basic" id="FMID_1718444963FM"><div class="nodecontent" style="color:#000000;font-size:83%;">pressure control</div></li>
<li class="basic" id="FMID_588266881FM"><div class="nodecontent" style="color:#000000;font-size:83%;">source</div></li></ul></li></ul></li>
<li class="basic" id="FMID_1887233362FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">pipe nodes</div></li></ul></li>
<li class="basic" id="FMID_476658367FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Valve</div></li>
<li class="basic" id="FMID_1268957853FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Leaks</div></li>
<li class="basic" id="FMID_1407236475FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Crossing</div></li>
<li class="basic" id="FMID_1973219476FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Remote</div></li>
<li class="basic" id="FMID_1119517958FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Distributor</div></li>
<li class="basic" id="FMID_1323136698FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Folder</div></li>
<li class="basic" id="FMID_1628756426FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Survey Points / Construction Points</div></li>
<li class="basic" id="FMID_538340353FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">PrintMaps</div></li>
<li class="basic" id="FMID_273431737FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Protection zones</div></li>
<li class="basic" id="FMID_1869136828FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Pressure zones</div></li></ul></li>
<li class="exp" id="FMID_1568196887FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Altitude handling</div>
<ul class="sub">
<li class="basic" id="FMID_501489953FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">3D geometries</div></li>
<li class="basic" id="FMID_680467288FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">precision classes</div></li></ul></li>
<li class="exp" id="FMID_834546477FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Assisted network editing (DB API)</div>
<ul class="sub">
<li class="basic" id="FMID_1086852475FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">triggers</div></li>
<li class="basic" id="FMID_571354416FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">stored procedures</div></li>
<li class="basic" id="FMID_1927639816FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Automatic nodes handling</div></li></ul></li>
<li class="basic" id="FMID_1606800853FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Internationalized value lists</div></li>
<li class="basic" id="FMID_1892268520FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">audit History logging</div></li>
<li class="basic" id="FMID_702903837FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Extensible data model and value lists</div></li>
<li class="exp" id="FMID_1552537156FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Interoperability</div>
<ul class="sub">
<li class="basic" id="FMID_762977284FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Topobase Import scripts</div></li>
<li class="basic" id="FMID_619928634FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">SIRE export (CH specific)</div></li></ul></li></ul></li>
<li class="exp" id="FMID_1684443578FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Network editing</div>
<ul class="sub">
<li class="basic" id="FMID_190827249FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">topological snapping</div></li>
<li class="basic" id="FMID_1206615235FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">advanced CAD digitizing tools (construction using angles, distances, perpendicular and parallel constraints)</div></li>
<li class="basic" id="FMID_1655812622FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Curve support</div></li></ul></li>
<li class="exp" id="FMID_918967144FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Advanced Mapping features</div>
<ul class="sub">
<li class="basic" id="FMID_561406201FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Multi scale geometries and labels</div></li>
<li class="basic" id="FMID_1539282849FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Import exports DXF / DWG (QGIS)</div></li>
<li class="basic" id="FMID_967645695FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Atlas batch Map generation</div></li>
<li class="basic" id="FMID_1881006861FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Printing and reporting</div></li>
<li class="basic" id="FMID_1085355331FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Annotations</div></li>
<li class="basic" id="FMID_901190797FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Street View / Mappilary view</div></li></ul></li>
<li class="exp" id="FMID_1836894912FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">QGIS client</div>
<ul class="sub">
<li class="basic" id="FMID_1808615543FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Internationalized</div></li>
<li class="basic" id="FMID_1560039987FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Street view mapping</div></li>
<li class="basic" id="FMID_1275684132FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Easy to Use</div></li>
<li class="basic" id="FMID_965576968FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Fast and nice rendering</div></li>
<li class="exp" id="FMID_909657252FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">True native DataBase client</div>
<ul class="sub">
<li class="basic" id="FMID_318613947FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Transaction support/ multi users</div></li>
<li class="exp" id="FMID_287677211FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">PostgresSQL</div>
<ul class="sub">
<li class="basic" id="FMID_1052989215FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">scalable</div></li>
<li class="basic" id="FMID_1050259117FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Fast</div></li></ul></li></ul></li>
<li class="basic" id="FMID_282783711FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Read/write most external formats and data services</div></li>
<li class="basic" id="FMID_765547109FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Place search with full text indexing</div></li>
<li class="basic" id="FMID_393544453FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Mass editing</div></li>
<li class="basic" id="FMID_1321773562FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">DataBase Query</div></li>
<li class="basic" id="FMID_1993454407FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Customizable forms</div></li></ul></li>
<li class="col" id="FMID_1834825813FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Infrastructure</div>
<ul class="subexp">
<li class="basic" id="FMID_687240456FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Continuous Integration and Quality Assessment</div></li>
<li class="basic" id="FMID_713508151FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Version control and Database migration</div></li>
<li class="exp" id="FMID_384824700FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Local Customization</div>
<ul class="sub">
<li class="basic" id="FMID_764567115FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">SQL patches</div></li>
<li class="basic" id="FMID_1380476621FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">qgis project translation</div></li>
<li class="exp" id="FMID_297890584FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">qgis project enrichment</div>
<ul class="sub">
<li class="basic" id="FMID_1102151635FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Layers</div></li>
<li class="basic" id="FMID_1896187092FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Styles</div></li>
<li class="basic" id="FMID_778145155FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Forms</div></li>
<li class="basic" id="FMID_1531433732FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Custom actions</div></li></ul></li></ul></li></ul></li>
<li class="col" id="FMID_677328599FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Documentation</div>
<ul class="subexp">
<li class="basic" id="FMID_606228118FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">internationalized</div></li></ul></li>
<li class="col" id="FMID_494234434FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Planned Improvements</div>
<ul class="subexp">
<li class="basic" id="FMID_1837300096FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Live geometric error display</div></li>
<li class="basic" id="FMID_498860735FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">automatic Pressure zone polygon drawing</div></li>
<li class="col" id="FMID_971524731FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Interoperability</div>
<ul class="subexp">
<li class="basic" id="FMID_366081979FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;"><a href="https://www.vd.ch/themes/environnement/eaux/eau-potable/systeme-dinformation-des-reseaux-deau-sire/">export SIRE</a> <a href="https://www.vd.ch/themes/environnement/eaux/eau-potable/systeme-dinformation-des-reseaux-deau-sire/"><img src="QWAT_Feature_grid.html_files/ilink.png" alt="User Link" style="border-width:0"/></a></div></li>
<li class="basic" id="FMID_1022639466FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;"><a href="http://www.sia.ch/en/services/sia-norm/">SIA compatible</a> <a href="http://www.sia.ch/en/services/sia-norm/"><img src="QWAT_Feature_grid.html_files/ilink.png" alt="User Link" style="border-width:0"/></a></div></li></ul></li>
<li class="basic" id="FMID_1768434870FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">GPS Import</div></li>
<li class="exp" id="FMID_954917120FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Document Management system</div>
<ul class="sub">
<li class="basic" id="FMID_1547061944FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">display document, picture and videos</div></li>
<li class="basic" id="FMID_897941828FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">wire to a dedicated DMS</div></li></ul></li>
<li class="basic" id="FMID_1966399008FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Constraints in QGIS</div></li></ul></li>
<li class="col" id="FMID_1741279862FM"><div class="nodecontent" style="color:#0066cc;background-color:#cce5ff;font-size:133%;font-weight:bold;">Missing Features</div>
<ul class="subexp">
<li class="exp" id="FMID_18859882FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Network routing</div>
<ul class="sub">
<li class="basic" id="FMID_87368744FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Network quality analysis</div></li>
<li class="basic" id="FMID_1759321277FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Find subscriber concerned by a leak</div></li>
<li class="basic" id="FMID_1460925513FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Identify involved valves in isolating a leak</div></li></ul></li>
<li class="exp" id="FMID_42581810FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Web Interface</div>
<ul class="sub">
<li class="basic" id="FMID_620814571FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Classical web App (wih editing capabilities)</div></li>
<li class="exp" id="FMID_895805801FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Cloud based offer ?</div>
<ul class="sub">
<li class="basic" id="FMID_828020359FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">PostgreSQL Hosting</div></li>
<li class="basic" id="FMID_1310578174FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Remote QGIS desktop</div></li>
<li class="basic" id="FMID_1701742834FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Web App</div></li></ul></li></ul></li>
<li class="basic" id="FMID_1380737865FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Pipe Profile visualization</div></li>
<li class="exp" id="FMID_1652308703FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Hydraulic modeling</div>
<ul class="sub">
<li class="basic" id="FMID_1115226935FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">EPANET tight linking</div></li></ul></li>
<li class="exp" id="FMID_838483895FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Mobility</div>
<ul class="sub">
<li class="basic" id="FMID_770801110FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Android client</div></li>
<li class="basic" id="FMID_507695243FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Offline / Online Sync</div></li></ul></li>
<li class="col" id="FMID_55665155FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Operational management</div>
<ul class="subexp">
<li class="exp" id="FMID_1187551156FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">field work Module</div>
<ul class="sub">
<li class="basic" id="FMID_309300355FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">subscriber notification module (mail, phone, email)</div></li></ul></li></ul></li>
<li class="exp" id="FMID_1924091547FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Full API on server side</div>
<ul class="sub">
<li class="basic" id="FMID_1734453863FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">enforce network constraints</div></li>
<li class="basic" id="FMID_1249171063FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">enforce logical rules</div></li></ul></li>
<li class="exp" id="FMID_1292938182FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Asset Management</div>
<ul class="sub">
<li class="basic" id="FMID_1625124782FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Statistic analysis for material changes</div></li>
<li class="basic" id="FMID_1155959121FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Budget planning</div></li></ul></li>
<li class="exp" id="FMID_388358311FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Productivity assistants</div>
<ul class="sub">
<li class="basic" id="FMID_1099985057FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">batch lateral creation</div></li>
<li class="basic" id="FMID_22847839FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">topology repair</div></li></ul></li>
<li class="exp" id="FMID_1340552149FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Open Source Governance</div>
<ul class="sub">
<li class="basic" id="FMID_1237815760FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Outsource meeting summary and roadmap ?</div></li>
<li class="basic" id="FMID_823843440FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">Outsource finances?</div></li></ul></li>
<li class="exp" id="FMID_295232386FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">National needs</div>
<ul class="sub">
<li class="exp" id="FMID_1376821656FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">France</div>
<ul class="sub">
<li class="basic" id="FMID_531600807FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">COVADIS export - Import</div></li>
<li class="basic" id="FMID_1528552438FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">DT-DICT response (GML request for automatic map editing)</div></li>
<li class="basic" id="FMID_80139961FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Cadastral file imports (EDIGEO)</div></li>
<li class="basic" id="FMID_1419539386FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">Fire Protection area - compute minimum legal distance to hydrant zones</div></li></ul></li></ul></li>
<li class="exp" id="FMID_518347235FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">User preferences</div>
<ul class="sub">
<li class="basic" id="FMID_478147461FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">store user styles</div></li>
<li class="basic" id="FMID_77445313FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">store user annotations</div></li></ul></li>
<li class="basic" id="FMID_389982233FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Validation workflow</div></li>
<li class="exp" id="FMID_338865961FM"><div class="nodecontent" style="color:#339900;background-color:#f0ffe9;font-size:117%;font-weight:bold;">Authentication</div>
<ul class="sub">
<li class="basic" id="FMID_301189857FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">NTLM / Oauth / LDAP</div></li>
<li class="exp" id="FMID_1997764044FM"><div class="nodecontent" style="color:#00002a;background-color:#ffffff;font-size:100%;font-weight:bold;">User Group profiles</div>
<ul class="sub">
<li class="basic" id="FMID_271523008FM"><div class="nodecontent" style="color:#111111;font-size:83%;font-weight:bold;">private features / layers</div></li></ul></li></ul></li></ul></li></ul></li></ul></div></body></html>
body {
background-color: #eeeeee;
color: #000000;
font-family:sans-serif;
}
:link { color: #0000ff; text-decoration:none;}
:visited { color: #6666ff; text-decoration:none; }
a:active { color: #0000ff; text-decoration:none;}
a:hover {color: #0000ff; text-decoration:underline; }
div.basetext {
background-color:#ffffff;
margin-top:11px;
margin-bottom:11px;
margin-left:1%;
margin-right:1%;
padding-top:11px;
padding-left:11px;
padding-right:11px;
padding-bottom:11px;
text-align:left;
font-weight:normal;
border-width:thin;
border-style:solid;
border-color:#dddddd;
}
div.basetop {
position: fixed;
width:auto;
height:auto;
right:0em;
top:0em;
left:auto;
top:0;
background-color:#ffffff;
margin-top:0;
margin-bottom:0;
margin-left:1%;
margin-right:1%;
padding-top:2px;
padding-left:11px;
padding-right:11px;
padding-bottom:2px;
text-align:left;
font-weight:normal;
text-align:right;
border-width:thin;
border-style:solid;
border-color:#dddddd;
}
div.nodecontent p:first-child {
display:inline;
}
div.nodecontent p + p:last-child {
margin-bottom:0;
}
h1 {
text-align:center;
}
span.h2 {
font-family:sans-serif;
font-weight:bold;
}
div.year {
margin-right:2%;
background-color:#eeeeee;
}
div.form {
}
span.cpt {
color:#005500;
font-weight:bold;
}
span.cm {
color:#666666;
}
.fl {
color:#0000FF;
font-style:italic;
}
ul {
margin-top:1px;
margin-bottom:1px;
margin-left:0px;
padding-left:3%;
}
li {
list-style:outside;
margin-top:10px;
margin-bottom:10px;
}
ul li {
list-style:square;
font-family:sans-serif;
font-weight:normal;
}
li.basic {
list-style:square;
list-style-image:none;
margin-top:2px;
margin-bottom:2px;
}
span.links {
}
.sub { display: none; }
.subexp {display: block; }
.sub { display: none; }
.subexp {display: block; }
li.exp {
list-style-image:url("plus.png");
margin-top:10px;
margin-bottom:10px;
cursor:pointer;
}
li.col {
list-style-image:url("minus.png");
margin-top:10px;
margin-bottom:10px;
cursor:pointer;
}
li.exp_active {
list-style-image:url("plus.png");
margin-top:10px;
margin-bottom:10px;
background-color:#eeeeff;
cursor:pointer;
}
li.col_active {
list-style-image:url("minus.png");
margin-top:10px;
margin-bottom:10px;
background-color:#eeeeff;
cursor:pointer; /* if not included, bullets are not shown right in moz*/
}
li.basic_active {
list-style:square;
list-style-image:none;
background-color:#eeeeff;
margin-top:2px;
margin-bottom:2px;
}
/* the 'boxed' and 'attributes' styles are used to display notes and attributes
*/
.boxed,.nodecontent {display:inline;}
.boxed .note-and-attributes {display:none;}
.boxed:hover .note-and-attributes {
position:fixed; top:2em;right:10px;z-index:3;
display:block;
min-width:33%;
max-width:60%;
max-height:95%;
color:black;
background:#ffffff;
font:normal 16px courier, sans-serif;
border:1px solid black;
padding:10px;
}
.note:before {
content:"NOTE: ";
font-weight:bold;
}
table.attributes {
border-collapse:collapse;
empty-cells:show;
border:thin black solid;
}
table.attributes td,th {
border:thin black solid;
padding-top:2px;
padding-bottom:2px;
padding-left:3px;
padding-right:3px;
}
table.attributes th {
text-align:center;
}
table.attributes caption {
margin-top:1em;
font-style:italic;
text-align:center;
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment