two-factor-challenge.tpl 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. {*
  2. **********************************************************
  3. * Developed by: Team Theme Metro
  4. * Website: http://www.thememetro.com
  5. **********************************************************
  6. *}
  7. {if $themesettings.clientarea.loginpagestyle eq ""}
  8. <div id="wrapper" class="primary-content" style="min-height: auto; margin: auto;">
  9. <div class="container">
  10. <div class="login-container">
  11. <div class="login-header">
  12. <a href="{if $themesettings.headersetting.CustomLogoLink}{$themesettings.headersetting.CustomLogoLink}{else}{$WEB_ROOT}/{/if}">
  13. {if $themesettings.general.enablelogo}
  14. <img src="{$themesettings.general.logourl}" alt="{$companyname}" class="logo-light" />
  15. {if $themesettings.general.darklogo}
  16. <img src="{$themesettings.general.darklogo}" alt="{$companyname}" class="logo-dark" />
  17. {else}
  18. <span class="logo-dark">{$companyname}</span>
  19. {/if}
  20. {else}
  21. <span class="logo-dark">{$companyname}</span>
  22. <span class="logo-light">{$companyname}</span>
  23. {/if}
  24. </a>
  25. </div>
  26. <div class="login-box">
  27. <h1 class="h6 text-uppercase">
  28. <i class="fas fa-key"></i> <b>{lang key='twofactorauth'}</b>
  29. </h1>
  30. <hr />
  31. <div class="logincontainer" style="margin: 0; padding: 0;">
  32. {include file="$template/includes/flashmessage.tpl" align="center"}
  33. {if $newbackupcode}
  34. {include file="$template/includes/alert.tpl" type="success" msg="{lang key='twofabackupcodereset'}" textcenter=true}
  35. {elseif $incorrect}
  36. {include file="$template/includes/alert.tpl" type="error" msg="{lang key='twofa2ndfactorincorrect'}" textcenter=true}
  37. {elseif $error}
  38. {include file="$template/includes/alert.tpl" type="error" msg=$error textcenter=true}
  39. {else}
  40. {include file="$template/includes/alert.tpl" type="warning" msg="{lang key='twofa2ndfactorreq'}" textcenter=true}
  41. {/if}
  42. <form method="post" action="{routePath('login-two-factor-challenge-verify')}" id="frmTwoFactorChallenge"{if $usingBackup} class="w-hidden"{/if}>
  43. <div class="margin-bottom">
  44. {$challenge}
  45. </div>
  46. </form>
  47. <form method="post" action="{routePath('login-two-factor-challenge-backup-verify')}" id="frmTwoFactorBackup"{if !$usingBackup} class="w-hidden"{/if}>
  48. <div class="margin-bottom">
  49. <input type="text" name="twofabackupcode" class="form-control form-control-lg" placeholder="{lang key='twofabackupcodelogin'}">
  50. <br/>
  51. <button type="submit" class="btn btn-primary btn-lg btn-block" id="btnLogin">
  52. {lang key='loginbutton'}
  53. </button>
  54. </div>
  55. <p class="text-center">
  56. <a href="#" class="btn btn-default btn-block mt-2" id="backupCodeCancel">
  57. {lang key='cancel'}
  58. </a>
  59. </p>
  60. </form>
  61. <div class="p-3" id="frmTwoFactorChallengeFooter">
  62. <small>
  63. {lang key='twofacantaccess2ndfactor'}
  64. <a href="#" id="loginWithBackupCode">
  65. {lang key='twofaloginusingbackupcode'}
  66. </a>
  67. </small>
  68. </div>
  69. </div>
  70. </div>
  71. {if $languagechangeenabled && count($locales) > 1}
  72. <div class="lang-btn d-flex align-items-center justify-content-center">
  73. <button type="button" class="btn" data-toggle="modal" data-target="#modalChooseLanguage">
  74. <div class="d-inline-block align-middle">
  75. <div class="iti-flag {if $activeLocale.countryCode === '001'}us{else}{$activeLocale.countryCode|lower}{/if}"></div>
  76. </div>
  77. {$activeLocale.localisedName}
  78. </button>
  79. </div>
  80. {/if}
  81. </div>
  82. </div>
  83. </div>
  84. {else}
  85. <div class="primary-content loginpage-with-sidebar sidebar-left">
  86. <div class="sidebar-container light">
  87. <div class="login-header">
  88. <a href="{if $themesettings.headersetting.CustomLogoLink}{$themesettings.headersetting.CustomLogoLink}{else}{$WEB_ROOT}/{/if}">
  89. {if $themesettings.general.enablelogo}
  90. <img src="{$themesettings.general.logourl}" alt="{$companyname}" class="logo-light" />
  91. {if $themesettings.general.darklogo}
  92. <img src="{$themesettings.general.darklogo}" alt="{$companyname}" class="logo-dark" />
  93. {else}
  94. <span class="logo-dark">{$companyname}</span>
  95. {/if}
  96. {else}
  97. <span class="logo-dark">{$companyname}</span>
  98. <span class="logo-light">{$companyname}</span>
  99. {/if}
  100. </a>
  101. </div>
  102. <div class="sidebar-content">
  103. {if $announcements}
  104. <h2 class="header fw-400">{$LANG.ourlatestnews}</h2>
  105. <div id="annuncements" class="swiper-container">
  106. <div class="swiper-wrapper">
  107. {foreach $announcements as $announcement}
  108. {if $announcement@index < 3}
  109. <div class="swiper-slide">
  110. <span class="text-muted">
  111. <i class="fad fa-calendar-week"></i>&nbsp;{"jS M Y"|date:$announcement.timestamp}
  112. </span>
  113. <a href="{routePath('announcement-view', $announcement.id, $announcement.urlfriendlytitle)}"><h2 class="h3 bolder">{$announcement.title}</h2></a>
  114. <p>{$announcement.text|strip_tags|truncate:160:"..."}</p>
  115. </div>
  116. {/if}
  117. {/foreach}
  118. </div>
  119. <div class="swiper-pagination"></div>
  120. </div>
  121. {/if}
  122. <div class="user_lock_icon">
  123. <i class="fad fa-user-lock"></i>
  124. </div>
  125. </div>
  126. </div>
  127. <div class="center-container">
  128. <div class="login-container">
  129. <div class="login-header">
  130. <a href="{if $themesettings.headersetting.CustomLogoLink}{$themesettings.headersetting.CustomLogoLink}{else}{$WEB_ROOT}/{/if}">
  131. {if $themesettings.general.enablelogo}
  132. <img src="{$themesettings.general.logourl}" alt="{$companyname}" class="logo-light" />
  133. {if $themesettings.general.darklogo}
  134. <img src="{$themesettings.general.darklogo}" alt="{$companyname}" class="logo-dark" />
  135. {else}
  136. <span class="logo-dark">{$companyname}</span>
  137. {/if}
  138. {else}
  139. <span class="logo-dark">{$companyname}</span>
  140. <span class="logo-light">{$companyname}</span>
  141. {/if}
  142. </a>
  143. </div>
  144. <div class="login-box">
  145. <h1 class="h6 text-uppercase">
  146. <i class="fas fa-key"></i> <b>{lang key='twofactorauth'}</b>
  147. </h1>
  148. <hr />
  149. <div class="logincontainer" style="margin: 0; padding: 0;">
  150. {include file="$template/includes/flashmessage.tpl" align="center"}
  151. {if $newbackupcode}
  152. {include file="$template/includes/alert.tpl" type="success" msg="{lang key='twofabackupcodereset'}" textcenter=true}
  153. {elseif $incorrect}
  154. {include file="$template/includes/alert.tpl" type="error" msg="{lang key='twofa2ndfactorincorrect'}" textcenter=true}
  155. {elseif $error}
  156. {include file="$template/includes/alert.tpl" type="error" msg=$error textcenter=true}
  157. {else}
  158. {include file="$template/includes/alert.tpl" type="warning" msg="{lang key='twofa2ndfactorreq'}" textcenter=true}
  159. {/if}
  160. <form method="post" action="{routePath('login-two-factor-challenge-verify')}" id="frmTwoFactorChallenge"{if $usingBackup} class="w-hidden"{/if}>
  161. <div class="margin-bottom">
  162. {$challenge}
  163. </div>
  164. </form>
  165. <form method="post" action="{routePath('login-two-factor-challenge-backup-verify')}" id="frmTwoFactorBackup"{if !$usingBackup} class="w-hidden"{/if}>
  166. <div class="margin-bottom">
  167. <input type="text" name="twofabackupcode" class="form-control form-control-lg" placeholder="{lang key='twofabackupcodelogin'}">
  168. <br/>
  169. <button type="submit" class="btn btn-primary btn-lg btn-block" id="btnLogin">
  170. {lang key='loginbutton'}
  171. </button>
  172. </div>
  173. <p class="text-center">
  174. <a href="#" class="btn btn-default btn-block mt-2" id="backupCodeCancel">
  175. {lang key='cancel'}
  176. </a>
  177. </p>
  178. </form>
  179. <div class="p-3" id="frmTwoFactorChallengeFooter">
  180. <small>
  181. {lang key='twofacantaccess2ndfactor'}
  182. <a href="#" id="loginWithBackupCode">
  183. {lang key='twofaloginusingbackupcode'}
  184. </a>
  185. </small>
  186. </div>
  187. </div>
  188. </div>
  189. {if $languagechangeenabled && count($locales) > 1}
  190. <div class="lang-btn d-flex align-items-center justify-content-center">
  191. <button type="button" class="btn" data-toggle="modal" data-target="#modalChooseLanguage">
  192. <div class="d-inline-block align-middle">
  193. <div class="iti-flag {if $activeLocale.countryCode === '001'}us{else}{$activeLocale.countryCode|lower}{/if}"></div>
  194. </div>
  195. {$activeLocale.localisedName}
  196. </button>
  197. </div>
  198. {/if}
  199. </div>
  200. </div>
  201. </div>
  202. <script>
  203. jQuery(document).ready(function () {
  204. var swiper = new Swiper('#annuncements', {
  205. slidesPerView: 1,
  206. pagination: {
  207. el: '.swiper-pagination',
  208. clickable: true,
  209. },
  210. breakpoints: {
  211. 0: {
  212. slidesPerView: 1,
  213. },
  214. }
  215. });
  216. });
  217. </script>
  218. {/if}
  219. <script src="{$WEB_ROOT}/templates/{$template}/assets/js/main.min.js?v={$versionHash}"></script>
  220. <script>
  221. jQuery(document).ready(function() {
  222. jQuery('#loginWithBackupCode').click(function(e) {
  223. e.preventDefault();
  224. jQuery('#frmTwoFactorChallenge').hide();
  225. jQuery('#frmTwoFactorChallengeFooter').hide();
  226. jQuery('#frmTwoFactorBackup').show();
  227. });
  228. jQuery('#backupCodeCancel').click(function(e) {
  229. e.preventDefault();
  230. jQuery('#frmTwoFactorChallenge').show();
  231. jQuery('#frmTwoFactorChallengeFooter').show();
  232. jQuery('#frmTwoFactorBackup').hide();
  233. });
  234. });
  235. </script>