Commit | Line | Data |
---|---|---|
7f254ad8 AE |
1 | <?php |
2 | ||
3 | function librejs_core_js() { | |
4 | return array( | |
5 | 'misc/ajax.js' => '', | |
6 | 'misc/authorize.js' => '', | |
7 | 'misc/autocomplete.js' => '', | |
8 | 'misc/batch.js' => '', | |
9 | 'misc/collapse.js' => '', | |
10 | 'misc/drupal.js' => '', | |
11 | 'misc/farbtastic/farbtastic.js' => '', | |
12 | 'misc/form.js' => '', | |
13 | 'misc/jquery.ba-bbq.js' => 'http://benalman.com/projects/jquery-bbq-plugin/', | |
14 | 'misc/jquery.cookie.js' => 'https://github.com/carhartl/jquery-cookie', | |
15 | 'misc/jquery.form.js' => 'http://malsup.com/jquery/form/', | |
16 | 'misc/jquery.js' => 'http://code.jquery.com/jquery-1.4.4.js', | |
17 | 'misc/jquery.once.js' => '', | |
18 | 'misc/machine-name.js' => '', | |
19 | 'misc/progress.js' => '', | |
20 | 'misc/states.js' => '', | |
21 | 'misc/tabledrag.js' => '', | |
22 | 'misc/tableheader.js' => '', | |
23 | 'misc/tableselect.js' => '', | |
24 | 'misc/textarea.js' => '', | |
25 | 'misc/timezone.js' => '', | |
26 | 'misc/ui/jquery.effects.blind.min.js' => '', | |
27 | 'misc/ui/jquery.effects.bounce.min.js' => '', | |
28 | 'misc/ui/jquery.effects.clip.min.js' => '', | |
29 | 'misc/ui/jquery.effects.core.min.js' => '', | |
30 | 'misc/ui/jquery.effects.drop.min.js' => '', | |
31 | 'misc/ui/jquery.effects.explode.min.js' => '', | |
32 | 'misc/ui/jquery.effects.fade.min.js' => '', | |
33 | 'misc/ui/jquery.effects.fold.min.js' => '', | |
34 | 'misc/ui/jquery.effects.highlight.min.js' => '', | |
35 | 'misc/ui/jquery.effects.pulsate.min.js' => '', | |
36 | 'misc/ui/jquery.effects.scale.min.js' => '', | |
37 | 'misc/ui/jquery.effects.shake.min.js' => '', | |
38 | 'misc/ui/jquery.effects.slide.min.js' => '', | |
39 | 'misc/ui/jquery.effects.transfer.min.js' => '', | |
40 | 'misc/ui/jquery.ui.accordion.min.js' => '', | |
41 | 'misc/ui/jquery.ui.autocomplete.min.js' => '', | |
42 | 'misc/ui/jquery.ui.button.min.js' => '', | |
43 | 'misc/ui/jquery.ui.core.min.js' => '', | |
44 | 'misc/ui/jquery.ui.datepicker.min.js' => '', | |
45 | 'misc/ui/jquery.ui.dialog.min.js' => '', | |
46 | 'misc/ui/jquery.ui.draggable.min.js' => '', | |
47 | 'misc/ui/jquery.ui.droppable.min.js' => '', | |
48 | 'misc/ui/jquery.ui.mouse.min.js' => '', | |
49 | 'misc/ui/jquery.ui.position.min.js' => '', | |
50 | 'misc/ui/jquery.ui.progressbar.min.js' => '', | |
51 | 'misc/ui/jquery.ui.resizable.min.js' => '', | |
52 | 'misc/ui/jquery.ui.selectable.min.js' => '', | |
53 | 'misc/ui/jquery.ui.slider.min.js' => '', | |
54 | 'misc/ui/jquery.ui.sortable.min.js' => '', | |
55 | 'misc/ui/jquery.ui.tabs.min.js' => '', | |
56 | 'misc/ui/jquery.ui.widget.min.js' => '', | |
57 | 'misc/vertical-tabs.js' => '', | |
58 | 'modules/block/block.js' => '', | |
59 | 'modules/book/book.js' => '', | |
60 | 'modules/color/color.js' => '', | |
61 | 'modules/color/preview.js' => '', | |
62 | 'modules/comment/comment-node-form.js' => '', | |
63 | 'modules/contextual/contextual.js' => '', | |
64 | 'modules/dashboard/dashboard.js' => '', | |
65 | 'modules/field/modules/text/text.js' => '', | |
66 | 'modules/field_ui/field_ui.js' => '', | |
67 | 'modules/file/file.js' => '', | |
68 | 'modules/filter/filter.admin.js' => '', | |
69 | 'modules/filter/filter.js' => '', | |
70 | 'modules/locale/locale.datepicker.js' => '', | |
71 | 'modules/locale/tests/locale_test.js' => '', | |
72 | 'modules/menu/menu.admin.js' => '', | |
73 | 'modules/menu/menu.js' => '', | |
74 | 'modules/node/content_types.js' => '', | |
75 | 'modules/node/node.js' => '', | |
76 | 'modules/openid/openid.js' => '', | |
77 | 'modules/overlay/overlay-child.js' => '', | |
78 | 'modules/overlay/overlay-parent.js' => '', | |
79 | 'modules/path/path.js' => '', | |
80 | 'modules/profile/profile.js' => '', | |
81 | 'modules/shortcut/shortcut.admin.js' => '', | |
82 | 'modules/simpletest/simpletest.js' => '', | |
83 | 'modules/system/system.cron.js' => '', | |
84 | 'modules/system/system.js' => '', | |
85 | 'modules/taxonomy/taxonomy.js' => '', | |
86 | 'modules/toolbar/toolbar.js' => '', | |
87 | 'modules/user/user.js' => '', | |
88 | 'modules/user/user.permissions.js' => '', | |
89 | 'themes/bartik/color/preview.js' => '', | |
90 | ); | |
91 | } | |
92 | ||
93 | function librejs_admin_settings($form, &$form_state) { | |
94 | $core_js = librejs_core_js(); | |
95 | $licenses = librejs_licenses(); | |
96 | $gpl_only = array('http://www.gnu.org/licenses/gpl-2.0.html' => 'GNU-GPL-2.0-or-later'); | |
97 | $form['explanation']['#markup'] = 'Select "GNU-GPL-2.0-or-later" for Javascript included with modules downloaded from Drupal.org. Select "Expat" for MIT-licensed JavaScript (Expat license is a synonyn for MIT license).'; | |
98 | $form['table'] = array( | |
99 | '#type' => 'tableform', | |
100 | '#tf_header' => array( | |
101 | t('Script URL'), | |
102 | t('License'), | |
103 | t('Source URL'), | |
104 | ), | |
105 | ); | |
106 | $result = db_query('SELECT id, data, license, source FROM {librejs} ORDER BY data'); | |
107 | foreach ($result as $row) { | |
108 | $js = array($row->data, $row->license, $row->source); | |
109 | $core = isset($core_js[$row->data]); | |
110 | $source = !empty($core_js[$row->data]); | |
111 | $item = array( | |
112 | l($row->data, file_create_url($row->data)), | |
113 | 'license-' . $row->id => array( | |
114 | '#type' => 'select', | |
115 | '#options' => $core ? $gpl_only : $licenses, | |
116 | '#default_value' => $core ? 'http://www.gnu.org/licenses/gpl-2.0.html' : ($row->license ? $row->license : ''), | |
117 | ), | |
118 | 'source-' . $row->id => array( | |
119 | '#type' => 'textfield', | |
120 | '#size' => 40, | |
121 | '#default_value' => $source ? $core_js[$row->data] : ($row->source ? $row->source : ''), | |
122 | '#disabled' => $core, | |
123 | ), | |
124 | ); | |
125 | $form['table']['#tf_rows'][] = $item; | |
126 | } | |
127 | $form['submit'] = array( | |
128 | '#type' => 'submit', | |
129 | '#value' => t('Submit'), | |
130 | ); | |
131 | return $form; | |
132 | } | |
133 | ||
134 | function librejs_admin_settings_submit($form, &$form_state) { | |
135 | foreach ($form_state['values'] as $field => $value) { | |
136 | if (preg_match('/source-(.*)/', $field, $matches)) { | |
137 | db_update('librejs') | |
138 | ->fields(array('source' => $form_state['values']['source-' . $matches[1]], 'license' => $form_state['values']['license-' . $matches[1]])) | |
139 | ->condition('id', $matches[1]) | |
140 | ->execute(); | |
141 | } | |
142 | } | |
143 | } |