/* eslint-disable
max-len,
no-return-assign,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import App from '../../../base'
import iconTypeFromName from '../../file-tree/util/iconTypeFromName'
import fileOperationI18nNames from '../../file-tree/util/fileOperationI18nNames'
const historyFileEntityController = function ($scope, $element, $attrs) {
const ctrl = this
ctrl.hasOperation = false
ctrl.getRenameTooltip = i18nRenamedStr => {
const [simplifiedOldPathname, simplifiedPathname] = _getSimplifiedPaths(
ctrl.fileEntity.oldPathname,
ctrl.fileEntity.pathname
)
return `${fileOperationI18nNames.renamed} ${simplifiedOldPathname} → ${simplifiedPathname}`
}
ctrl.getFileOperationName = () => {
if (ctrl.fileEntity.operation === 'edited') {
return fileOperationI18nNames.edited
} else if (ctrl.fileEntity.operation === 'renamed') {
return fileOperationI18nNames.renamed
} else if (ctrl.fileEntity.operation === 'added') {
return fileOperationI18nNames.created
} else if (ctrl.fileEntity.operation === 'removed') {
return fileOperationI18nNames.deleted
} else {
return ''
}
}
const _getSimplifiedPaths = (path1, path2) => {
const path1Parts = path1.split('/')
const path2Parts = path2.split('/')
const maxIterations = Math.min(path1Parts.length, path2Parts.length) - 1
let commonPartIndex
for (
commonPartIndex = 0;
commonPartIndex < maxIterations;
commonPartIndex++
) {
if (path1Parts[commonPartIndex] !== path2Parts[commonPartIndex]) {
break
}
}
path1Parts.splice(0, commonPartIndex)
path2Parts.splice(0, commonPartIndex)
return [path1Parts.join('/'), path2Parts.join('/')]
}
const _handleFolderClick = function () {
ctrl.isOpen = !ctrl.isOpen
ctrl.entityTypeIconClass = _getFolderIcon()
}
const _handleFileClick = () =>
ctrl.historyFileTreeController.handleEntityClick(ctrl.fileEntity)
function _getFolderIcon() {
if (ctrl.isOpen) {
return 'fa-folder-open'
} else {
return 'fa-folder'
}
}
ctrl.$onInit = function () {
if (ctrl.fileEntity.type === 'folder') {
ctrl.isOpen = true
ctrl.entityTypeIconClass = _getFolderIcon()
ctrl.handleClick = _handleFolderClick
} else {
if (ctrl.fileEntity.operation) {
ctrl.hasOperation = true
}
ctrl.entityTypeIconClass = `fa-${iconTypeFromName(ctrl.fileEntity.name)}`
ctrl.entityOpTextClass = ctrl.fileEntity.operation
? `history-file-entity-name-${ctrl.fileEntity.operation}`
: null
ctrl.handleClick = _handleFileClick
$scope.$watch(
() => ctrl.historyFileTreeController.selectedPathname,
selectedPathname =>
(ctrl.isSelected = ctrl.fileEntity.pathname === selectedPathname)
)
}
}
}
export default App.component('historyFileEntity', {
require: {
historyFileTreeController: '^historyFileTree',
},
bindings: {
fileEntity: '<',
},
controller: historyFileEntityController,
templateUrl: 'historyFileEntityTpl',
})