Skip to content

Commit

Permalink
bug manager admin files
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaslabbe committed Sep 22, 2016
1 parent 5c02f5c commit fced8ef
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 28 deletions.
4 changes: 4 additions & 0 deletions src/cli/handlebars/abe/listPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ import moment from 'moment'
import {Hooks} from '../../'

export default function listPage(file, index, text) {
if (file.path.indexOf('one-hour-one-day-one-week/manchester-united-maillot-595fc') > -1) {
console.log('* * * * * * * * * * * * * * * * * * * * * * * * * * * * *')
console.log('file', file)
}
var res = '';
file = Hooks.instance.trigger('beforeListPage', file, index, text)

Expand Down
35 changes: 35 additions & 0 deletions src/cli/helpers/file-attr.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
,fileUtils
,dateUnslug
,config
,Manager
} from '../'

var fullAttr = '-abe-(.+?)(?=\.';
Expand Down Expand Up @@ -157,6 +158,40 @@ export default class FileAttr {
return res
}

static sortByDateDesc(a, b) {
var dateA = new Date(a.date)
var dateB = new Date(b.date)
if(dateA < dateB) {
return 1
}else if(dateA > dateB) {
return -1
}
return 0
}

/**
* Filter and array of file path and return the latest version of those files
* @param {Object} urls object with path to file, filename etc ...
* @param {String} type (draft|waiting|valid)
* @return {Object} urls object filtered
*/
static getLatestVersion(docPath) {
var files = Manager.instance.getList()
var fileWithoutExtension = docPath.replace('.' + config.files.templates.extension, '')
var sameFiles = []
Array.prototype.forEach.call(files, (file) => {
if (file.path.indexOf(fileWithoutExtension) > -1) {
sameFiles.push(file)
console.log('file.path', file.path)
}
})
if (sameFiles.length > 0) {
sameFiles.sort(FileAttr.sortByDateDesc)
return sameFiles[0]
}
return null
}

/**
* Filter and array of file path and return the latest version of those files
* @param {Object} urls object with path to file, filename etc ...
Expand Down
15 changes: 11 additions & 4 deletions src/cli/helpers/file-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export default class FileParser {
date: date,
cleanDate: fileDate.format("YYYY/MM/DD HH:MM:ss"),
duration: duration,
status: status,
// status: status,
cleanName: cleanName,
cleanNameNoExt: cleanNameNoExt,
cleanFilePath: cleanFilePath,
Expand Down Expand Up @@ -234,7 +234,7 @@ export default class FileParser {
}

let extension = config.files.templates.extension
if(typeof url !== 'undefined' && url !== null && url.indexOf('.' + extension) > -1) {
if(typeof url !== 'undefined' && url !== null) {

var dir = fileUtils.removeLast(url).replace(config.root, '')
var filename = fileUtils.filename(url)
Expand Down Expand Up @@ -405,9 +405,16 @@ export default class FileParser {
var json = FileParser.getJson(file.path)

if(typeof json.abe_meta !== 'undefined' && json.abe_meta !== null) {
cleanFile.abe_meta = json.abe_meta
cleanFile.abe_meta = {
date: (typeof json.abe_meta.date !== 'undefined' && json.abe_meta.date !== null) ? json.abe_meta.date : null
, type: (typeof json.abe_meta.type !== 'undefined' && json.abe_meta.type !== null) ? json.abe_meta.type : null
, link: (typeof json.abe_meta.link !== 'undefined' && json.abe_meta.link !== null) ? json.abe_meta.link : null
, template: (typeof json.abe_meta.template !== 'undefined' && json.abe_meta.template !== null) ? json.abe_meta.template : null
, status: (typeof json.abe_meta.status !== 'undefined' && json.abe_meta.status !== null) ? json.abe_meta.status : null
, cleanName: (typeof json.abe_meta.cleanName !== 'undefined' && json.abe_meta.cleanName !== null) ? json.abe_meta.cleanName : null
, cleanFilename: (typeof json.abe_meta.cleanFilename !== 'undefined' && json.abe_meta.cleanFilename !== null) ? json.abe_meta.cleanFilename : null
}
}

Array.prototype.forEach.call(withKeys, (key) => {
var keyFirst = key.split('.')[0]
cleanFile[keyFirst] = json[keyFirst]
Expand Down
21 changes: 12 additions & 9 deletions src/cli/helpers/file-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -228,26 +228,29 @@ export default class FileUtils {

if(typeof merged[cleanFilePath] === 'undefined' || merged[cleanFilePath] === null) {
merged[cleanFilePath] = file
merged[cleanFilePath][file.status] = true
merged[cleanFilePath][file.abe_meta.status] = true
}else {
var oldDate = new Date(merged[cleanFilePath].date)
var newDate = new Date(file.date)
var oldStatus = ''
if(merged[cleanFilePath][file.status]) {
oldStatus = file.status
if(merged[cleanFilePath][file.abe_meta.status]) {
oldStatus = file.abe_meta.status
}
if(typeof merged[cleanFilePath][file.status] === 'undefined' || merged[cleanFilePath][file.status] === null) {
merged[cleanFilePath][file.status] = true
}else if(newDate > oldDate && oldStatus === file.status) {
merged[cleanFilePath][file.status] = true
if(typeof merged[cleanFilePath][file.abe_meta.status] === 'undefined' || merged[cleanFilePath][file.abe_meta.status] === null) {
merged[cleanFilePath][file.abe_meta.status] = true
}else if(newDate > oldDate && oldStatus === file.abe_meta.status) {
merged[cleanFilePath][file.abe_meta.status] = true
}
}
// if (file.path.indexOf('one-hour-one-day-one-week/manchester-united-maillot-595fc') > -1) {
// console.log('* * * * * * * * * * * * * * * * * * * * * * * * * * * * *')
// console.log('file', file)
// }
})

// return merged
Array.prototype.forEach.call(Object.keys(merged), (key) => {
var merge = merged[key]
arMerged.push(merge)
arMerged.push(merged[key])
})

return arMerged
Expand Down
2 changes: 0 additions & 2 deletions src/cli/models/Manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@ class Manager {

this._list = FileParser.getAllFilesWithKeys(this._whereKeys)
this._loadTime.duration()
// console.log('* * * * * * * * * * * * * * * * * * * * * * * * * * * * *')
// console.log('this._list[0]', this._list[0])

// this._list = FileParser.getAllFiles(useKeys)
this._list.sort(FileParser.predicatBy('date'))
Expand Down
16 changes: 3 additions & 13 deletions src/server/routes/get-main.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,24 +65,14 @@ var route = function(req, res, next) {
isHome = false

if(!fileAttr.test(filePath)){
var folderFilePath = filePath.split('/')
folderFilePath.pop()
folderFilePath = fileUtils.pathWithRoot(folderFilePath.join('/'))
mkdirp.sync(folderFilePath)
var files = FileParser.getFiles(folderFilePath, true, 2)
var latest = fileAttr.filterLatestVersion(fileAttr.getFilesRevision(files, filePath), 'draft')
if(latest.length) {
filePath = latest[0].path
var filePathTest = fileAttr.getLatestVersion(req.query.filePath)
if(typeof filePathTest !== 'undefined' && filePathTest !== null) {
filePath = filePathTest.path
}
}

let tplUrl = FileParser.getFileDataFromUrl(filePath)

if(!fileUtils.isFile(tplUrl.json.path)) {
res.redirect("/abe/");
return;
}

editor(templatePath, tplUrl)
.then((result) => {
var manager = {}
Expand Down

0 comments on commit fced8ef

Please sign in to comment.