aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/adm
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/adm')
-rw-r--r--phpBB/adm/style/acp_ext_actions.html6
-rw-r--r--phpBB/adm/style/acp_ext_delete_data.html40
-rw-r--r--phpBB/adm/style/acp_ext_disable.html34
-rw-r--r--phpBB/adm/style/acp_ext_enable.html40
-rw-r--r--phpBB/adm/style/acp_ext_list.html19
-rw-r--r--phpBB/adm/style/admin.js58
-rw-r--r--phpBB/adm/style/ajax.js28
7 files changed, 97 insertions, 128 deletions
diff --git a/phpBB/adm/style/acp_ext_actions.html b/phpBB/adm/style/acp_ext_actions.html
new file mode 100644
index 0000000000..b9c2febbe5
--- /dev/null
+++ b/phpBB/adm/style/acp_ext_actions.html
@@ -0,0 +1,6 @@
+{% for action in enabled.actions %}
+<a href="{{ action.U_ACTION }}"{% if action.L_ACTION_EXPLAIN %} title="{{ action.L_ACTION_EXPLAIN }}"{% endif %}{% if action.COLOR %} style="color: {{ action.COLOR }};"{% endif %} data-ajax="{{ action.ACTION_AJAX }}">{{ action.L_ACTION }}</a>{% if not action.S_LAST_ROW %}&nbsp;|&nbsp;{% endif %}
+{% endfor %}
+{% for action in disabled.actions %}
+<a href="{{ action.U_ACTION }}"{% if action.L_ACTION_EXPLAIN %} title="{{ action.L_ACTION_EXPLAIN }}"{% endif %}{% if action.COLOR %} style="color: {{ action.COLOR }};"{% endif %} data-ajax="{{ action.ACTION_AJAX }}">{{ action.L_ACTION }}</a>{% if not action.S_LAST_ROW %}&nbsp;|&nbsp;{% endif %}
+{% endfor %} \ No newline at end of file
diff --git a/phpBB/adm/style/acp_ext_delete_data.html b/phpBB/adm/style/acp_ext_delete_data.html
deleted file mode 100644
index 0f3adb7cfe..0000000000
--- a/phpBB/adm/style/acp_ext_delete_data.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!-- INCLUDE overall_header.html -->
-
- <a id="maincontent"></a>
-
- <h1>{L_EXTENSIONS_ADMIN}</h1>
-
- <p>{L_EXTENSIONS_EXPLAIN}</p>
- <p>{L_EXTENSION_DELETE_DATA_EXPLAIN}</p>
-
- <!-- IF MIGRATOR_ERROR -->
- <div class="errorbox">
- <p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
- <p>{MIGRATOR_ERROR}</p>
- <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
- </div>
- <!-- ELSEIF PRE -->
- <div class="errorbox">
- <p>{L_CONFIRM_MESSAGE}</p>
- </div>
-
- <form id="acp_extensions" method="post" action="{U_PURGE}">
- <fieldset class="submit-buttons">
- <legend>{L_EXTENSION_DELETE_DATA}</legend>
- <input class="button1" type="submit" name="delete_data" value="{L_EXTENSION_DELETE_DATA}" />
- <input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
- </fieldset>
- </form>
- <!-- ELSEIF S_NEXT_STEP -->
- <div class="errorbox">
- <p>{L_EXTENSION_DELETE_DATA_IN_PROGRESS}</p>
- </div>
- <!-- ELSE -->
- <div class="successbox">
- <p>{L_EXTENSION_DELETE_DATA_SUCCESS}</p>
- <br />
- <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
- </div>
- <!-- ENDIF -->
-
-<!-- INCLUDE overall_footer.html -->
diff --git a/phpBB/adm/style/acp_ext_disable.html b/phpBB/adm/style/acp_ext_disable.html
deleted file mode 100644
index d2b5c46fe8..0000000000
--- a/phpBB/adm/style/acp_ext_disable.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!-- INCLUDE overall_header.html -->
-
- <a id="maincontent"></a>
-
- <h1>{L_EXTENSIONS_ADMIN}</h1>
-
- <p>{L_EXTENSIONS_EXPLAIN}</p>
- <p>{L_EXTENSION_DISABLE_EXPLAIN}</p>
-
- <!-- IF PRE -->
- <fieldset>
- <h2>{L_CONFIRM}</h2>
- <p>{L_CONFIRM_MESSAGE}</p>
- </fieldset>
-
- <form id="acp_extensions" method="post" action="{U_DISABLE}">
- <fieldset class="submit-buttons">
- <input class="button1" type="submit" name="disable" value="{L_EXTENSION_DISABLE}" />
- <input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
- </fieldset>
- </form>
- <!-- ELSEIF S_NEXT_STEP -->
- <div class="successbox notice">
- <p>{L_EXTENSION_DISABLE_IN_PROGRESS}</p>
- </div>
- <!-- ELSE -->
- <div class="successbox">
- <p>{L_EXTENSION_DISABLE_SUCCESS}</p>
- <br />
- <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
- </div>
- <!-- ENDIF -->
-
-<!-- INCLUDE overall_footer.html -->
diff --git a/phpBB/adm/style/acp_ext_enable.html b/phpBB/adm/style/acp_ext_enable.html
deleted file mode 100644
index 8a4a35359e..0000000000
--- a/phpBB/adm/style/acp_ext_enable.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!-- INCLUDE overall_header.html -->
-
- <a id="maincontent"></a>
-
- <h1>{L_EXTENSIONS_ADMIN}</h1>
-
- <p>{L_EXTENSIONS_EXPLAIN}</p>
- <p>{L_EXTENSION_ENABLE_EXPLAIN}</p>
-
- <!-- IF MIGRATOR_ERROR -->
- <div class="errorbox">
- <p><strong>{L_MIGRATION_EXCEPTION_ERROR}</strong></p>
- <p>{MIGRATOR_ERROR}</p>
- <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
- </div>
- <!-- ELSEIF PRE -->
- <fieldset>
- <h2>{L_CONFIRM}</h2>
- <p>{L_CONFIRM_MESSAGE}</p>
- </fieldset>
-
- <form id="acp_extensions" method="post" action="{U_ENABLE}">
- <fieldset class="submit-buttons">
- <input class="button1" type="submit" name="enable" value="{L_EXTENSION_ENABLE}" />
- <input class="button2" type="submit" name="cancel" value="{L_CANCEL}" />
- </fieldset>
- </form>
- <!-- ELSEIF S_NEXT_STEP -->
- <div class="successbox notice">
- <p>{L_EXTENSION_ENABLE_IN_PROGRESS}</p>
- </div>
- <!-- ELSE -->
- <div class="successbox">
- <p>{L_EXTENSION_ENABLE_SUCCESS}</p>
- <br />
- <p><a href="{U_RETURN}">{L_RETURN_TO_EXTENSION_LIST}</a></p>
- </div>
- <!-- ENDIF -->
-
-<!-- INCLUDE overall_footer.html -->
diff --git a/phpBB/adm/style/acp_ext_list.html b/phpBB/adm/style/acp_ext_list.html
index 8e2c7452a3..c3c3b3fb66 100644
--- a/phpBB/adm/style/acp_ext_list.html
+++ b/phpBB/adm/style/acp_ext_list.html
@@ -42,8 +42,8 @@
</tr>
</thead>
<tbody>
- <!-- IF .enabled -->
- <tr>
+
+ <tr id="ext_enabled_header"<!-- IF not .enabled --> class="hidden"<!-- ENDIF -->>
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_ENABLED}</strong><!-- EVENT acp_ext_list_enabled_title_after --></td>
</tr>
<!-- BEGIN enabled -->
@@ -59,17 +59,12 @@
</td>
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
<td style="text-align: center;">
- <!-- BEGIN actions -->
- <a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
- <!-- IF not enabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
- <!-- END actions -->
+ <!-- INCLUDE acp_ext_actions.html -->
</td>
</tr>
<!-- END enabled -->
- <!-- ENDIF -->
- <!-- IF .disabled -->
- <tr>
+ <tr id="ext_disabled_header"<!-- IF not .disabled --> class="hidden"<!-- ENDIF -->>
<td class="row3" colspan="4"><strong>{L_EXTENSIONS_DISABLED}</strong><!-- EVENT acp_ext_list_disabled_title_after --></td>
</tr>
<!-- BEGIN disabled -->
@@ -87,14 +82,10 @@
<!-- IF disabled.U_DETAILS --><a href="{disabled.U_DETAILS}">{L_DETAILS}</a><!-- ENDIF -->
</td>
<td style="text-align: center;">
- <!-- BEGIN actions -->
- <a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
- <!-- IF not disabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
- <!-- END actions -->
+ <!-- INCLUDE acp_ext_actions.html -->
</td>
</tr>
<!-- END disabled -->
- <!-- ENDIF -->
</tbody>
</table>
diff --git a/phpBB/adm/style/admin.js b/phpBB/adm/style/admin.js
index 551c78a4a3..b7c25b7c86 100644
--- a/phpBB/adm/style/admin.js
+++ b/phpBB/adm/style/admin.js
@@ -229,6 +229,64 @@ function parse_document(container)
}
/**
+ * Extension actions helper functions
+ */
+function move_to_enabled(element)
+{
+ var disabled_header = document.querySelector('#ext_disabled_header');
+ disabled_header.parentNode.insertBefore(element, disabled_header);
+ element.classList.remove('ext_disabled');
+ element.classList.add('ext_enabled');
+}
+function move_to_disabled(element)
+{
+ var table_body = document.querySelector('#ext_disabled_header').parentNode;
+ table_body.appendChild(element);
+ element.classList.remove('ext_enabled');
+ element.classList.add('ext_disabled');
+}
+function set_actions(container, actions) {
+ container.innerHTML = '';
+ for (var i = 0; i < actions.length; i++) {
+ var a = document.createElement('a');
+ a.href = actions[i].U_ACTION.split('&amp;').join('&'); // replace all occurances
+ a.title = actions[i].L_ACTION_EXPLAIN;
+ if (actions[i].COLOR) {
+ a.style = actions[i].COLOR;
+ }
+ a.innerHTML = actions[i].L_ACTION;
+ // ajaxify this action as well
+ phpbb.ajaxify({
+ selector: a,
+ refresh: false,
+ callback: actions[i].ACTION_AJAX
+ });
+
+ container.appendChild(a);
+
+ if (i < actions.length - 1) {
+ container.innerHTML += '&nbsp;|&nbsp;';
+ }
+ }
+}
+function show_enabled_header() {
+ document.querySelector('#ext_enabled_header').classList.remove('hidden');
+}
+function show_disabled_header() {
+ document.querySelector('#ext_disabled_header').classList.remove('hidden');
+}
+function hide_disabled_header_if_empty() {
+ if (!document.querySelector('.ext_disabled')) {
+ document.querySelector('#ext_disabled_header').classList.add('hidden');
+ }
+}
+function hide_enabled_header_if_empty() {
+ if (!document.querySelector('.ext_enabled')) {
+ document.querySelector('#ext_enabled_header').classList.add('hidden');
+ }
+}
+
+/**
* Run onload functions
*/
(function($) {
diff --git a/phpBB/adm/style/ajax.js b/phpBB/adm/style/ajax.js
index 895bb056e5..644e74bef7 100644
--- a/phpBB/adm/style/ajax.js
+++ b/phpBB/adm/style/ajax.js
@@ -158,6 +158,34 @@ phpbb.addAjaxCallback('row_delete', function(res) {
});
/**
+ * Callbacks for extension actions
+ */
+phpbb.addAjaxCallback('ext_enable', function(res) {
+ if (res.EXT_ENABLE_SUCCESS) {
+ move_to_enabled(this.parentNode.parentNode);
+ set_actions(this.parentNode, res.ACTIONS);
+ show_enabled_header();
+ hide_disabled_header_if_empty();
+ }
+});
+phpbb.addAjaxCallback('ext_delete_data', function(res) {
+ if (res.EXT_DELETE_DATA_SUCCESS) {
+ move_to_disabled(this.parentNode.parentNode);
+ set_actions(this.parentNode, res.ACTIONS);
+ show_disabled_header();
+ hide_enabled_header_if_empty();
+ }
+});
+phpbb.addAjaxCallback('ext_disable', function(res) {
+ if (res.EXT_DISABLE_SUCCESS) {
+ move_to_disabled(this.parentNode.parentNode);
+ set_actions(this.parentNode, res.ACTIONS);
+ show_disabled_header();
+ hide_enabled_header_if_empty();
+ }
+});
+
+/**
* Handler for submitting permissions form in chunks
* This call will submit permissions forms in chunks of 5 fieldsets.
*/