Browse Source

Browser: sort children by weight

master
parent
commit
ed66265eb3
  1. 4
      src/Browser.js
  2. 8
      src/addCategories.js
  3. 8
      src/customCategory.js
  4. 7
      src/domSort.js

4
src/Browser.js

@ -1,6 +1,8 @@
const EventEmitter = require('events')
const queryString = require('query-string')
const domSort = require('./domSort')
module.exports = class Browser extends EventEmitter {
constructor (id, dom) {
super()
@ -16,6 +18,8 @@ module.exports = class Browser extends EventEmitter {
hooks.call('browser-' + this.id, this, parameters)
this.emit('buildPage', parameters)
this.parameters = parameters
domSort(this.dom)
}
clear () {

8
src/addCategories.js

@ -236,12 +236,16 @@ hooks.register('browser-more-categories', (browser, parameters) => {
const content = browser.dom
if (!Object.keys(parameters).length) {
let block = document.createElement('div')
block.setAttribute('weight', 1)
content.appendChild(block)
let header = document.createElement('h4')
header.innerHTML = lang('repositories')
content.appendChild(header)
block.appendChild(header)
let div = document.createElement('div')
content.appendChild(div)
block.appendChild(div)
addCategoriesList(div, browser, parameters)
browser.catchLinks()

8
src/customCategory.js

@ -157,9 +157,13 @@ hooks.register('browser-more-categories', (browser, parameters) => {
const content = browser.dom
if (!Object.keys(parameters).length) {
let block = document.createElement('div')
block.setAttribute('weight', 0)
content.appendChild(block)
let header = document.createElement('h4')
header.innerHTML = lang('customCategory:header')
content.appendChild(header)
block.appendChild(header)
let ul = document.createElement('ul')
let li = document.createElement('li')
@ -174,7 +178,7 @@ hooks.register('browser-more-categories', (browser, parameters) => {
li.appendChild(a)
ul.appendChild(li)
content.appendChild(ul)
block.appendChild(ul)
}
})

7
src/domSort.js

@ -0,0 +1,7 @@
module.exports = function (dom, attribute='weight') {
const list = Array.from(dom.children).sort(
(a, b) => (a.getAttribute(attribute) || 0) - (b.getAttribute(attribute) || 0)
)
list.forEach(el => dom.appendChild(el))
}
Loading…
Cancel
Save