Tlačítko fullscreen – pre všetky reporty v Power BI Report Serveri

Power BI Report Server má dlhodobo jednu chybu – chýba mu tlačítko na zobrazenie reportov na celú obrazovku, alebo fullscreen. A nevyriešila to ani najnovšia septembrová verzia. Existuje síce hack, ako pridať jeden parameter do URL adresy pri prezeraní reportu, ale to je jednak otravné, a ani to nemôžete vyžadovať od bežných užívateľov. Existuje však jednoduchá možnosť, ako si tam pridať tlačítko pre všetky reporty na serveri. A je nasaditeľná aj automatizovane v podnikovom prostredí.

Tým trikom je pridanie záložky do vášho webového prehliadača, ktorá obsahuje javascriptový kód, ktorý zväčší plochu reportu na celú obrazovku. A funguje vo všetkých bežných prehliadačoch webu, vrátane Safari. Ak sa to podarí, tak si môžete každý report prepnúť na celú obrazovku tlačítkom. A užívatelia to nemusia obchádzať report po reporte, pridávaním parametru “rs:embed=true” do URL reportu a stláčaním F11, ako som to už popísal v tomto článku. Namiesto toho si teraz ukážeme, ako to ide spraviť na jedno tlačítko fullscreen, ktoré bude fungovať pre všetky reporty.

Javascriptový kód

Najprv si potrebujete stiahnuť ten javascriptový kód z Githubu. Autorom je Tommaso Capelli, a dá sa stiahnuť z tohto odkazu. V prípade, že by tam už nebol, tak tu je jeho kópia:

javascript:(function(){elements = document.getElementsByClassName('pbi-frame');element = elements[0];if(element.requestFullscreen) {    element.requestFullscreen();  } else if(element.mozRequestFullScreen) {    element.mozRequestFullScreen();  } else if(element.webkitRequestFullscreen) {    element.webkitRequestFullscreen();  } else if(element.msRequestFullscreen) {    element.msRequestFullscreen();  }})();

V skratke, tento javascriptový kód vyhľadá na stránke HTML element, ktorý je naštýlovaný pomocou CSS triedy “pbi-frame”. Potom skúsi ten element, vrátane jeho obsahu – čiže čistú plochu reportu bez hlavičiek – zväčšiť na celú obrazovku. Skúša to viacerými spôsobmi, pretože viaceré prehliadače to majú inak… Klasický prehliadačový bordel.

Pridanie do prehliadača

Tento javascriptový kód teraz potrebujeme pridať do prehliadača. Vo svojom webovom prehliadači potrebujete vytvoriť záložku (resp. po anglicky “bookmark”), ktorej nastavíte adresu odkazu na ten javascriptový kód. Záložka po kliknutí na ňu následne namiesto prepnutia sa na inú webstránku, vyvolá tento Javascript, a zobrazí aktuálne zobrazený report na celej obrazovke. Takejto špeciálnej javascriptovej záložke sa v angličtine vraví “bookmarklet”, a dajú sa ňou robiť kadejaké triky s webstránkami.

Návod, ako vytvoriť záložku v každom webovom prehliadači, nájdete napr. na tejto webovej stránke.

Po vytvorení záložky s názvom napr. “Zväčši report”, a odkazom zadaným ako hore uvedený javascriptový kód, sa záložka v prehliadači Chrome zobrazí napr. takto (je potrebné zapnúť si panel zo záložkami):

Power BI Report Server tlačítko fullscreen - na celú obrazovku

A po kliknutí naň, prepne report do klasického zobrazenia na celú obrazovku:

Firefox a jeho bezpečnosť pre tlačítko fullscreen

Tento skript som skúšal v IE11, aktuálnom Firefoxe a Chrome, a išiel bez problémov. Jedine vo Firefoxe občas nefungoval, a dával takéto chybové hlásenie:

“Request for fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.”

To je kvôli príliš silným bezpečnostným nastaveniam Firefoxu. Ak to chcete rozbehať, treba ich vypnúť podľa návodu na tejto stránke. Je tam toho viac, tak si dajte vyhľadať frázu “full-screen-api.allow-trusted-requests-only”, a postupujte podľa toho textu. To by to malo rozbehať aj vo Firefoxe.

A máme tlačítko fullscreen

Takto teda pridáte tlačítko do webového prehliadača, ktoré vám zobrazí report na celú obrazovku, v klasickom režime fullscreen, ako to robia aj iné webové stránky. Možno bude vo vašom prípade potrebovať ešte miernu úpravu, lebo váš prehliadač môže mať iné nastavenia, alebo sa časom môže správanie prehliadačov zmeniť. Každopádne, ako iné hacky, aj toto riešenie je bez záruky. A ak vám nefunguje, tak pohľadajte v debuggeri alebo logoch, prečo to nejde, a mali by ste to vedieť upraviť na svoje potreby. Lebo raz ten fullscreen naozaj zafunguje 🙂

A dobré je vedieť to, že záložky sú vo webových prehliadačoch zvyčajne ukladané buď ako samostatné súbory, alebo záznamy v registroch. Tým pádom je možné takéto záložky distribuovať aj automatizovane medzi užívateľov, napr. cez skupinové politiky Active Directory, alebo System Center. Takže je to nasaditeľné aj vo veľkých podnikoch, ak vám táto otázka náhodou nedala spať 😉