Toolbar.razor 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. 
  2. <div class="fr-toolbar fr-@WebReport.ID-toolbar">
  3. @if (WebReport.Toolbar.ShowRefreshButton && !WebReport.Report.IsLoadPrepared)
  4. {
  5. <div class="fr-toolbar-item fr-toolbar-pointer fr-@WebReport.ID-toolbar-item fr-webreport-pointer" @onclick="Reload" title="@Localization.reloadTxt">
  6. <img src="_content/FastReport.Web/Resources/reload.svg" />
  7. </div>
  8. }
  9. @if (WebReport.Toolbar.Exports.Show)
  10. {
  11. var exports = WebReport.Toolbar.Exports;
  12. <div class="fr-toolbar-item fr-@WebReport.ID-toolbar-item">
  13. <img src="_content/FastReport.Web/Resources/save.svg" />
  14. <div class="fr-toolbar-dropdown-content fr-@WebReport.ID-toolbar-dropdown-content">
  15. @if (exports.ShowPreparedReport)
  16. {
  17. <a target="_blank" href=@SaveFpx>@Localization.preparedTxt </a>
  18. @*if (WebReport.Toolbar.Exports.EnableSettings)
  19. {
  20. <button class="fr-webreport-settings-btn" @onclick="() => ClickSettingsExport(Exports.Prepared)"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  21. }*@
  22. }
  23. @if (exports.ShowPdfExport)
  24. {
  25. <a target="_blank" href=@SavePdf>@Localization.pdfTxt</a>
  26. if (WebReport.Toolbar.Exports.EnableSettings)
  27. {
  28. <button class="fr-webreport-settings-btn" @onclick="() => ClickSettingsExport(Exports.Pdf)"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  29. }
  30. }
  31. @if (exports.ShowExcel2007Export)
  32. {
  33. <a target="_blank" href=@SaveXlsx>@Localization.excel2007Txt</a>
  34. if (WebReport.Toolbar.Exports.EnableSettings)
  35. {
  36. <button @onclick="() => ClickSettingsExport(Exports.Excel2007)" class="fr-webreport-settings-btn"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  37. }
  38. }
  39. @if (exports.ShowWord2007Export)
  40. {
  41. <a target="_blank" href=@SaveDocx>@Localization.word2007Txt</a>
  42. if (WebReport.Toolbar.Exports.EnableSettings)
  43. {
  44. <button @onclick="() => ClickSettingsExport(Exports.Word2007)" class="fr-webreport-settings-btn"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  45. }
  46. }
  47. @if (exports.ShowPowerPoint2007Export)
  48. {
  49. <a target="_blank" href=@SavePowerPoint2007>@Localization.powerPoint2007Txt </a>
  50. if (WebReport.Toolbar.Exports.EnableSettings)
  51. {
  52. <button class="fr-webreport-settings-btn" @onclick="() => ClickSettingsExport(Exports.PowerPoint2007)"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  53. }
  54. }
  55. @if (exports.ShowTextExport)
  56. {<a target="_blank" href=@SaveText>@Localization.textTxt</a>}
  57. @if (exports.ShowRtfExport)
  58. {<a target="_blank" href=@SaveRtf>@Localization.rtfTxt</a>
  59. if (WebReport.Toolbar.Exports.EnableSettings)
  60. {
  61. <button class="fr-webreport-settings-btn" @onclick="() => ClickSettingsExport(Exports.Rtf)"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  62. }
  63. }
  64. @if (exports.ShowXpsExport)
  65. {<a target="_blank" href=@SaveXps>@Localization.xpsTxt</a>}
  66. @if (exports.ShowOdsExport)
  67. {<a target="_blank" href=@SaveOds>@Localization.odsTxt</a>
  68. if (WebReport.Toolbar.Exports.EnableSettings)
  69. {
  70. <button @onclick="() => ClickSettingsExport(Exports.Ods)" class="fr-webreport-settings-btn"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  71. }
  72. }
  73. @if (exports.ShowOdtExport)
  74. {<a _target="_blank" href=@SaveOdt>@Localization.odtTxt</a>
  75. if (WebReport.Toolbar.Exports.EnableSettings)
  76. {
  77. <button @onclick="() => ClickSettingsExport(Exports.Odt)" class="fr-webreport-settings-btn"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  78. }
  79. }
  80. @if (exports.ShowXmlExcelExport)
  81. {<a target="_blank" href=@SaveXmlExcel>@Localization.xmlTxt</a>
  82. if (WebReport.Toolbar.Exports.EnableSettings)
  83. {
  84. <button class="fr-webreport-settings-btn" @onclick="() => ClickSettingsExport(Exports.XmlExcel)"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  85. }
  86. }
  87. @if (exports.ShowCsvExport)
  88. {<a _target="_blank" href=@SaveCsv>@Localization.csvTxt</a>}
  89. @if (exports.ShowExcel97Export)
  90. {<a _target="_blank" href=@SaveBiff8>@Localization.excel97Txt</a>}
  91. @*@if (exports.ShowEmailExport)
  92. {<a _target="_blank" href=@SaveEmail>@Localization.emailTxt</a>}*@
  93. @if (exports.ShowHpglExport)
  94. {<a _target="_blank" href=@SaveHpgl>@Localization.hpglTxt</a>}
  95. @if (exports.ShowHTMLExport)
  96. {<a _target="_blank" href=@SaveHTML>@Localization.htmlTxt</a>
  97. if (WebReport.Toolbar.Exports.EnableSettings)
  98. {
  99. <button @onclick="() => ClickSettingsExport(Exports.HTML)" class="fr-webreport-settings-btn"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  100. }
  101. }
  102. @*@if (exports.ShowImageExport)
  103. {<a _target="_blank" href=@SaveImage>@Localization.imageTxt</a>
  104. if (WebReport.Toolbar.Exports.EnableSettings)
  105. {
  106. <button @onclick="() => ClickSettingsExport(Exports.Image)" class="fr-webreport-settings-btn"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  107. }
  108. }*@
  109. @if (exports.ShowJsonExport)
  110. {<a _target="_blank" href=@SaveJson>@Localization.jsonTxt</a>}
  111. @if (exports.ShowDxfExport)
  112. {<a _target="_blank" href=@SaveDxf>@Localization.dxfTxt</a>}
  113. @if (exports.ShowLaTeXExport)
  114. {<a _target="_blank" href=@SaveLaTeX>@Localization.latexTxt</a>}
  115. @if (exports.ShowPpmlExport)
  116. {<a _target="_blank" href=@SavePpml>@Localization.ppmlTxt</a>}
  117. @if (exports.ShowPSExport)
  118. {<a target="_blank" href=@SavePS>@Localization.psTxt</a>}
  119. @if (exports.ShowXamlExport)
  120. {<a _target="_blank" href=@SaveXaml>@Localization.xamlTxt</a>}
  121. @if (exports.ShowZplExport)
  122. {<a _target="_blank" href=@SaveZpl>@Localization.zplTxt</a>}
  123. @if (exports.ShowDbfExport)
  124. {<a _target="_blank" href=@SaveDbf>@Localization.dbfTxt</a>}
  125. @if (exports.ShowSvgExport)
  126. {<a target="_blank" href=@SaveSvg>@Localization.svgTxt</a>
  127. if (WebReport.Toolbar.Exports.EnableSettings)
  128. {
  129. <button class="fr-webreport-settings-btn" @onclick="() => ClickSettingsExport(Exports.Svg)"><img style="height:20px;" src="_content/FastReport.Web/Resources/settings.svg" /></button>
  130. }
  131. }
  132. </div>
  133. </div>
  134. }
  135. @if (WebReport.Toolbar.ShowPrint)
  136. {
  137. <div class="fr-toolbar-item fr-@WebReport.ID-toolbar-item" title="@Localization.printTxt">
  138. <img src="_content/FastReport.Web/Resources/print.svg" />
  139. <div class="fr-toolbar-dropdown-content fr-@WebReport.ID-toolbar-dropdown-content">
  140. @if (WebReport.Toolbar.PrintInHtml)
  141. {
  142. <a target="_blank" href=@PrintHtml>@Localization.printFromBrowserTxt</a>
  143. }
  144. @if (WebReport.Toolbar.PrintInPdf)
  145. {
  146. <a target="_blank" href=@PrintPdf>@Localization.printFromPdf</a>
  147. }
  148. </div>
  149. </div>
  150. }
  151. @if (WebReport.Toolbar.ShowZoomButton)
  152. {
  153. <div class="fr-toolbar-item fr-@WebReport.ID-toolbar-item">
  154. <img src="_content/FastReport.Web/Resources/magnifier.svg" title="@Localization.zoomTxt" style="transform: translateY(1px)" />
  155. <div class="fr-toolbar-dropdown-content fr-@WebReport.ID-toolbar-dropdown-content">
  156. @foreach (int zoom in zoomList)
  157. {
  158. <a @onclick="@(() => Zoom(zoom))">
  159. <div class="fr-webreport-zoom-selected">
  160. @if (currentZoom == zoom)
  161. {
  162. @zoomSymbol
  163. }
  164. </div>
  165. @zoom%
  166. </a>
  167. }
  168. </div>
  169. </div>
  170. }
  171. @if (!(WebReport.SinglePage || WebReport.TotalPages < 2))
  172. {
  173. <div class="fr-toolbar-item fr-toolbar-narrow fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-narrow @(isFirstPage ? $"fr-webreport-toolbar-notbutton fr-webreport-disabled": $"fr-webreport-pointer" )"
  174. @onclick="GotoFirst"
  175. Title="@Localization.firstPageTxt">
  176. <img src="_content/FastReport.Web/Resources/angle-double-left.svg" />
  177. </div>
  178. <div class="fr-toolbar-item fr-toolbar-narrow fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-narrow @(isFirstPage ? $"fr-webreport-toolbar-notbutton fr-webreport-disabled": $"fr-webreport-pointer" )"
  179. @onclick="GotoPrevious"
  180. Title="@Localization.previousPageTxt">
  181. <img src="_content/FastReport.Web/Resources/angle-left.svg" />
  182. </div>
  183. <div class="fr-toolbar-item fr-toolbar-notbutton fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-notbutton">
  184. <input class="fr-@WebReport.ID-current-page-input"
  185. type="text"
  186. @bind="InputValue"
  187. title="@Localization.currentPageTxt" />
  188. </div>
  189. <div class="fr-toolbar-item fr-toolbar-notbutton fr-toolbar-slash fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-notbutton fr-@WebReport.ID-toolbar-slash">
  190. <img src="_content/FastReport.Web/Resources/slash.svg" />
  191. </div>
  192. <div class="fr-toolbar-item fr-toolbar-notbutton fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-notbutton">
  193. <input type="text" value="@WebReport.TotalPages" readonly="readonly" title="@Localization.totalPagesTxt" />
  194. </div>
  195. <div class="fr-toolbar-item fr-toolbar-narrow fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-narrow @(isLastPage ? $"fr-webreport-toolbar-notbutton fr-webreport-disabled" : $"fr-webreport-pointer")"
  196. @onclick="GotoNext"
  197. title="@Localization.nextPageTxt">
  198. <img src="_content/FastReport.Web/Resources/angle-right.svg" />
  199. </div>
  200. <div class="fr-toolbar-item fr-toolbar-narrow fr-@WebReport.ID-toolbar-item fr-webreport-toolbar-narrow @(isLastPage ? $"fr-webreport-toolbar-notbutton fr-webreport-disabled" : $"fr-webreport-pointer")"
  201. @onclick="GotoLast"
  202. title="@Localization.lastPageTxt">
  203. <img src="_content/FastReport.Web/Resources/angle-double-right.svg" />
  204. </div>
  205. }
  206. </div>
  207. @if (WebReport.Tabs.Count > 1)
  208. {
  209. <Tabs WebReport="WebReport" />
  210. }
  211. @code {
  212. [Parameter]
  213. public WebReport WebReport { get; set; }
  214. [Parameter]
  215. public Action PageChanged { get; set; }
  216. [Parameter]
  217. public Action OpenModalDialog { get; set; }
  218. protected override void OnParametersSet()
  219. {
  220. Localization = new ToolbarLocalization(WebReport.Res);
  221. currentZoom = WebReport.Zoom * 100;
  222. isFirstPage = WebReport.CurrentPageIndex == 0;
  223. isLastPage = WebReport.CurrentPageIndex >= WebReport.TotalPages - 1;
  224. }
  225. }