immun updates (#4145)
[openemr.git] / interface / forms_admin / forms_admin.php
blobb01b57b1d463a99dfd87e9c3c578a8316dd6f52b
1 <?php
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
11 //INCLUDES, DO ANY ACTIONS, THEN GET OUR DATA
12 require_once("../globals.php");
13 require_once("$srcdir/registry.inc");
15 use OpenEMR\Common\Acl\AclExtended;
16 use OpenEMR\Common\Csrf\CsrfUtils;
17 use OpenEMR\Core\Header;
19 if (!empty($_GET['method']) && ($_GET['method'] == "enable")) {
20 if (!CsrfUtils::verifyCsrfToken($_GET["csrf_token_form"])) {
21 CsrfUtils::csrfNotVerified();
23 updateRegistered($_GET['id'], "state=1");
24 } elseif (!empty($_GET['method']) && ($_GET['method'] == "disable")) {
25 if (!CsrfUtils::verifyCsrfToken($_GET["csrf_token_form"])) {
26 CsrfUtils::csrfNotVerified();
28 updateRegistered($_GET['id'], "state=0");
29 } elseif (!empty($_GET['method']) && ($_GET['method'] == "install_db")) {
30 if (!CsrfUtils::verifyCsrfToken($_GET["csrf_token_form"])) {
31 CsrfUtils::csrfNotVerified();
33 $dir = getRegistryEntry($_GET['id'], "directory");
34 if (installSQL("$srcdir/../interface/forms/{$dir['directory']}")) {
35 updateRegistered($_GET['id'], "sql_run=1");
36 } else {
37 $err = xl('ERROR: could not open table.sql, broken form?');
39 } elseif (!empty($_GET['method']) && ($_GET['method'] == "register")) {
40 if (!CsrfUtils::verifyCsrfToken($_GET["csrf_token_form"])) {
41 CsrfUtils::csrfNotVerified();
43 registerForm($_GET['name']) or $err = xl('error while registering form!');
46 $bigdata = getRegistered("%") or $bigdata = false;
48 //START OUT OUR PAGE....
51 <html>
52 <head>
53 <?php Header::setupHeader(); ?>
54 </head>
55 <body class="body_top">
57 <div class="container-fluid">
58 <!-- Page header -->
59 <div class="row">
60 <div class="col-12">
61 <h2 class="title"><?php echo xlt('Forms Administration');?></h2>
62 </div>
63 </div>
64 <!-- Form table -->
65 <div class="row">
66 <div class="col-12 mt-3">
67 <?php
68 if (!empty($_POST)) {
69 if (!CsrfUtils::verifyCsrfToken($_POST["csrf_token_form"])) {
70 CsrfUtils::csrfNotVerified();
72 foreach ($_POST as $key => $val) {
73 if (preg_match('/nickname_(\d+)/', $key, $matches)) {
74 sqlQuery("update registry set nickname = ? where id = ?", array($val, $matches[1]));
75 } elseif (preg_match('/category_(\d+)/', $key, $matches)) {
76 sqlQuery("update registry set category = ? where id = ?", array($val, $matches[1]));
77 } elseif (preg_match('/priority_(\d+)/', $key, $matches)) {
78 sqlQuery("update registry set priority = ? where id = ?", array($val, $matches[1]));
79 } elseif (preg_match('/aco_spec_(\d+)/', $key, $matches)) {
80 sqlQuery("update registry set aco_spec = ? where id = ?", array($val, $matches[1]));
86 <?php //ERROR REPORTING
87 if (!empty($err)) {
88 echo "<span class='font-weight-bold text-danger'>" . text($err) . "</span>\n";
92 <?php //REGISTERED SECTION ?>
93 <span class="font-weight-bold"><?php echo xlt('Registered');?></span>
94 <form method="post" action ='./forms_admin.php'>
95 <span class="font-italic">
96 <?php echo xlt('click here to update priority, category, nickname and access control settings'); ?>
97 </span>
98 <input type="hidden" name="csrf_token_form" value="<?php echo attr(CsrfUtils::collectCsrfToken()); ?>" />
99 <input class="btn btn-primary" type='submit' name='update' value='<?php echo xla('Save'); ?>'>
101 <div class="table-responsive mt-3">
102 <table class="table table-striped">
103 <thead>
104 <tr>
105 <th colspan="5"></th>
106 <th><?php echo xlt('Priority'); ?> </th>
107 <th><?php echo xlt('Category'); ?> </th>
108 <th><?php echo xlt('Nickname'); ?> </th>
109 <th><?php echo xlt('Access Control'); ?></th>
110 </tr>
111 </thead>
112 <?php
113 if ($bigdata != false) {
114 foreach ($bigdata as $registry) {
115 $priority_category = sqlQuery(
116 "select priority, category, nickname, aco_spec from registry where id = ?",
117 array($registry['id'])
120 <tr>
121 <td>
122 <span class='text'><?php echo text($registry['id']); ?></span>
123 </td>
124 <td>
125 <span class='font-weight-bold'><?php echo text(xl_form_title($registry['name'])); ?></span>
126 </td>
127 <?php
128 if ($registry['sql_run'] == 0) {
129 echo "<td><span class='text'>" . xlt('registered') . "</span>";
130 } elseif ($registry['state'] == "0") {
131 echo "<td><a class='link_submit text-danger' href='./forms_admin.php?id=" . attr_url($registry['id']) . "&method=enable&csrf_token_form=" . attr_url(CsrfUtils::collectCsrfToken()) . "'>" . xlt('disabled') . "</a>";
132 } else {
133 echo "<td><a class='link_submit text-success' href='./forms_admin.php?id=" . attr_url($registry['id']) . "&method=disable&csrf_token_form=" . attr_url(CsrfUtils::collectCsrfToken()) . "'>" . xlt('enabled') . "</a>";
136 </td>
137 <td>
138 <span class='text'><?php
139 if ($registry['unpackaged']) {
140 echo xlt('PHP extracted');
141 } else {
142 echo xlt('PHP compressed');
145 </span>
146 </td>
147 <td>
148 <?php
149 if ($registry['sql_run']) {
150 echo "<span class='text'>" . xlt('DB installed') . "</span>";
151 } else {
152 echo "<a class='link_submit' href='./forms_admin.php?id=" . attr_url($registry['id']) . "&method=install_db&csrf_token_form=" . attr_url(CsrfUtils::collectCsrfToken()) . "'>" . xlt('install DB') . "</a>";
155 </td>
156 <?php
157 echo "<td><input type='text' class='form-control' size='4' name='priority_" . attr($registry['id']) . "' value='" . attr($priority_category['priority']) . "'></td>";
158 echo "<td><input type='text' class='form-control' size='10' name='category_" . attr($registry['id']) . "' value='" . attr($priority_category['category']) . "'></td>";
159 echo "<td><input type='text' class='form-control' size='10' name='nickname_" . attr($registry['id']) . "' value='" . attr($priority_category['nickname']) . "'></td>";
160 echo "<td>";
161 echo "<select name='aco_spec_" . attr($registry['id']) . "' class='form-control'>";
162 echo "<option value=''></option>";
163 echo AclExtended::genAcoHtmlOptions($priority_category['aco_spec']);
164 echo "</select>";
165 echo "</td>";
167 </tr>
168 <?php
169 } //end of foreach
172 </table>
173 </div>
174 <hr>
176 <?php //UNREGISTERED SECTION ?>
177 <span class="font-weight-bold"><?php echo xlt('Unregistered'); ?></span>
178 <div class="table-responsive mt-3">
179 <table class="table table-striped">
180 <?php
181 $dpath = "$srcdir/../interface/forms/";
182 $dp = opendir($dpath);
184 for ($i = 0; false != ($fname = readdir($dp)); $i++) {
185 if (
186 $fname != "." && $fname != ".." && $fname != "CVS" && $fname != "LBF" &&
187 (is_dir($dpath . $fname) || stristr($fname, ".tar.gz") ||
188 stristr($fname, ".tar") || stristr($fname, ".zip") ||
189 stristr($fname, ".gz"))
191 $inDir[$i] = $fname;
195 // ballards 11/05/2005 fixed bug in removing registered form from the list
196 if ($bigdata != false) {
197 foreach ($bigdata as $registry) {
198 $key = array_search($registry['directory'], $inDir) ; /* returns integer or FALSE */
199 unset($inDir[$key]);
203 foreach ($inDir as $fname) {
204 if (stristr($fname, ".tar.gz") || stristr($fname, ".tar") || stristr($fname, ".zip") || stristr($fname, ".gz")) {
205 $phpState = "PHP compressed";
206 } else {
207 $phpState = "PHP extracted";
210 <tr>
211 <td colspan="2">
212 <?php
213 $form_title_file = @file($GLOBALS['srcdir'] . "/../interface/forms/$fname/info.txt");
214 if ($form_title_file) {
215 $form_title = $form_title_file[0];
216 } else {
217 $form_title = $fname;
220 <span class="font-weight-bold"><?php echo text(xl_form_title($form_title)); ?></span>
221 </td>
222 <td>
223 <?php
224 if ($phpState == "PHP extracted") {
225 echo '<a class="link_submit" href="./forms_admin.php?name=' . attr_url($fname) . '&method=register&csrf_token_form=' . attr_url(CsrfUtils::collectCsrfToken()) . '">' . xlt('register') . '</a>';
226 } else {
227 echo '<span class="text">' . xlt('n/a') . '</span>';
230 </td>
231 <td>
232 <span class="text"><?php echo xlt($phpState); ?></span>
233 </td>
234 <td>
235 <span class="text"><?php echo xlt('n/a'); ?></span>
236 </td>
237 </tr>
238 <?php
239 flush();
240 }//end of foreach
242 </table>
243 </div>
244 </form>
245 </div>
246 </div>
247 </div>
248 </body>
249 </html>