index.php 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811
  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. <div class="row">
  78. <div class="col">
  79. <h2>[[*pagetitle]]</h2>
  80. </div>
  81. </div>
  82. <!--grid-->
  83. <div class="row">
  84. <div class="col-12 col-md-3">
  85. <div class="row">
  86. <div class="col">
  87. <form action="#" method="GET">
  88. <div class="input-group mb-3">
  89. <input type="text" class="form-control" aria-label="Recipient's username" aria-describedby="basic-addon2" placeholder="Search...">
  90. <div class="input-group-append">
  91. <span class="input-group-text" id="basic-addon2"><i class="fa fa-search"></i></span>
  92. </div>
  93. </div>
  94. <!-- Input Group -->
  95. </form>
  96. </div>
  97. </div>
  98. <div class="row ">
  99. <div class="col">
  100. <div class="alert alert-danger" role="alert">
  101. <h3>[[*longtitle]]</h3>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="row ">
  106. <div class="col">
  107. <div class="list-group">
  108. <a href="#" class="list-group-item list-group-item-action"> Folders
  109. </a>
  110. <a href="#" class="list-group-item list-group-item-action list-group-item-light text-warning">
  111. <i class="fa fa-archive text-warning" aria-hidden="true"></i> Archived
  112. <span class="badge badge-warning badge-pill float-right">[[!analysisCount? &analysis=`block_info` &cid=`[[+id]]` &status=`2` ]]</span>
  113. </a>
  114. <a href="#" class="list-group-item list-group-item-action list-group-item-light text-danger">
  115. <i class="fa fa-trash text-danger" aria-hidden="true"></i> Deleted
  116. <span class="badge badge-danger badge-pill float-right">[[!analysisCount? &analysis=`block_info` &cid=`[[+id]]` &status=`3` ]]</span>
  117. </a>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. <hr>
  123. <!-- tab content -->
  124. <div class="col-12 col-md-9 ">
  125. <!-- tab content -->
  126. <br>
  127. <div class="row">
  128. <div class="col">
  129. <h3>[[*longtitle]]</h3>
  130. </div>
  131. </div>
  132. <div class="row">
  133. <div class="col">
  134. <button type="button" class="btn btn-success" data-toggle="modal" data-target="#createPaddock">Create New Paddock</button>
  135. <!-- Modal -->
  136. <div class="modal fade" id="createPaddock" tabindex="-1" role="dialog" aria-labelledby="createPaddock" aria-hidden="true">
  137. <div class="modal-dialog modal-lg modal-dialog-centered" role="document">
  138. <div class="modal-content">
  139. <div class="modal-header">
  140. <h5 class="modal-title" id="exampleModalLabel">Create Paddock Record</h5>
  141. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  142. <span aria-hidden="true">&times;</span>
  143. </button>
  144. </div>
  145. <div class="modal-body">
  146. <?php
  147. error_reporting(E_ALL);
  148. ini_set('display_errors', 1);
  149. if(isset($_POST['submit'])) {
  150. $sql = null;
  151. //$con = mysqli_connect("localhost", "root", "R3M0T31", "cropmonitor");
  152. $con = mysqli_connect("localhost", "cropmonitor", "brvnCcaEYxlPCS3", "cropmonitor");
  153. //set todays date
  154. $date_added = date("Y-m-d H:i:s");
  155. //Get figures
  156. $modx_user_id = (isset($_POST["m_user"])) ? $_POST["m_user"] : "";
  157. $client_name = (isset($_POST["name"])) ? $_POST["name"] : "";
  158. $site_address = (isset($_POST["site_address"])) ? $_POST["site_address"] : "";
  159. $site_id = (isset($_POST["site_id"])) ? $_POST["site_id"] : "";
  160. $soil_type = (isset($_POST["analysis_type"])) ? $_POST["analysis_type"] : ""; //need to fix form to say soil_type not analysis_type
  161. /* ********* END ********* */
  162. // Check connection
  163. if (mysqli_connect_errno()) {
  164. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  165. }
  166. $sql = mysqli_query($con, "INSERT into `block_info`
  167. (
  168. modx_user_id,
  169. date_added,
  170. area,
  171. block_id
  172. ) VALUES (
  173. '" . $modx_user_id . "',
  174. '" . $date_added . "',
  175. '" . $area . "',
  176. '" . $block_id . "'
  177. )" );
  178. $insert_id = mysqli_insert_id($con);
  179. if ($sql === TRUE)
  180. {
  181. //echo "success"; //CHECKING
  182. // forward to results page if successfully inserts to database [[~32]]
  183. echo "";
  184. } else {
  185. die(mysqli_error($con)); // TODO: better error handling
  186. //echo "User Profile incorrect";
  187. }
  188. }
  189. ?>
  190. <form method="post" action="[~[*id*]~]" id="createPaddock" novalidate>
  191. <input type="text" class="form-control" id="modx_user" value="[[+user]]" hidden>
  192. <input type="text" class="form-control" id="mid" value="[[+id]]" hidden>
  193. <h6>Block Identification</h6>
  194. <div class="form-row">
  195. <div class="col">
  196. <label for="exampleInputEmail1">Block ID</label>
  197. <input type="text" class="form-control form-control-sm" id="id" aria-describedby="idHelp" placeholder="Block Id" required>
  198. <small id="emailHelp" class="form-text text-muted"></small>
  199. <div class="valid-feedback">Looks good!</div>
  200. </div>
  201. <div class="col">
  202. <label for="exampleInputEmail1">Block Name</label>
  203. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name" required>
  204. <small id="emailHelp" class="form-text text-muted"></small>
  205. </div>
  206. </div>
  207. <hr>
  208. <h6>Location / Sizing</h6>
  209. <div class="form-group">
  210. <label for="exampleInputPassword1">Location</label>
  211. <input type="text" class="form-control form-control-sm" id="location" placeholder="Block Address">
  212. </div>
  213. <div class="form-row">
  214. <div class="col">
  215. <label for="exampleInputEmail1">Area</label>
  216. <input type="number" class="form-control form-control-sm" id="area_ha" aria-describedby="areaHelp" placeholder="Block Size" oninput="areaConverter(this.id,this.value)" onchange="areaConverter(this.value)">
  217. <small id="areaHelp" class="form-text text-muted">in hectare's</small>
  218. </div>
  219. <div class="col">
  220. <label for="exampleInputEmail1">Area</label>
  221. <input type="number" class="form-control form-control-sm" id="area_ac" aria-describedby="areaHelp" placeholder="Block Size" oninput="areaConverter(this.id,this.value)" onchange="areaConverter(this.value)">
  222. <small id="areaHelp" class="form-text text-muted">in acre's</small>
  223. </div>
  224. <div class="col">
  225. <label for="exampleInputEmail1">Block Name</label>
  226. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name">
  227. <small id="emailHelp" class="form-text text-muted"></small>
  228. </div>
  229. </div>
  230. <script>
  231. function areaConverter(source,valNum) {
  232. valNum = parseFloat(valNum);
  233. var area_ha = document.getElementById("area_ha");
  234. var area_ac = document.getElementById("area_ac");
  235. if (source=="area_ha") {
  236. area_ac.value=(valNum/0.404686).toFixed(2);
  237. }
  238. if (source=="area_ac") {
  239. area_ha.value=(valNum/2.4710559990832).toFixed(2);
  240. }
  241. }
  242. </script>
  243. <hr>
  244. <h6>Soil Clasification</h6>
  245. <div class="form-row">
  246. <div class="col">
  247. <label for="exampleInputEmail1">Area</label>
  248. <select class="form-control form-control-sm" name="analysis_type" id="analysis_type" required>
  249. <option>Select the type of soil...</option>
  250. <option id="sandy">sandy</option>
  251. <option id="light">light</option>
  252. <option id="medium">medium</option>
  253. <option id="heavy">heavy</option>
  254. </select>
  255. </div>
  256. <div class="col">
  257. <label for="exampleInputEmail1">Block Name</label>
  258. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name">
  259. <small id="emailHelp" class="form-text text-muted"></small>
  260. </div>
  261. </div>
  262. </div>
  263. <div class="modal-footer">
  264. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  265. <button form="createPaddock" type="submit" class="btn btn-success">Save changes</button>
  266. </form>
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. </div>
  272. </div>
  273. <br>
  274. <div class="row">
  275. <div class="col">
  276. <div class="d-none d-md-block "> <!-- d-lg-none -->
  277. <div class='form-row'>
  278. <div class='col-md-1'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='ID' ></div>
  279. <div class='col-md-1'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Edit' ></div>
  280. <div class='col'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Name' ></div>
  281. <div class='col-md-1'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Size' ></div>
  282. <div class='col-md-2'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Location' ></div>
  283. <div class='col-md-2'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Current Crop' ></div>
  284. <div class='col-md-1'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Status' ></div>
  285. <div class='col-md-1'><input type='text' readonly class='text-center form-control-plaintext font-weight-bold' placeholder='Actions' ></div>
  286. </div>
  287. </div>
  288. /*[[!blockIdentification? &cid=`[[+id]]` ]]*/
  289. <?php
  290. if ($cid) {
  291. $client_id = $cid; // client number
  292. } else {
  293. $client_id = '2'; // client number
  294. }
  295. $client_id = '2'; // client number
  296. $analysisType = $analysis;
  297. $icon = $icon;
  298. /*
  299. Status Table
  300. 0 = Blank
  301. 1 = Read
  302. 2 = Archived
  303. 3 = Deleted
  304. */
  305. //Database connection
  306. //$con = mysqli_connect("localhost", "root", "R3M0T31", "cropmonitor");
  307. $con = mysqli_connect("localhost", "cropmonitor", "brvnCcaEYxlPCS3", "cropmonitor");
  308. // Check connection
  309. if (mysqli_connect_errno()) {
  310. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  311. }
  312. // Get results from database
  313. $result = mysqli_query($con, "SELECT * FROM `block_info` WHERE `modx_user_id` = ". $client_id ." AND `status` <= 1 "); //
  314. //
  315. //plant_records.crop_type, plant_specifications.plant_type, plant_specifications.N_Min, plant_specifications.N_Max, plant_records.N, plant_records.id
  316. // mysqli_query returns false if something went wrong with the query
  317. if ($result === FALSE) {
  318. die(mysqli_error($con)); // TODO: better error handling
  319. echo "User Profile incorrect";
  320. } else {
  321. $i = 1;
  322. while ($row = mysqli_fetch_array($result)) {
  323. $rowid = $row['id'];
  324. $name = $row['name'];
  325. $block = $row['block_id'];
  326. $location = $row['location'];
  327. $area = $row['area'];
  328. $area_ha = number_format($area,1);
  329. $area_ac = number_format(($area * 2.47105),1);
  330. $area_value = $area_ha . "ha - " . $area_ac . "acres";
  331. $gps = $row['gps'];
  332. $status = $row['status'];
  333. $currentCrop = '';
  334. /* Status Table */
  335. if ($row['status'] == 0 ) { // 0 = Blank
  336. $colour = 'table-secondary';
  337. } else if ($row['status'] == 1 ) { //1 = Read
  338. $colour = '';
  339. } else if ($row['status'] == 2 ) { //2 = Archived
  340. $colour = '';
  341. } else if ($row['status'] == 3 ) { //3 = Deleted
  342. $colour = '';
  343. } else {
  344. $colour = '';
  345. }
  346. //$today = date('dS l M y');
  347. //$filename = $row['rand'] . " - Soil-Analysis - " . $today;
  348. echo "<div class='row mb-2'>";
  349. echo "<div class='col border border-success rounded p-1'>";
  350. echo "<div class='form-row m-1'>";
  351. echo "<div class='text-left font-weight-bold' ><p>$i</p></div>"; //<label for=''>ID</label> d-none d-md-block d-lg-none
  352. echo "<div class='col-6 col-sm-11 col-md-2'>";
  353. echo "<div class='row'>";
  354. echo "<div class='col-6 col-md-6'><a class='text-left font-weight-bold btn btn-primary btn-sm btn-block' href='[[~93]]?rid=$rowid&id=$block&block=$name'><i class='fas fa-globe-asia fa-1x text-white' aria-hidden='true'></i></a></div>";
  355. echo "<div class='col-6 col-md-6'><button type='submit' class='text-left font-weight-bold btn btn-success btn-sm btn-block ' data-toggle='modal' data-target='#editPaddock$rowid'><i class='far fa-edit'></i> " . $block . "</button></div>";
  356. echo "</div>"; //<label for=''>Block</label>
  357. echo "</div>";
  358. echo "<div class='col'><label class='form-label form-label-sm m-0 d-block d-sm-none' for=''>Name</label><input type='text' class='form-control form-control-sm' value='$name'></div>"; //<label for=''>Name</label>
  359. echo "<div class='col-md-1'><label class='form-label form-label-sm m-0 d-block d-sm-none' for=''>Size</label><input type='text' class='form-control form-control-sm text-center' value='$area_value'></div>"; //<label for=''>Size</label>
  360. echo "<div class='col-md-2'><label class='form-label form-label-sm m-0 d-block d-sm-none' for=''>Location</label><input type='text' class='form-control form-control-sm' value='$location'></div>"; //<label for=''>Location</label>
  361. echo "<div class='col-md-2'><label class='form-label form-label-sm m-0 d-block d-sm-none' for=''>Current Crop</label><input type='text' class='form-control form-control-sm' value='$currentCrop'></div>"; //<label for=''>Location</label>
  362. echo "<div class='col-md-1'><label class='form-label form-label-sm m-0 d-block d-sm-none' for=''>Location</label><input type='text' readonly class='form-control form-control-plaintext form-control-sm' value='$status'></div>"; //<label for=''>Location</label>
  363. echo "<div class='col-md-1'><label class='form-label form-label-sm m-0 d-block d-sm-none' for=''>Actions</label>";
  364. echo "<a href='#' target='_blank' data-toggle='tooltip' data-placement='top' title='Delete Block'><i class='fa fa-trash text-danger' aria-hidden='true'></i> ";
  365. echo "<a href='#' target='_blank' data-toggle='tooltip' data-placement='top' title='Archive Block'><i class='fa fa-archive text-warning' aria-hidden='true'></i> ";
  366. echo "<a href='#' target='_blank' data-toggle='tooltip' data-placement='top' title='Reply to Client'><i class='text-success fa fa-reply' aria-hidden='true'></i> ";
  367. echo "<a href='#' target='_blank' data-toggle='tooltip' data-placement='top' title='Share Report'><i class='text-success fa fa-share' aria-hidden='true'></i></a> ";
  368. echo "<a href='#' target='_blank' data-toggle='tooltip' data-placement='top' title='Download Report'><i class='text-dark fas fa-cloud-download-alt'></i></a>";
  369. echo "</div>";
  370. echo "</div>";
  371. echo "</div>";
  372. echo "</div>";
  373. ?>
  374. <!-- ********************************************************* Modal ********************************************************* -->
  375. <div class="modal fade" id="editPaddock<?php echo $rowid; ?>" tabindex="-1" role="dialog" aria-labelledby="editPaddock<?php echo $rowid; ?>" aria-hidden="true">
  376. <div class="modal-dialog modal-lg modal-dialog-centered" role="document">
  377. <div class="modal-content">
  378. <div class="modal-header">
  379. <h5 class="modal-title" id="exampleModalLabel">Edit Paddock Record</h5>
  380. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  381. <span aria-hidden="true">&times;</span>
  382. </button>
  383. </div>
  384. <div class="modal-body">
  385. [[!createBlockSubmit]]
  386. <form method="post" action="[~[*id*]~]" id="editPaddock<?php echo $rowid; ?>" novalidate>
  387. <input type="text" class="form-control" id="modx_user" value="<?php echo $rowid; ?>" hidden>
  388. <input type="text" class="form-control" id="mid" value="[[+id]]" hidden>
  389. <div class="form-row">
  390. <div class="col">
  391. <label for="exampleInputEmail1">Block ID</label>
  392. <input type="text" class="form-control form-control-sm" id="block_id" aria-describedby="block_idHelp" value="<?php echo $block; ?>" required>
  393. <small id="block_idHelp" class="form-text text-muted"></small>
  394. <div class="valid-feedback">Looks good!</div>
  395. </div>
  396. <div class="col">
  397. <label for="exampleInputEmail1">Block Name</label>
  398. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="nameHelp" value="<?php echo $name; ?>" required>
  399. <small id="nameHelp" class="form-text text-muted"></small>
  400. </div>
  401. </div>
  402. <hr>
  403. <h6>Location / Sizing</h6>
  404. <div class="form-group">
  405. <label for="exampleInputPassword1">Location</label>
  406. <input type="text" class="form-control form-control-sm" id="location" value="<?php echo $location; ?>" >
  407. </div>
  408. <div class="form-row">
  409. <div class="col">
  410. <label for="exampleInputEmail1">Area</label>
  411. <input type="text" class="form-control form-control-sm" id="area_ha" aria-describedby="areahaHelp" value="<?php echo $area_ha; ?>" oninput="areaConverter(this.id,this.value)" onchange="areaConverter(this.value)">
  412. <small id="areahaHelp" class="form-text text-muted">in hectare's</small>
  413. </div>
  414. <div class="col">
  415. <label for="exampleInputEmail1">Area</label>
  416. <input type="text" class="form-control form-control-sm" id="area_ac" aria-describedby="areaacHelp" value="<?php echo $area_ac; ?>" oninput="areaConverter(this.id,this.value)" onchange="areaConverter(this.value)">
  417. <small id="areaaHelp" class="form-text text-muted">in acre's</small>
  418. </div>
  419. <div class="col">
  420. <label for="exampleInputEmail1">GPS</label>
  421. <input type="text" class="form-control form-control-sm" id="gps" aria-describedby="gpsHelp" value="<?php echo $gps; ?>" >
  422. <small id="gpsHelp" class="form-text text-muted"></small>
  423. </div>
  424. </div>
  425. <script>
  426. function areaConverter(source,valNum) {
  427. valNum = parseFloat(valNum);
  428. var area_ha = document.getElementById("area_ha");
  429. var area_ac = document.getElementById("area_ac");
  430. if (source=="area_ha") {
  431. area_ac.value=(valNum/0.404686).toFixed(2);
  432. }
  433. if (source=="area_ac") {
  434. area_ha.value=(valNum/2.4710559990832).toFixed(2);
  435. }
  436. }
  437. </script>
  438. <hr>
  439. <h6>Soil Clasification</h6>
  440. <div class="form-row">
  441. <div class="col">
  442. <label for="exampleInputEmail1">Area</label>
  443. <select class="form-control form-control-sm" name="analysis_type" id="analysis_type" required>
  444. <option>Select the type of soil...</option>
  445. <option id="sandy">sandy</option>
  446. <option id="light">light</option>
  447. <option id="medium">medium</option>
  448. <option id="heavy">heavy</option>
  449. </select>
  450. </div>
  451. <div class="col">
  452. <label for="exampleInputEmail1">Block Name</label>
  453. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name">
  454. <small id="emailHelp" class="form-text text-muted"></small>
  455. </div>
  456. </div>
  457. <hr>
  458. <h6>Current Crop Details</h6>
  459. <div class="form-row">
  460. <div class="col">
  461. <label for="exampleInputEmail1">Block Name</label>
  462. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name">
  463. <small id="emailHelp" class="form-text text-muted"></small>
  464. </div>
  465. <div class="col">
  466. <label for="exampleInputEmail1">Block Name</label>
  467. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name">
  468. <small id="emailHelp" class="form-text text-muted"></small>
  469. </div>
  470. <div class="col">
  471. <label for="exampleInputEmail1">Block Name</label>
  472. <input type="text" class="form-control form-control-sm" id="name" aria-describedby="idHelp" placeholder="Block Name">
  473. <small id="emailHelp" class="form-text text-muted"></small>
  474. </div>
  475. </div>
  476. </div>
  477. <div class="modal-footer">
  478. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  479. <button form="editPaddock<?php echo $rowid; ?>" type="submit" class="btn btn-success">Save changes</button>
  480. </form>
  481. </div>
  482. </div>
  483. </div>
  484. </div>
  485. <?php
  486. $i++;
  487. }
  488. }
  489. mysqli_close($con);
  490. ?>
  491. </div>
  492. </div>
  493. </div>
  494. </div>
  495. </div>
  496. <div class="container-fluid">
  497. <div class="row clearfix ">
  498. <div class="col border border-success rounded shadow">
  499. <form>
  500. <div class="form-row">
  501. <div class="form-group col-3">
  502. <label for="farm_name">Farm Name</label>
  503. <input type="text" class="form-control" for="farm_name" placeholder="" readonly></input>
  504. <small id="farm_name" class="form-text text-muted"></small>
  505. </div>
  506. <div class="form-group col-3">
  507. <label for="paddock_name">Paddock Name</label>
  508. <input type="text" class="form-control" for="paddock_name" placeholder="" readonly></input>
  509. <small id="paddock_name" class="form-text text-muted"></small>
  510. </div>
  511. <div class="form-group col-3">
  512. <label for="crop_name">Crop Name</label>
  513. <input type="text" class="form-control" for="crop_name" placeholder="" readonly></input>
  514. <small id="crop_name" class="form-text text-muted"></small>
  515. </div>
  516. <div class="form-group col-3">
  517. <label for="paddock_area">Area</label>
  518. <input type="text" class="form-control" for="paddock_area" placeholder="" readonly></input>
  519. <small id="paddock_area" class="form-text text-muted"></small>
  520. </div>
  521. </div>
  522. </form>
  523. </div>
  524. </div>
  525. <div class="row clearfix">
  526. <div class="col">
  527. <br>
  528. <h3>Crop Information</h3>
  529. </div>
  530. </div>
  531. <div class="row clearfix">
  532. <div class="col-4 ">
  533. <div class="card">
  534. <div class="card-header">
  535. <h4>Current Alerts</h4>
  536. </div>
  537. <div class="card-body">
  538. <div class="table-responsive table-editable">
  539. <span class="table-add float-right mb-3 mr-2"><a href="#!" class="text-success"><i class="fas fa-plus fa-2x" aria-hidden="true"></i></a></span>
  540. <table class="table table-striped table-hover">
  541. <thead class="table-danger">
  542. <tr>
  543. <th scope="col">#</th>
  544. <th scope="col">First</th>
  545. <th scope="col">Last</th>
  546. <th scope="col">Handle</th>
  547. </tr>
  548. </thead>
  549. <tbody>
  550. <tr>
  551. <th scope="row">1</th>
  552. <td>Mark</td>
  553. <td>Otto</td>
  554. <td>@mdo</td>
  555. </tr>
  556. <tr>
  557. <th scope="row">2</th>
  558. <td>Jacob</td>
  559. <td>Thornton</td>
  560. <td>@fat</td>
  561. </tr>
  562. <tr>
  563. <th scope="row">3</th>
  564. <td>Larry</td>
  565. <td>the Bird</td>
  566. <td>@twitter</td>
  567. </tr>
  568. </tbody>
  569. </table>
  570. </div>
  571. </div>
  572. </div>
  573. </div>
  574. <div class="col-4 ">
  575. <div class="card">
  576. <div class="card-header">
  577. <h4>Fertiliser and Disease Control</h4>
  578. </div>
  579. <div class="card-body">
  580. <div class="table-responsive table-editable">
  581. <span class="table-add float-right mb-3 mr-2"><a href="#!" class="text-success"><i class="fas fa-plus fa-2x" aria-hidden="true"></i></a></span>
  582. <table class="table table-striped table-hover">
  583. <thead class="table-success">
  584. <tr>
  585. <th scope="col">#</th>
  586. <th scope="col">First</th>
  587. <th scope="col">Last</th>
  588. <th scope="col">Handle</th>
  589. </tr>
  590. </thead>
  591. <tbody>
  592. <tr>
  593. <th scope="row">1</th>
  594. <td>Mark</td>
  595. <td>Otto</td>
  596. <td>@mdo</td>
  597. </tr>
  598. <tr>
  599. <th scope="row">2</th>
  600. <td>Jacob</td>
  601. <td>Thornton</td>
  602. <td>@fat</td>
  603. </tr>
  604. <tr>
  605. <th scope="row">3</th>
  606. <td>Larry</td>
  607. <td>the Bird</td>
  608. <td>@twitter</td>
  609. </tr>
  610. </tbody>
  611. </table>
  612. </div>
  613. </div>
  614. </div>
  615. </div>
  616. <div class="col-4 ">
  617. <div class="card">
  618. <div class="card-header">
  619. <h4>Irrigation and Weather</h4>
  620. </div>
  621. <div class="card-body">
  622. <div class="table-responsive table-editable">
  623. <span class="table-add float-right mb-3 mr-2"><a href="#!" class="text-success"><i class="fas fa-plus fa-2x" aria-hidden="true"></i></a></span>
  624. <table class="table table-striped table-hover">
  625. <thead class="table-warning">
  626. <tr>
  627. <th scope="col">#</th>
  628. <th scope="col">First</th>
  629. <th scope="col">Last</th>
  630. <th scope="col">Handle</th>
  631. </tr>
  632. </thead>
  633. <tbody>
  634. <tr>
  635. <th scope="row">1</th>
  636. <td>Mark</td>
  637. <td>Otto</td>
  638. <td>@mdo</td>
  639. </tr>
  640. <tr>
  641. <th scope="row">2</th>
  642. <td>Jacob</td>
  643. <td>Thornton</td>
  644. <td>@fat</td>
  645. </tr>
  646. <tr>
  647. <th scope="row">3</th>
  648. <td>Larry</td>
  649. <td>the Bird</td>
  650. <td>@twitter</td>
  651. </tr>
  652. </tbody>
  653. </table>
  654. </div>
  655. </div>
  656. </div>
  657. </div>
  658. </div>
  659. </div>
  660. </div>
  661. </div>
  662. </main>
  663. <footer class="py-4 bg-light mt-auto">
  664. <div class="container-fluid px-4">
  665. <div class="d-flex align-items-center justify-content-between small">
  666. <div class="text-muted">[[SimpleCopyright? &startYear=`2003`]]. All Rights Reserved <a href="[[~1]]"></a></div>
  667. <div>
  668. <a href="[[~39~]]">Privacy Policy</a>
  669. &middot;
  670. <a href="[[~39~]]">Terms &amp; Conditions</a>
  671. </div>
  672. </div>
  673. </div>
  674. </footer>
  675. </div>
  676. </div>
  677. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
  678. <script>
  679. /*!
  680. * Start Bootstrap - SB Admin v7.0.3 (https://startbootstrap.com/template/sb-admin)
  681. * Copyright 2013-2021 Start Bootstrap
  682. * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-sb-admin/blob/master/LICENSE)
  683. */
  684. //
  685. // Scripts
  686. //
  687. window.addEventListener('DOMContentLoaded', event => {
  688. // Toggle the side navigation
  689. const sidebarToggle = document.body.querySelector('#sidebarToggle');
  690. if (sidebarToggle) {
  691. // Uncomment Below to persist sidebar toggle between refreshes
  692. // if (localStorage.getItem('sb|sidebar-toggle') === 'true') {
  693. // document.body.classList.toggle('sb-sidenav-toggled');
  694. // }
  695. sidebarToggle.addEventListener('click', event => {
  696. event.preventDefault();
  697. document.body.classList.toggle('sb-sidenav-toggled');
  698. localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled'));
  699. });
  700. }
  701. });
  702. </script>
  703. <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js" crossorigin="anonymous"></script>
  704. <script src="https://cdn.jsdelivr.net/npm/simple-datatables@latest" crossorigin="anonymous"></script>
  705. </body>
  706. </html>