Unreviewed build fix. Removed the stale code.
[WebKit-https.git] / Websites / perf.webkit.org / public / admin / triggerables.php
1 <?php
2
3 require('../include/admin-header.php');
4
5 if ($db) {
6
7     if ($action == 'add') {
8         if ($db->insert_row('build_triggerables', 'triggerable', array('name' => $_POST['name']))) {
9             notice('Inserted the new triggerable.');
10             regenerate_manifest();
11         } else
12             notice('Could not add the triggerable.');
13     } else if ($action == 'update') {
14         if (update_field('build_triggerables', 'triggerable', 'name'))
15             regenerate_manifest();
16         else
17             notice('Invalid parameters.');
18     } else if ($action == 'update-repositories') {
19         $triggerable_id = intval($_POST['id']);
20
21         $db->begin_transaction();
22         $db->query_and_get_affected_rows("DELETE FROM triggerable_repositories WHERE trigrepo_triggerable = $1", array($triggerable_id));
23
24         $repositories = array_get($_POST, 'repositories');
25         $suceeded = TRUE;
26         if ($repositories) {
27             foreach ($repositories as $repository_id) {
28                 if (!$db->insert_row('triggerable_repositories', 'trigrepo', array('triggerable' => $triggerable_id, 'repository' => $repository_id), NULL)) {
29                     $suceeded = FALSE;
30                     notice("Failed to associate repository $repository_id with triggerable $triggerable_id.");
31                     break;
32                 }
33             }
34         }
35         if ($suceeded) {
36             $db->commit_transaction();
37             notice('Updated the association.');
38             regenerate_manifest();
39         } else
40             $db->rollback_transaction();
41     }
42
43     $repository_rows = $db->fetch_table('repositories', 'repository_name');
44     $repository_names = array();
45
46
47     $page = new AdministrativePage($db, 'build_triggerables', 'triggerable', array(
48         'name' => array('editing_mode' => 'string'),
49         'repositories' => array('custom' => function ($triggerable_row) use (&$repository_rows) {
50             return array(generate_repository_checkboxes($triggerable_row['triggerable_id'], $repository_rows));
51         }),
52     ));
53
54     function generate_repository_checkboxes($triggerable_id, $repository_rows) {
55         global $db;
56
57         $repository_rows = $db->query_and_fetch_all('SELECT * FROM repositories LEFT OUTER JOIN triggerable_repositories
58             ON trigrepo_repository = repository_id AND trigrepo_triggerable = $1 ORDER BY repository_name', array($triggerable_id));
59
60         $form = <<< END
61 <form method="POST">
62 <input type="hidden" name="id" value="$triggerable_id">
63 <input type="hidden" name="action" value="update-repositories">
64 END;
65
66         foreach ($repository_rows as $row) {
67             $checked = $row['trigrepo_triggerable'] ? ' checked' : '';
68             $form .= <<< END
69 <label><input type="checkbox" name="repositories[]" value="{$row['repository_id']}"$checked>{$row['repository_name']}</label>
70 END;
71         }
72
73         return $form . <<< END
74 <button>Save</button>
75 </form>
76 END;
77     }
78
79     $page->render_table('name');
80     $page->render_form_to_add();
81 }
82
83 require('../include/admin-footer.php');
84
85 ?>