2017-04-01 21:07:01 +00:00
|
|
|
'use strict'
|
|
|
|
|
|
|
|
import $ from 'jquery'
|
|
|
|
import _ from 'lodash'
|
|
|
|
import { makeSafePath } from '../helpers/form'
|
|
|
|
import { setInputSelection } from '../helpers/pages'
|
2016-09-09 23:22:18 +00:00
|
|
|
|
2017-02-09 01:52:37 +00:00
|
|
|
// -> Move Existing Document
|
2016-09-09 23:22:18 +00:00
|
|
|
|
2017-04-01 21:07:01 +00:00
|
|
|
module.exports = (currentBasePath, alerts) => {
|
|
|
|
if (currentBasePath !== '') {
|
|
|
|
$('.btn-move-prompt').removeClass('is-hidden')
|
|
|
|
}
|
2016-09-09 23:22:18 +00:00
|
|
|
|
2017-04-01 21:07:01 +00:00
|
|
|
let moveInitialDocument = _.lastIndexOf(currentBasePath, '/') + 1
|
2016-09-09 23:22:18 +00:00
|
|
|
|
2017-04-01 21:07:01 +00:00
|
|
|
$('.btn-move-prompt').on('click', (ev) => {
|
|
|
|
$('#txt-move-prompt').val(currentBasePath)
|
|
|
|
$('#modal-move-prompt').toggleClass('is-active')
|
|
|
|
setInputSelection($('#txt-move-prompt').get(0), moveInitialDocument, currentBasePath.length)
|
|
|
|
$('#txt-move-prompt').removeClass('is-danger').next().addClass('is-hidden')
|
|
|
|
})
|
2016-09-09 23:22:18 +00:00
|
|
|
|
2017-04-01 21:07:01 +00:00
|
|
|
$('#txt-move-prompt').on('keypress', (ev) => {
|
|
|
|
if (ev.which === 13) {
|
|
|
|
$('.btn-move-go').trigger('click')
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
$('.btn-move-go').on('click', (ev) => {
|
|
|
|
let newDocPath = makeSafePath($('#txt-move-prompt').val())
|
|
|
|
if (_.isEmpty(newDocPath) || newDocPath === currentBasePath || newDocPath === 'home') {
|
|
|
|
$('#txt-move-prompt').addClass('is-danger').next().removeClass('is-hidden')
|
|
|
|
} else {
|
|
|
|
$('#txt-move-prompt').parent().addClass('is-loading')
|
|
|
|
|
|
|
|
$.ajax(window.location.href, {
|
|
|
|
data: {
|
|
|
|
move: newDocPath
|
|
|
|
},
|
|
|
|
dataType: 'json',
|
|
|
|
method: 'PUT'
|
|
|
|
}).then((rData, rStatus, rXHR) => {
|
|
|
|
if (rData.ok) {
|
|
|
|
window.location.assign('/' + newDocPath)
|
|
|
|
} else {
|
|
|
|
alerts.pushError('Something went wrong', rData.error)
|
|
|
|
}
|
|
|
|
}, (rXHR, rStatus, err) => {
|
|
|
|
alerts.pushError('Something went wrong', 'Save operation failed.')
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|