diff options
| -rw-r--r-- | API.md | 5 | ||||
| -rw-r--r-- | init.lua | 15 | 
2 files changed, 16 insertions, 4 deletions
| @@ -53,6 +53,11 @@ data.         will be shown as tooltip. Recommended style (in English):         First letter capitalized, no puncation at end of sentence,         max. 100 characters +    * `sorting`: (optional) Sorting method of entries +       * `"abc"`: Alphabetical (default) +       * `"nosort": Entries appear in no particular order +       * A table: Entries appear in exactly the same order as specified in the +         table of entry IDs      * `build_formspec`: The template function. Takes entry data as its        only parameter (has the data type of the entry data) and must        return a formspec which is inserted in the Entry tab. @@ -256,7 +256,8 @@ end  function doc.get_sorted_entry_names(cid)  	local sort_table = {}  	local entry_table = {} -	for eid,entry in pairs(doc.data.categories[cid].entries) do +	local cat = doc.data.categories[cid] +	for eid,entry in pairs(cat.entries) do  		local new_entry = table.copy(entry)  		new_entry.eid = eid  		table.insert(entry_table, new_entry) @@ -267,10 +268,16 @@ function doc.get_sorted_entry_names(cid)  	for i=1, #sort_table do  		reverse_sort_table[sort_table[i]] = i  	end -	local comp = function(e1, e2) -		if reverse_sort_table[e1.name] < reverse_sort_table[e2.name] then return true else return false end +	-- Sorting algorithm +	local comp +	if cat.def.sorting ~= "nosort" then +		if cat.def.sorting == "abc" or cat.def.sorting == nil then +			comp = function(e1, e2) +				if reverse_sort_table[e1.name] < reverse_sort_table[e2.name] then return true else return false end +			end +			table.sort(entry_table, comp) +		end  	end -	table.sort(entry_table, comp)  	return entry_table  end | 
