index.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>[[*longtitle]] | [[++site_name]]</title>
  5. <base href="[[!++site_url]]">
  6. <meta charset="[[++modx_charset]]">
  7. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9. <meta name="keywords" content="[[*introtext]]">
  10. <meta name="description" content="[[*description]]">
  11. <link rel="icon" href="client-assets/images/favicon.ico?v=2" type="image/x-icon"> [[!Profile]]
  12. <script type="text/javascript">
  13. window.dataLayer = window.dataLayer || [];
  14. function gtag() {
  15. dataLayer.push(arguments);
  16. }
  17. gtag('js', new Date());
  18. gtag('set', {
  19. 'user_id': '[[+modx.user.id]]'
  20. }); // Set the user ID using signed-in user_id.
  21. gtag('config', 'UA-133963301-1');
  22. </script>
  23. <link href="https://cdn.jsdelivr.net/npm/simple-datatables@latest/dist/style.css" rel="stylesheet" />
  24. <link href="client-assets/css/dashboard-2021.css" rel="stylesheet" />
  25. <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/js/all.min.js" crossorigin="anonymous"></script>
  26. <link href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css" rel="stylesheet" crossorigin="anonymous" />
  27. <script src="client-assets/js/skycons.js"></script>
  28. <style>
  29. .btn-append {
  30. color: #495057;
  31. background-color: #e9ecef;
  32. border: 1px solid #ced4da;
  33. }
  34. .footer {
  35. position: absolute;
  36. bottom: 0;
  37. width: 100%;
  38. height: 60px;
  39. line-height: 60px;
  40. }
  41. </style>
  42. </head>
  43. <body class="sb-nav-fixed" id="page-top">
  44. [[!Personalize?
  45. &yesChunk=`navHeaderLogged`
  46. &noChunk=`navHeader`
  47. &allowedGroups=`basicClients,bacicAdmin,companyClients,companyManagers`
  48. ]]
  49. <div id="layoutSidenav">
  50. <div id="layoutSidenav_nav">
  51. <!-- Sidebar -->
  52. [[Wayfinder?
  53. &startId=`2`
  54. &displayStart=`0`
  55. &startitemTpl=`startitemTpl`
  56. &selfClass=`show`
  57. &level=`2`
  58. &outerTpl=`outer`
  59. &outerClass=`sb-sidenav accordion sb-sidenav-dark`
  60. &rowTpl=`row`
  61. &rowClass=`nav-link`
  62. &parentRowTpl=`parentRow`
  63. &parentClass=`nav-link collapsed`
  64. &innerTpl=`inner`
  65. &innerClass=`collapse`
  66. &innerRowTpl=`secondInner`
  67. &innerRowClass=`nav-link`
  68. ]]
  69. </div>
  70. <div id="layoutSidenav_content">
  71. <main>
  72. <div class="container-fluid px-4">
  73. <h1 class="mt-4">[[*pagetitle]]</h1>
  74. <ol class="breadcrumb mb-4"> [[$dash-breadcrumbs]] </ol>
  75. <div class="row">
  76. <div class="container-fluid">
  77. [[!Profile]]
  78. <div class="row">
  79. <div class="col-sm-3">
  80. <h2 class="text-center">[[+fullname]]</h2>
  81. </div>
  82. <div class="col-sm-9">
  83. <!-- <a href="/users" class="pull-right">
  84. <img title="profile image" class="img-circle img-responsive" src="">
  85. </a> -->
  86. </div>
  87. </div>
  88. <div class="row">
  89. <div class="col-sm-3">
  90. <!--left col-->
  91. <div class="text-center">
  92. <img src="[[+photo]]" class="avatar img-circle img-fluid img-thumbnail" alt="avatar"> <!-- https://ssl.gstatic.com/accounts/ui/avatar_2x.png -->
  93. <h6> </h6>
  94. <!-- <input type="file" class="text-center center-block file-upload"> -->
  95. <span class="error">[[+error.photo]]</span>
  96. [[!UpdateProfile? &useExtended=`1` &submitVar=`file-upload` &preHooks=`user_profile_image`]]
  97. <form class="form" enctype="multipart/form-data" action="[[~[[*id]]]]" method="post">
  98. [[+login.update_success:if=`[[+login.update_success]]`:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]]
  99. <input type="hidden" name="nospam:blank" value="" />
  100. <div class="input-group mb-3">
  101. <div class="custom-file">
  102. <input type="file" class="custom-file-input" name="photo" id="photo" value="[[+photo]]" >
  103. <label class="custom-file-label text-left" for="photo">Choose file</label>
  104. </div>
  105. <div class="input-group-append">
  106. <button class="btn btn-outline-secondary" id="file-upload" name="file-upload" type="button">Upload</button>
  107. </div>
  108. </div>
  109. </form>
  110. </div>
  111. </hr>
  112. <br>
  113. <div class="alert alert-success" role="alert">Your Account level is: <b>FREE</b> <a href="#" class="alert-link">Upgrade Account</a></div>
  114. <div class="alert" role="alert"></div>
  115. <!--
  116. <div class="panel panel-default">
  117. <div class="panel-heading">Website <i class="fa fa-link fa-1x"></i></div>
  118. <div class="panel-body"><a href="#"></a></div>
  119. </div>
  120. <ul class="list-group">
  121. <li class="list-group-item text-muted">Activity <i class="fa fa-dashboard fa-1x"></i></li>
  122. <li class="list-group-item text-right"><span class="pull-left"><strong>Shares</strong></span></li>
  123. <li class="list-group-item text-right"><span class="pull-left"><strong>Likes</strong></span></li>
  124. <li class="list-group-item text-right"><span class="pull-left"><strong>Posts</strong></span></li>
  125. <li class="list-group-item text-right"><span class="pull-left"><strong>Followers</strong></span></li>
  126. </ul>
  127. <div class="panel panel-default">
  128. <div class="panel-heading">Social Media</div>
  129. <div class="panel-body">
  130. <i class="fa fa-facebook fa-2x"></i> <i class="fa fa-github fa-2x"></i> <i class="fa fa-twitter fa-2x"></i> <i class="fa fa-pinterest fa-2x"></i> <i class="fa fa-google-plus fa-2x"></i>
  131. </div>
  132. </div>
  133. -->
  134. </div>
  135. <!--/col-3-->
  136. <div class="col-sm-9">
  137. <ul class="nav nav-tabs">
  138. <li class="nav-item">
  139. <a class="nav-link" data-toggle="tab" href="#contact-details">Your Details</a>
  140. </li>
  141. <li>
  142. <a class="nav-link" data-toggle="tab" href="#change-password">Change Password</a>
  143. </li>
  144. <li>
  145. <a class="nav-link" data-toggle="tab" href="#messages">Personal Messages</a>
  146. </li>
  147. </ul>
  148. <div class="tab-content">
  149. <div class="tab-pane" id="contact-details">
  150. <br>
  151. [[!UpdateProfile?
  152. &submitVar=`form-save`
  153. &validate=`
  154. fullname:required,
  155. mobilephone:required,
  156. email:required,
  157. address:required,
  158. city:required,
  159. state:required,
  160. zip:required`]]
  161. <div class="updprof-error">[[+error.message]]</div>
  162. [[+login.update_success:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]]
  163. <form class="form" action="[[~[[*id]]]]" method="post" id="registrationForm">
  164. <div class="form-row">
  165. <div class="col-md-6 ">
  166. <label for="fullname">Name</label>
  167. <input type="text" class="form-control" name="fullname" id="fullname" value="[[+fullname]]" />
  168. <small class="error">[[+error.fullname]]</small>
  169. </div>
  170. <div class="col-md-6 ">
  171. <label for="phone">Company</label>
  172. <input type="text" class="form-control" name="company" id="company" value="[[+fax]]" />
  173. <small class="error">[[+error.fax]]</small>
  174. </div>
  175. </div>
  176. <div class="form-row">
  177. <div class="col-md-6 ">
  178. <label for="phone">Phone</label>
  179. <input type="text" class="form-control" name="phone" id="phone" value="[[+phone]]" />
  180. <small class="error">[[+error.phone]]</small>
  181. </div>
  182. <div class="col-md-6 ">
  183. <label for="mobilephone">Mobile</label>
  184. <input type="text" class="form-control" name="mobilephone:required" id="mobilephone" value="[[+mobilephone]]" />
  185. <small class="error">[[+error.mobilephone]]</small>
  186. </div>
  187. </div>
  188. <div class="form-row">
  189. <div class="col-md-12">
  190. <label for="email">Email</label>
  191. <input type="email" class="form-control" name="email:required" id="email" value="[[+email]]" />
  192. <small class="error">[[+error.email]]</small>
  193. </div>
  194. </div>
  195. <div class="form-row">
  196. <div class="col-md-12">
  197. <label for="address">Address</label>
  198. <input type="text" class="form-control" name="address:required" id="address" value="[[+address]]" />
  199. <small class="error">[[+error.address]]</small>
  200. </div>
  201. </div>
  202. <div class="form-row">
  203. <div class="col-md-3 ">
  204. <label for="city">City</label>
  205. <input type="text" class="form-control" name="city:required" id="city" value="[[+city]]" />
  206. <small class="error">[[+error.city]]</small>
  207. </div>
  208. <div class="col-md-3 ">
  209. <label for="state">State</label>
  210. <input type="text" class="form-control" name="state:required" id="state" value="[[+state]]" />
  211. <small class="error">[[+error.state]]</small>
  212. </div>
  213. <div class="col-md-3 ">
  214. <label for="zip">Postcode</label>
  215. <input type="text" class="form-control" name="zip:required" id="zip" value="[[+zip]]" />
  216. <small class="error">[[+error.zip]]</small>
  217. </div>
  218. <div class="col-md-3 ">
  219. <label for="state">Country</label>
  220. <input type="text" class="form-control" name="country:required" id="country" value="[[+country]]" />
  221. <small class="error">[[+error.country]]</small>
  222. </div>
  223. </div>
  224. <hr>
  225. <h4>Industry Details</h4>
  226. <div class="form-row">
  227. <div class="col-md-6 ">
  228. <label for="fullname">Industry</label>
  229. <select class="form-control" name="industry" name="industry" id="industry" value="[[+website]]">
  230. <option selected>[[+website]]</option>
  231. <option name="broadacre">Broadacre</option>
  232. <option name="viticulture">Viticulture</option>
  233. <option name="horticulture">Horticulture</option>
  234. <option name="permaculture">Permaculture</option>
  235. <option name="dairy">Dairy</option>
  236. </select>
  237. <small class="error">[[+error.website]]</small>
  238. </div>
  239. <div class="col-md-6 ">
  240. <label for="phone">Role</label>
  241. <select class="form-control" name="role" name="role" id="role" value="[[+phone]]">
  242. <option selected>[[+phone]]</option>
  243. <option name="manager">Manager</option>
  244. <option name="viticulturist">Viticulturist</option>
  245. <option name="horticulturist">Horticulturist</option>
  246. <option name="permaculturist">Permaculturist</option>
  247. <option name="irrigation-manager">Irrigation Manager</option>
  248. </select>
  249. <small class="error">[[+error.phone]]</small>
  250. </div>
  251. </div>
  252. <div class="form-group">
  253. <div class="col-md-12">
  254. <br>
  255. <button class="btn btn-lg btn-success" id="form-save" name="form-save" type="submit"><i class="glyphicon glyphicon-ok-sign"></i> Save</button>
  256. <button class="btn btn-lg btn-warning" type="reset"><i class="glyphicon glyphicon-repeat"></i> Reset</button>
  257. </div>
  258. </div>
  259. </form>
  260. <hr>
  261. </div>
  262. <!--/tab-pane-->
  263. <div class="tab-pane" id="change-password">
  264. [[!ChangePassword?
  265. &submitVar=`change-password`
  266. &placeholderPrefix=`cp.`
  267. &validateOldPassword=`1`
  268. &validate=`nospam:blank`
  269. &successMessage=`Your password is changed`
  270. ]]
  271. <form action="[[~[[*id]]]]" method="post">
  272. <input type="hidden" name="nospam" value="" />
  273. <div class="form-group">
  274. <label for="password_old">Old Password <span style="color: red;">[[!+cp.error.password_old]]</span></label>
  275. <input type="password" class="form-control" name="password_old" id="password_old" value="[[+cp.password_old]]" aria-describedby="password_old" placeholder="Old Password">
  276. <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
  277. </div>
  278. <div class="form-group">
  279. <label for="exampleInputPassword1">New Password <span style="color: red;">[[!+cp.error.password_new]]</span></label>
  280. <input type="password" class="form-control" name="password_new" id="password_new" value="[[+cp.password_new]]" placeholder="New Password">
  281. </div>
  282. <div class="form-group">
  283. <label for="exampleInputPassword1">Confirm New Password <span style="color: red;">[[!+cp.error.password_new_confirm]]</span></label>
  284. <input type="password" class="form-control" name="password_new_confirm" id="password_new_confirm" value="[[+cp.password_new_confirm]]" placeholder="Confirm New Password">
  285. </div>
  286. <input type="submit" class="btn btn-primary" name="change-password" value="Change Password" >
  287. </form>
  288. </div>
  289. <!--/tab-pane-->
  290. <div class="tab-pane" id="messages">
  291. </div>
  292. </div>
  293. <!--/tab-pane-->
  294. </div>
  295. <!--/tab-content-->
  296. </div>
  297. <!--/col-9-->
  298. </div>
  299. <!--/row-->
  300. </div>
  301. <script>
  302. $(document).ready(function() {
  303. var readURL = function(input) {
  304. if (input.files && input.files[0]) {
  305. var reader = new FileReader();
  306. reader.onload = function (e) {
  307. $('.avatar').attr('src', e.target.result);
  308. }
  309. reader.readAsDataURL(input.files[0]);
  310. }
  311. }
  312. $(".file-upload").on('change', function(){
  313. readURL(this);
  314. });
  315. });
  316. </script>
  317. </div>
  318. </div>
  319. </main>
  320. <footer class="py-4 bg-light mt-auto">
  321. <div class="container-fluid px-4">
  322. <div class="d-flex align-items-center justify-content-between small">
  323. <div class="text-muted">[[SimpleCopyright? &startYear=`2003`]]. All Rights Reserved <a href="[[~1]]"></a></div>
  324. <div>
  325. <a href="[[~39~]]">Privacy Policy</a>
  326. &middot;
  327. <a href="[[~39~]]">Terms &amp; Conditions</a>
  328. </div>
  329. </div>
  330. </div>
  331. </footer>
  332. </div>
  333. </div>
  334. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
  335. <script>
  336. /*!
  337. * Start Bootstrap - SB Admin v7.0.3 (https://startbootstrap.com/template/sb-admin)
  338. * Copyright 2013-2021 Start Bootstrap
  339. * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-sb-admin/blob/master/LICENSE)
  340. */
  341. //
  342. // Scripts
  343. //
  344. window.addEventListener('DOMContentLoaded', event => {
  345. // Toggle the side navigation
  346. const sidebarToggle = document.body.querySelector('#sidebarToggle');
  347. if (sidebarToggle) {
  348. // Uncomment Below to persist sidebar toggle between refreshes
  349. // if (localStorage.getItem('sb|sidebar-toggle') === 'true') {
  350. // document.body.classList.toggle('sb-sidenav-toggled');
  351. // }
  352. sidebarToggle.addEventListener('click', event => {
  353. event.preventDefault();
  354. document.body.classList.toggle('sb-sidenav-toggled');
  355. localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled'));
  356. });
  357. }
  358. });
  359. </script>
  360. <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js" crossorigin="anonymous"></script>
  361. <script src="https://cdn.jsdelivr.net/npm/simple-datatables@latest" crossorigin="anonymous"></script>
  362. </body>
  363. </html>