Skip to content
Snippets Groups Projects
Commit d36eb24c authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

update js

parent 8cf71f53
No related branches found
No related tags found
1 merge request!3Abstract ubd class
...@@ -25,6 +25,7 @@ const OUT_ID_APPS='app-section'; ...@@ -25,6 +25,7 @@ const OUT_ID_APPS='app-section';
const OUT_ID_TAGS='tag-section'; const OUT_ID_TAGS='tag-section';
const ID_TAGINPUT='E_TAGS'; const ID_TAGINPUT='E_TAGS';
// callback object after changing a tag filter // callback object after changing a tag filter
const FILTER_CALLBACK="oUbdApps.update()"; const FILTER_CALLBACK="oUbdApps.update()";
...@@ -34,6 +35,7 @@ const FILTER_CALLBACK="oUbdApps.update()"; ...@@ -34,6 +35,7 @@ const FILTER_CALLBACK="oUbdApps.update()";
var AM_TAGURL=false; var AM_TAGURL=false;
var AM_PRETTYURL=false; var AM_PRETTYURL=false;
var AM_TAGLIST={};
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// FUNCTIONS // FUNCTIONS
...@@ -104,44 +106,29 @@ function _2digits(i){ ...@@ -104,44 +106,29 @@ function _2digits(i){
* callback function of a button with a tagname * callback function of a button with a tagname
* @param {string} tagname * @param {string} tagname
*/ */
function tagToggle(tagname){ function cbTagToggle(bClear=false){
var o=document.getElementById(ID_TAGINPUT); var sReturn='';
var sLast=o.value; var sLast=document.getElementById(ID_TAGINPUT).value;
var s=sLast; var aCB=document.querySelectorAll('#'+OUT_ID_TAGS+' input[type=checkbox]');
var re = new RegExp(",*"+tagname); for(var i=0; i<aCB.length; i++){
var s2=s.replace(re, ""); if(aCB[i].checked && bClear==false){
if(s2!==s) { sReturn+=(sReturn ? ',' : '') + aCB[i].value;
s=s.replace(re, "")
s=s.replace(/^,/, "");
} else { } else {
s+=(s ? "," : "" ) + tagname; aCB[i].checked=false;
} }
if(s!==sLast){
o.value=s;
// execute update of the app list
eval(FILTER_CALLBACK);
} }
} if(sLast!==sReturn){
document.getElementById(ID_TAGINPUT).value=sReturn;
/**
* clear all tags
* callback function of the [x] button
*/
function tagClear(){
var o=document.getElementById(ID_TAGINPUT);
o.value="";
// execute update of the app list
eval(FILTER_CALLBACK); eval(FILTER_CALLBACK);
} }
}
/** /**
* called from getTags * called from getTags
* @param {object} aData JSON Response * @param {object} aData JSON Response
* @returns * @returns
*/ */
function _getTaglist(aData){ function _renderTaglist(aData){
var sReturn=''; var sReturn='';
var sTags=''; var sTags='';
if(!aData['tags']){ if(!aData['tags']){
...@@ -149,17 +136,32 @@ function _getTaglist(aData){ ...@@ -149,17 +136,32 @@ function _getTaglist(aData){
} }
// sReturn+='<code>'+sData+'</code><br>'; // sReturn+='<code>'+sData+'</code><br>';
sReturn+='<input id="'+ID_TAGINPUT+'" type="text" size="20" value="'+AM_TAGS+'"'
+' onkeyup="eval(FILTER_CALLBACK)"'
+' onchange="eval(FILTER_CALLBACK)"'
+'>'
+'<button onclick="tagClear();return false;"> ❌ </button><br>'
;
let _TAGLIST={};
var sTags='';
for (var s in aData['tags']){ for (var s in aData['tags']){
sTags+=(sTags ? ",": "") + aData['tags'][s]; var sTag=aData['tags'][s];
sReturn+='<button onclick="tagToggle(\''+aData['tags'][s]+'\'); return false;">'+AM_ICONS['tag'] + ' ' + aData['tags'][s]+'</button>' var sId='cb-tag-'+sTag;
var bEnabled=AM_TAGS.indexOf(sTag)>-1;
_TAGLIST[s]=bEnabled;
sReturn+='<input type="checkbox" id="'+sId+'" '
+(_TAGLIST[s] ? 'checked="checked" ' : '')
+'onchange="cbTagToggle();" '
+'value="'+aData['tags'][s]
+'">'
+'<label for="'+sId+'" >'+AM_ICONS['tag'] + ' ' + aData['tags'][s]+'</label> '
;
sTags+=(_TAGLIST[s]
? (sTags ? ',' : '' ) + sTag
: ''
);
} }
sReturn+='<button onclick="cbTagToggle(true);return false;"> ❌ </button>'
// sReturn+='<input id="'+ID_TAGINPUT+'" type="text" size="20" value="'+AM_TAGS+'"'+'>'
sReturn+='<input id="'+ID_TAGINPUT+'" type="hidden" size="20" value="'+AM_TAGS+'">'
AM_TAGLIST=_TAGLIST;
// cbTagToggle();
return sReturn; return sReturn;
} }
...@@ -277,7 +279,7 @@ var oUbdTag=new ubd( ...@@ -277,7 +279,7 @@ var oUbdTag=new ubd(
'domid': OUT_ID_TAGS, 'domid': OUT_ID_TAGS,
'url': _getUrlForTags(), 'url': _getUrlForTags(),
'header': { "headers": oHeaders }, 'header': { "headers": oHeaders },
'renderer': _getTaglist, 'renderer': _renderTaglist,
'ttl': 0, 'ttl': 0,
} }
); );
...@@ -295,7 +297,7 @@ var oUbdApps=new ubd( ...@@ -295,7 +297,7 @@ var oUbdApps=new ubd(
// fill in initial values // fill in initial values ... and update based on given ttl
oUbdTag.update(); oUbdTag.update();
oUbdApps.update(); oUbdApps.update();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment