From d8c46fbdb68341bd308bc48e9c3c1be7fbb70f92 Mon Sep 17 00:00:00 2001 From: Gehad elrobey Date: Sun, 1 Jun 2014 07:44:35 +0300 Subject: HTML: Create theme directory Create theme directory that contains the html templates copied to the exporting directory. - dive_export.html is the main html template. - light.css and sand.css are two separte themes. - list_lib.js is the main javascript library. Signed-off-by: Gehad elrobey Signed-off-by: Miika Turkia Signed-off-by: Dirk Hohndel --- theme/list_lib.js | 577 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 577 insertions(+) create mode 100644 theme/list_lib.js (limited to 'theme/list_lib.js') diff --git a/theme/list_lib.js b/theme/list_lib.js new file mode 100644 index 000000000..1a07dc384 --- /dev/null +++ b/theme/list_lib.js @@ -0,0 +1,577 @@ +var itemsToShow = new Array(); //list of indexes to all dives to view +var items = new Array(); +var start; //index of first element viewed in itemsToShow +var sizeofpage; //size of viewed page +var numberofwords=0; //just for stats +var olditemstoshow; //to reference the indexes to all dives if changed +////////////////////////////////// +// // +// View Model // +// // +////////////////////////////////// + +/** +*This Method view all items +*View N pages each of sizeofpage size items. +*starting from zero +*/ +function showAllDives(){ + for(var i=0 ; i < items.length ; i++){ + itemsToShow.push(i); + } + olditemstoshow = itemsToShow; + start=0; + viewInPage(); +} + +/** +*This function view the 'itemstoshow' in pages. +*It start from 'start' variable. +*It showes N pages each of sizeofpage size. +*/ +function viewInPage(){ + var end = start + sizeofpage -1; + if(end >= itemsToShow.length ) end = itemsToShow.length-1; + updateView(start,end); +} + +/** +*addHTML this Method puts the HTML of items of given indexes +*@param {array} indexes array of indexes to put in HTML +*/ +function updateView(start,end){ + var divelist = document.getElementById('diveslist'); + divelist.innerHTML=""; + for(var i=start;i<=end;i++){ + divelist.innerHTML+='
    '; + expand(document.getElementById(itemsToShow[i])); + items[itemsToShow[i]].expanded = true; + }; + view_pagging(start,end); +} + +/** +*addHTML this Method puts the HTML of items of given indexes +*@param {array} indexes array of indexes to put in HTML +*/ +function addHTML(indexes){ + var divelist = document.getElementById('diveslist'); + divelist.innerHTML=""; + for(var i=0;i'; + expand(document.getElementById(indexes[i])); + itemsToShow[indexes[i]].expanded = true; + }; +} + +/** +*This Method shows items in a range [start,end] +*@param {integer} start start from this index +*@param {integer} finish at this index. +*/ +function view_in_range(start,end){ + var ind = new Array(); + if(end>=itemsToShow.length)end=itemsToShow.length-1; + for(var i=start ; i <= end ; i++){ + ind.push(i); + } + addHTML(ind); + view_pagging(start,end); +} + + +function prev_page(){ + var end = start+sizeofpage-1; + if(start-sizeofpage>0){ + start-=sizeofpage; + } + else{ + start=0; + } + if(end-sizeofpage>0){ + end-=sizeofpage; + } + if(end>=itemsToShow.length){ + end = itemsToShow.length-1; + } + updateView(start,end) +} + +function next_page(){ + var end = start+sizeofpage-1; + if(end+sizeofpage=itemsToShow.length) break; + unexpand(document.getElementById(itemsToShow[i])); + items[itemsToShow[i]].expanded = false; + } +} + +function collapseAll(){ + for(var i=start;i=itemsToShow.length) break; + expand(document.getElementById(itemsToShow[i])); + items[itemsToShow[i]].expanded = true; + } +} + +function setNumberOfDives(e){ + var value = e.options[e.selectedIndex].value; + sizeofpage=parseInt(value); + var end = start + sizeofpage -1; + view_in_range(start,end); +} + +function toggleExpantion(ul){ + if(!items[ul.id].expanded) + { + expand(ul); + items[ul.id].expanded = true; + } + else + { + unexpand(ul); + items[ul.id].expanded = false; + } +} + +function expand(ul){ + ul.innerHTML = getlimited(items[ul.id]); + ul.style.padding='2px 10px 2px 10px'; +} +function unexpand(ul){ + ul.innerHTML = getExpanded(items[ul.id]); + ul.style.padding='3px 10px 3px 10px'; +} + +/////////////////////////////////////// +// +// Dive Model +// +////////////////////////////////////// + +function getlimited (dive) { + return '
    '+dive.subsurface_number+'
    '+ + '
    '+dive.date+'
    '+ + '
    '+dive.time+'
    '+ + '
    '+dive.location+'
    '+ + '
    '+dive.temperature.air+'
    '+ + '
    '+dive.temperature.water+'
    '; +}; + +function getExpanded (dive) { + return '
    Date: '+dive.date+ + '     Time: '+dive.time + + '     Location: '+'' + +dive.location +''+ + '
    Rating:'+putRating(dive.rating)+ + '   Visibilty:'+putRating(dive.visibility)+ + '
    '+ + '
    Air temp: '+dive.temperature.air+ + '    Water temp: '+dive.temperature.water + + '
    DiveMaster: '+dive.divemaster + + '

    Buddy:

    '+dive.buddy + + '
    Suit: '+dive.suit + + '
    Tags: '+putTags(dive.tags)+ + '

    Notes:

    ' + dive.notes +'
    '; +}; + +function putTags(tags){ + var result=""; + for(var i in tags){ + result+=''+tags[i]+''; + if(i items[iSmaller].location ; +} + +function cmpNumAsc(j,iSmaller){ + return items[j].subsurface_number < items[iSmaller].subsurface_number ; +} +function cmpNumDes(j,iSmaller){ + return items[j].subsurface_number > items[iSmaller].subsurface_number ; +} +function cmpTimeAsc(j,iSmaller){ + return items[j].time < items[iSmaller].time ; +} +function cmpTimeDes(j,iSmaller){ + return items[j].time > items[iSmaller].time ; +} +function cmpDateAsc(j,iSmaller){ + return items[j].date < items[iSmaller].date ; +} +function cmpDateDes(j,iSmaller){ + return items[j].date > items[iSmaller].date ; +} +function cmpAtempAsc(j,iSmaller){ + return parseInt(items[j].temperature.air) < parseInt(items[iSmaller].temperature.air) ; +} +function cmpAtempDes(j,iSmaller){ + return parseInt(items[j].temperature.air) > parseInt(items[iSmaller].temperature.air) ; +} +function cmpWtempAsc(j,iSmaller){ + return parseInt(items[j].temperature.water) < parseInt(items[iSmaller].temperature.water) ; +} +function cmpWtempDes(j,iSmaller){ + return parseInt(items[j].temperature.water) > parseInt(items[iSmaller].temperature.water) ; +} + +function sort_it(sortOn,function_){ + var res = new Array(); + var visited = new Array(itemsToShow.length); + for(var j=0;j= 0) ? true : false; +} + +Set.prototype.push = function(key) { + if(!this.contains(key)){ + this.keys.push(key); + } +}; + +Set.prototype.isEmpty = function() { + return this.keys.length<=0? true:false; +}; + +Set.prototype.forEach = function(do_){ + this.keys.forEach(do_); +}; + +Set.prototype.Union = function(another_set){ + if (another_set == null) { + return; + } + for(var i=0; i' + +trips[i].name+' ( '+trips[i].dives.length+' dives)'+'
'+'
'; + }; + for(var i=0;i'+getlimited(trips[trip].dives[j])+''; + } +} + +function unexpand_trip(trip){ + trips[trip].expanded = false; + var d = document.getElementById("trip_dive_list_"+trip); + d.innerHTML=''; +} + +function getItems(){ + var count = 0; + for(var i in trips){ + for(var j in trips[i].dives){ + items[count++]=trips[i].dives[j]; + } + } +} -- cgit v1.2.3-70-g09d2