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

update js

parent 8cf71f53
Branches
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