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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 31.999999 31.999999" xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs>
<linearGradient id="a" y2="264.85" gradientUnits="userSpaceOnUse" y1="264.85" x2="533.3" x1="536.23">
<stop stop-color="#000d68" stop-opacity=".85841" offset="0"/>
<stop stop-color="#84f1f4" offset="1"/>
</linearGradient>
<linearGradient id="b" y2="237.66" gradientUnits="userSpaceOnUse" y1="237.49" gradientTransform="matrix(1.4584 0 0 .67677 -592.79 376.47)" x2="530.58" x1="534.6">
<stop stop-color="#000080" offset="0"/>
<stop stop-color="#8afbf9" offset="1"/>
</linearGradient>
</defs>
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-71.48 -34.283)">
<g stroke-linejoin="round" transform="matrix(.96865 0 0 .98756 -91.237 -485.34)" stroke="#000" stroke-linecap="round">
<path d="m538.37 264.85a2.9444 4.1057 0 0 1 -2.9444 4.1057 2.9444 4.1057 0 0 1 -2.9444 -4.1057 2.9444 4.1057 0 0 1 2.9444 -4.1057 2.9444 4.1057 0 0 1 2.9444 4.1057z" stroke-opacity=".99419" transform="matrix(.97368 0 0 .67111 -336.72 377.62)" stroke-width="1.2371" fill="url(#a)"/>
<path d="m184.63 550.22c-1.3315-0.18121-1.7802-1.5268-2.051-3.0189-0.3799-6.0957-0.88218-9.7293-1.6175-11.848-0.35046-1.5739-1.0241-3.0394-1.0553-5.1012 0.28568-1.7241 1.9528-3.5749 4.9265-3.4695 1.8879 0.009 3.9968 1.1312 4.256 3.3724-0.0344 2.0124-0.70672 3.5596-1.1922 5.2962-0.83998 2.5402-1.0764 6.4674-1.1807 11.83-0.32619 1.8247-0.74757 2.9708-2.086 2.9385z" fill-rule="evenodd" stroke-width="1.1415" fill="url(#b)"/>
</g>
<rect rx=".16552" ry=".18513" height="32" width="32" y="34.283" x="71.48" fill="none"/>
</g>
</svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment