Commit 3787f2fc authored by jan.koester's avatar jan.koester
Browse files

tets

parent 3e484105
Loading
Loading
Loading
Loading
+15 −14
Original line number Diff line number Diff line
@@ -72,13 +72,10 @@ namespace blogi {

                libhtmlpp::HtmlElement *script = new libhtmlpp::HtmlElement("script");
                libhtmlpp::ScriptElement js;
                js.setScript(R"JS(
(function(){
  var cs = document.currentScript;
  var root = cs ? cs.previousElementSibling : null;
  if(!root) return;
  var uid = root.id;

                std::string jsCode =
                    std::string("(function(){\n  var root=document.getElementById('") + uid +
                    std::string("');\n  if(!root) return;\n  var uid=root.id;\n") +
                    R"JS(
  if(!document.getElementById(uid+'_css')){
    var st = document.createElement('style');
    st.id = uid+'_css';
@@ -90,7 +87,7 @@ namespace blogi {
      '#'+uid+' .gr-avg{font-size:2.2em;font-weight:700;color:#222;line-height:1;}'+
      '#'+uid+' .gr-avgstars{color:#ffb400;font-size:1.15em;margin:4px 0 2px;}'+
      '#'+uid+' .gr-cnt{font-size:.82em;color:#888;}'+
      '#'+uid+' .gr-wrap{position:relative;flex:1;overflow:hidden;}'+
      '#'+uid+' .gr-wrap{position:relative;flex:1;}'+
      '#'+uid+' .gr-vp{overflow:hidden;}'+
      '#'+uid+' .gr-track{display:flex;transition:transform .4s ease;gap:16px;}'+
      '#'+uid+' .gr-card{flex:0 0 calc(33.333% - 11px);max-width:calc(33.333% - 11px);background:#f9fafb;border-radius:14px;padding:16px;display:flex;flex-direction:row;gap:12px;border:1px solid rgba(148,163,184,.3);box-sizing:border-box;}'+
@@ -126,6 +123,9 @@ namespace blogi {
    for(var i=0;i<5;i++) s+=(i<n)?'&#9733;':'&#9734;';
    return s;
  }
  function escHtml(s){
    return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
  }
  function formatDate(ts){
    if(!ts) return '';
    var n=Number(ts);
@@ -160,14 +160,15 @@ namespace blogi {

    var track=root.querySelector('.gr-track');
    reviews.forEach(function(r){
      var name=r.author_name||'Anonym';
      var rawName=String(r.author_name||'Anonym');
      var name=escHtml(rawName);
      var full=String(r.text||'');
      var isLong=full.length>100;
      var short=isLong?full.slice(0,100)+'…':full;
      var short=isLong?escHtml(full.slice(0,100))+'…':escHtml(full);
      var photoUrl=String(r.author_photo_url||'');
      var avatarHtml=photoUrl
        ? '<img class="gr-av gr-av-img" src="'+photoUrl+'" alt="'+name+'" loading="lazy">'
        : '<div class="gr-av" style="background:'+avColor(name)+'">'+name.charAt(0).toUpperCase()+'</div>';
        ? '<img class="gr-av gr-av-img" src="'+escHtml(photoUrl)+'" alt="'+name+'" loading="lazy">'
        : '<div class="gr-av" style="background:'+avColor(rawName)+'">'+escHtml(rawName.charAt(0).toUpperCase())+'</div>';
      var card=document.createElement('div');
      card.className='gr-card';
      card.innerHTML=
@@ -214,8 +215,8 @@ namespace blogi {
      console.error('GoogleReviews widget:', e);
      root.textContent='Bewertungen konnten nicht geladen werden.';
    });
})();
)JS");
})();)JS";
                js.setScript(jsCode.c_str());
                script->appendChild(js);
                el.appendChild(script);
            }