Loading plugins/survey/survey.cpp +20 −11 Changes for plugins/survey/survey.cpp: 20 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -3481,10 +3481,18 @@ namespace blogi { << ".se-q-header .se-q-id{font-weight:700;color:var(--blogi-accent,#2da82d);}" << ".se-q-actions button{background:none;border:none;cursor:pointer;font-size:1.1em;padding:2px 6px;color:var(--blogi-text-muted,#888);}" << ".se-q-actions button:hover{color:var(--blogi-error,#F36947);}" << ".se-q-row{display:grid;grid-template-columns:1fr 120px 80px;gap:8px;margin-bottom:8px;align-items:end;}" << ".se-q-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-bottom:8px;align-items:end;}" << ".se-q-row label{display:block;font-size:.85em;font-weight:600;margin-bottom:2px;color:var(--blogi-text-muted,#666);}" << ".se-q-row input,.se-q-row select{width:100%;padding:6px 8px;border:1px solid var(--blogi-border,#ddd);border-radius:4px;font-size:.9em;background:var(--blogi-surface,#fff);color:var(--blogi-text,#333);}" << ".se-q-row input{width:100%;padding:6px 8px;border:1px solid var(--blogi-border,#ddd);border-radius:4px;font-size:.9em;background:var(--blogi-surface,#fff);color:var(--blogi-text,#333);}" << ".se-q-row input[type=checkbox]{width:auto;}" << ".se-type-row{margin-bottom:8px;}" << ".se-type-row>label{display:block;font-size:.85em;font-weight:600;margin-bottom:4px;color:var(--blogi-text-muted,#666);}" << ".se-type-picker{display:flex;flex-wrap:wrap;gap:4px;}" << ".se-type-btn{display:flex;flex-direction:column;align-items:center;padding:6px 10px;border:1px solid var(--blogi-border,#555);border-radius:6px;cursor:pointer;background:var(--blogi-bg-alt,#3a3e42);color:var(--blogi-text-muted,#aaa);min-width:52px;transition:.15s;gap:3px;}" << ".se-type-btn:hover{border-color:var(--blogi-accent,#2da82d);color:var(--blogi-accent,#2da82d);background:var(--blogi-surface,#444);}" << ".se-type-btn.active{border-color:var(--blogi-accent,#2da82d);background:var(--blogi-success-bg,#1e3a1e);color:var(--blogi-accent,#2da82d);font-weight:700;}" << ".se-type-icon{font-size:1.4em;line-height:1;}" << ".se-type-label{font-size:.7em;}" << ".se-opts{margin-top:8px;padding-top:8px;border-top:1px solid var(--blogi-border,#eee);}" << ".se-opts h4{margin:0 0 6px;font-size:.85em;color:var(--blogi-text-muted,#888);}" << ".se-opt-row{display:grid;grid-template-columns:1fr 1fr 1fr 30px;gap:6px;margin-bottom:6px;align-items:start;}" Loading Loading @@ -3596,13 +3604,15 @@ namespace blogi { << "h+='</div></div>';" << "h+='<div class=\"se-q-row\">';" << "h+='<div><label>Fragetext</label><input class=\"se-qtext\" value=\"'+esc(q.text||'')+'\"/></div>';" << "h+='<div><label>Typ</label><select class=\"se-qtype\">';" << "var types=['radio','checkbox','text','select','rating','image','icon'];" << "for(var t=0;t<types.length;t++){h+='<option value=\"'+types[t]+'\"'+(q.type===types[t]?' selected':'')+'>'+types[t]+'</option>';}" << "h+='</select></div>';" << "h+='<div><label>Pflicht</label><br/><input type=\"checkbox\" class=\"se-qreq\"'+(q.required?' checked':'')+'/></div>';" << "h+='<div><label>Reihenfolge</label><input type=\"number\" class=\"se-qorder\" value=\"'+(q.order||0)+'\" style=\"width:60px\"/></div>';" << "if(q.type==='icon'){h+='<div><label>Mehrfach</label><br/><input type=\"checkbox\" class=\"se-qmulti\"'+(q.multiSelect?' checked':'')+'/></div>';}" << "h+='</div>';" << "h+='<div style=\"display:none\"><input class=\"se-qtype\" value=\"'+esc(q.type||'radio')+'\"/></div>';" << "h+='<div class=\"se-type-row\"><label>Typ</label><div class=\"se-type-picker\">';" << "var typeDefs=[{v:'radio',ic:'◉',lb:'Radio'},{v:'checkbox',ic:'☑',lb:'Check'},{v:'text',ic:'Aa',lb:'Text'},{v:'select',ic:'☰',lb:'Select'},{v:'rating',ic:'★',lb:'Rating'},{v:'image',ic:'📷',lb:'Image'},{v:'icon',ic:'⊞',lb:'Icon'}];" << "for(var t=0;t<typeDefs.length;t++){var td=typeDefs[t];h+='<button type=\"button\" class=\"se-type-btn'+(q.type===td.v?' active':'')+'\"'+' data-type=\"'+td.v+'\"><span class=\"se-type-icon\">'+td.ic+'</span><span class=\"se-type-label\">'+td.lb+'</span></button>';}" << "h+='</div>';" << "if(q.type==='icon'){h+='<div style=\"margin-top:4px\"><label style=\"font-size:.85em;color:var(--blogi-text-muted,#666)\">Mehrfach </label><input type=\"checkbox\" class=\"se-qmulti\"'+(q.multiSelect?' checked':'')+'/></div>';}" << "h+='</div>';" << "h+='<div style=\"display:none\"><input class=\"se-qid\" value=\"'+esc(q.id)+'\"/></div>';" << "if(q.type==='rating'){" Loading Loading @@ -3647,10 +3657,9 @@ namespace blogi { << "else if(t.classList.contains('se-q-down')){readForm();var qe=t.closest('.se-question');var idx=parseInt(qe.getAttribute('data-idx'));if(idx<survey.questions.length-1){var tmp=survey.questions[idx];survey.questions[idx]=survey.questions[idx+1];survey.questions[idx+1]=tmp;var tmpO=survey.questions[idx].order;survey.questions[idx].order=survey.questions[idx-1].order;survey.questions[idx-1].order=tmpO;render();}}" << "else if(t.classList.contains('se-opt-del')){readForm();var row=t.closest('.se-opt-row');var qe=t.closest('.se-question');var qi=parseInt(qe.getAttribute('data-idx'));var opts=qe.querySelectorAll('.se-opt-row');for(var i=0;i<opts.length;i++){if(opts[i]===row){survey.questions[qi].options.splice(i,1);break;}}render();}" << "else if(t.classList.contains('se-add-opt')){readForm();var qe=t.closest('.se-question');var qi=parseInt(qe.getAttribute('data-idx'));survey.questions[qi].options.push({value:'',label:'',excludes:'',icon:''});render();}" << "else if(t.classList.contains('se-pick-icon')){var inp=t.previousElementSibling;if(inp)openMediaPicker(inp);}};" << "var typeSelects=el.querySelectorAll('.se-qtype');" << "for(var i=0;i<typeSelects.length;i++){" << "typeSelects[i].addEventListener('change',function(){readForm();render();});}}" << "else if(t.classList.contains('se-pick-icon')){var inp=t.previousElementSibling;if(inp)openMediaPicker(inp);}" << "else{var btn=t.closest?t.closest('.se-type-btn'):null;if(btn){var qe=btn.closest('.se-question');var inp=qe?qe.querySelector('.se-qtype'):null;if(inp)inp.value=btn.getAttribute('data-type');readForm();render();}}};" << "}}" << "" // media picker for icon type << "function getAuthId(){var m=document.cookie.match(/authid=([^;]+)/);return m?m[1]:null;}" Loading Loading
plugins/survey/survey.cpp +20 −11 Changes for plugins/survey/survey.cpp: 20 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -3481,10 +3481,18 @@ namespace blogi { << ".se-q-header .se-q-id{font-weight:700;color:var(--blogi-accent,#2da82d);}" << ".se-q-actions button{background:none;border:none;cursor:pointer;font-size:1.1em;padding:2px 6px;color:var(--blogi-text-muted,#888);}" << ".se-q-actions button:hover{color:var(--blogi-error,#F36947);}" << ".se-q-row{display:grid;grid-template-columns:1fr 120px 80px;gap:8px;margin-bottom:8px;align-items:end;}" << ".se-q-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;margin-bottom:8px;align-items:end;}" << ".se-q-row label{display:block;font-size:.85em;font-weight:600;margin-bottom:2px;color:var(--blogi-text-muted,#666);}" << ".se-q-row input,.se-q-row select{width:100%;padding:6px 8px;border:1px solid var(--blogi-border,#ddd);border-radius:4px;font-size:.9em;background:var(--blogi-surface,#fff);color:var(--blogi-text,#333);}" << ".se-q-row input{width:100%;padding:6px 8px;border:1px solid var(--blogi-border,#ddd);border-radius:4px;font-size:.9em;background:var(--blogi-surface,#fff);color:var(--blogi-text,#333);}" << ".se-q-row input[type=checkbox]{width:auto;}" << ".se-type-row{margin-bottom:8px;}" << ".se-type-row>label{display:block;font-size:.85em;font-weight:600;margin-bottom:4px;color:var(--blogi-text-muted,#666);}" << ".se-type-picker{display:flex;flex-wrap:wrap;gap:4px;}" << ".se-type-btn{display:flex;flex-direction:column;align-items:center;padding:6px 10px;border:1px solid var(--blogi-border,#555);border-radius:6px;cursor:pointer;background:var(--blogi-bg-alt,#3a3e42);color:var(--blogi-text-muted,#aaa);min-width:52px;transition:.15s;gap:3px;}" << ".se-type-btn:hover{border-color:var(--blogi-accent,#2da82d);color:var(--blogi-accent,#2da82d);background:var(--blogi-surface,#444);}" << ".se-type-btn.active{border-color:var(--blogi-accent,#2da82d);background:var(--blogi-success-bg,#1e3a1e);color:var(--blogi-accent,#2da82d);font-weight:700;}" << ".se-type-icon{font-size:1.4em;line-height:1;}" << ".se-type-label{font-size:.7em;}" << ".se-opts{margin-top:8px;padding-top:8px;border-top:1px solid var(--blogi-border,#eee);}" << ".se-opts h4{margin:0 0 6px;font-size:.85em;color:var(--blogi-text-muted,#888);}" << ".se-opt-row{display:grid;grid-template-columns:1fr 1fr 1fr 30px;gap:6px;margin-bottom:6px;align-items:start;}" Loading Loading @@ -3596,13 +3604,15 @@ namespace blogi { << "h+='</div></div>';" << "h+='<div class=\"se-q-row\">';" << "h+='<div><label>Fragetext</label><input class=\"se-qtext\" value=\"'+esc(q.text||'')+'\"/></div>';" << "h+='<div><label>Typ</label><select class=\"se-qtype\">';" << "var types=['radio','checkbox','text','select','rating','image','icon'];" << "for(var t=0;t<types.length;t++){h+='<option value=\"'+types[t]+'\"'+(q.type===types[t]?' selected':'')+'>'+types[t]+'</option>';}" << "h+='</select></div>';" << "h+='<div><label>Pflicht</label><br/><input type=\"checkbox\" class=\"se-qreq\"'+(q.required?' checked':'')+'/></div>';" << "h+='<div><label>Reihenfolge</label><input type=\"number\" class=\"se-qorder\" value=\"'+(q.order||0)+'\" style=\"width:60px\"/></div>';" << "if(q.type==='icon'){h+='<div><label>Mehrfach</label><br/><input type=\"checkbox\" class=\"se-qmulti\"'+(q.multiSelect?' checked':'')+'/></div>';}" << "h+='</div>';" << "h+='<div style=\"display:none\"><input class=\"se-qtype\" value=\"'+esc(q.type||'radio')+'\"/></div>';" << "h+='<div class=\"se-type-row\"><label>Typ</label><div class=\"se-type-picker\">';" << "var typeDefs=[{v:'radio',ic:'◉',lb:'Radio'},{v:'checkbox',ic:'☑',lb:'Check'},{v:'text',ic:'Aa',lb:'Text'},{v:'select',ic:'☰',lb:'Select'},{v:'rating',ic:'★',lb:'Rating'},{v:'image',ic:'📷',lb:'Image'},{v:'icon',ic:'⊞',lb:'Icon'}];" << "for(var t=0;t<typeDefs.length;t++){var td=typeDefs[t];h+='<button type=\"button\" class=\"se-type-btn'+(q.type===td.v?' active':'')+'\"'+' data-type=\"'+td.v+'\"><span class=\"se-type-icon\">'+td.ic+'</span><span class=\"se-type-label\">'+td.lb+'</span></button>';}" << "h+='</div>';" << "if(q.type==='icon'){h+='<div style=\"margin-top:4px\"><label style=\"font-size:.85em;color:var(--blogi-text-muted,#666)\">Mehrfach </label><input type=\"checkbox\" class=\"se-qmulti\"'+(q.multiSelect?' checked':'')+'/></div>';}" << "h+='</div>';" << "h+='<div style=\"display:none\"><input class=\"se-qid\" value=\"'+esc(q.id)+'\"/></div>';" << "if(q.type==='rating'){" Loading Loading @@ -3647,10 +3657,9 @@ namespace blogi { << "else if(t.classList.contains('se-q-down')){readForm();var qe=t.closest('.se-question');var idx=parseInt(qe.getAttribute('data-idx'));if(idx<survey.questions.length-1){var tmp=survey.questions[idx];survey.questions[idx]=survey.questions[idx+1];survey.questions[idx+1]=tmp;var tmpO=survey.questions[idx].order;survey.questions[idx].order=survey.questions[idx-1].order;survey.questions[idx-1].order=tmpO;render();}}" << "else if(t.classList.contains('se-opt-del')){readForm();var row=t.closest('.se-opt-row');var qe=t.closest('.se-question');var qi=parseInt(qe.getAttribute('data-idx'));var opts=qe.querySelectorAll('.se-opt-row');for(var i=0;i<opts.length;i++){if(opts[i]===row){survey.questions[qi].options.splice(i,1);break;}}render();}" << "else if(t.classList.contains('se-add-opt')){readForm();var qe=t.closest('.se-question');var qi=parseInt(qe.getAttribute('data-idx'));survey.questions[qi].options.push({value:'',label:'',excludes:'',icon:''});render();}" << "else if(t.classList.contains('se-pick-icon')){var inp=t.previousElementSibling;if(inp)openMediaPicker(inp);}};" << "var typeSelects=el.querySelectorAll('.se-qtype');" << "for(var i=0;i<typeSelects.length;i++){" << "typeSelects[i].addEventListener('change',function(){readForm();render();});}}" << "else if(t.classList.contains('se-pick-icon')){var inp=t.previousElementSibling;if(inp)openMediaPicker(inp);}" << "else{var btn=t.closest?t.closest('.se-type-btn'):null;if(btn){var qe=btn.closest('.se-question');var inp=qe?qe.querySelector('.se-qtype'):null;if(inp)inp.value=btn.getAttribute('data-type');readForm();render();}}};" << "}}" << "" // media picker for icon type << "function getAuthId(){var m=document.cookie.match(/authid=([^;]+)/);return m?m[1]:null;}" Loading