mirror of
https://github.com/discourse/discourse.git
synced 2025-05-25 09:57:25 +08:00
add callback priority to tags html
This commit is contained in:
@ -392,6 +392,7 @@ class PluginApi {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a callback to be called every time tags render
|
* Register a callback to be called every time tags render
|
||||||
|
* highest priority callbacks are called first
|
||||||
* example:
|
* example:
|
||||||
*
|
*
|
||||||
* callback = function(topic, params) {
|
* callback = function(topic, params) {
|
||||||
@ -400,11 +401,11 @@ class PluginApi {
|
|||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
* api.addTagsHtmlCallback(callback);
|
* api.addTagsHtmlCallback(callback, {priority: 100});
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
addTagsHtmlCallback(callback) {
|
addTagsHtmlCallback(callback, options) {
|
||||||
addTagsHtmlCallback(callback);
|
addTagsHtmlCallback(callback, options);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,10 +1,20 @@
|
|||||||
import renderTag from 'discourse/lib/render-tag';
|
import renderTag from 'discourse/lib/render-tag';
|
||||||
|
|
||||||
let callbacks = null;
|
let callbacks = null;
|
||||||
|
let priorities = null;
|
||||||
|
|
||||||
export function addTagsHtmlCallback(callback) {
|
export function addTagsHtmlCallback(callback, options) {
|
||||||
callbacks = callbacks || [];
|
callbacks = callbacks || [];
|
||||||
callbacks.push(callback);
|
priorities = priorities || [];
|
||||||
|
const priority = (options && options.priority) || 0;
|
||||||
|
|
||||||
|
let i = 0;
|
||||||
|
while(i < priorities.length && priorities[i] > priority) {
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
priorities.splice(i, 0, priority);
|
||||||
|
callbacks.splice(i, 0, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function(topic, params){
|
export default function(topic, params){
|
||||||
|
Reference in New Issue
Block a user