Here is my TODO list: already done ==> Account.js <== ==> Admin.js <== ==> AutoLayout.js <== ==> Listeners.js <== ==> Mapper.js <== ==> Organize.js <== ==> PasteInput.js <== ==> ReactComponents.js <== ==> Util.js <== TODO (I think) simple to make modular ==> Backbone.js <== ==> Control.js <== ==> Create.js <== ==> Filter.js <== ==> Import.js <== ==> Mobile.js <== ==> Synapse.js <== ==> SynapseCard.js <== ==> Topic.js <== ==> TopicCard.js <== ==> Views.js <== ==> Visualize.js <== TODO hard to make modular ==> Constants.js <== ==> Debug.js <== ==> GlobalUI.js <== ==> JIT.js <== ==> Map.js <== ==> Realtime.js <== ==> Router.js <==
117 lines
3.1 KiB
JavaScript
117 lines
3.1 KiB
JavaScript
/* uses window.Metamaps.Erb */
|
|
|
|
const Account = {
|
|
listenersInitialized: false,
|
|
init: function () {
|
|
var self = Metamaps.Account
|
|
},
|
|
initListeners: function () {
|
|
var self = Metamaps.Account
|
|
|
|
$('#user_image').change(self.showImagePreview)
|
|
self.listenersInitialized = true
|
|
},
|
|
toggleChangePicture: function () {
|
|
var self = Account
|
|
|
|
$('.userImageMenu').toggle()
|
|
if (!self.listenersInitialized) self.initListeners()
|
|
},
|
|
openChangePicture: function () {
|
|
var self = Account
|
|
|
|
$('.userImageMenu').show()
|
|
if (!self.listenersInitialized) self.initListeners()
|
|
},
|
|
closeChangePicture: function () {
|
|
var self = Account
|
|
|
|
$('.userImageMenu').hide()
|
|
},
|
|
showLoading: function () {
|
|
var self = Account
|
|
|
|
var loader = new CanvasLoader('accountPageLoading')
|
|
loader.setColor('#4FC059'); // default is '#000000'
|
|
loader.setDiameter(28) // default is 40
|
|
loader.setDensity(41) // default is 40
|
|
loader.setRange(0.9); // default is 1.3
|
|
loader.show() // Hidden by default
|
|
$('#accountPageLoading').show()
|
|
},
|
|
showImagePreview: function () {
|
|
var self = Account
|
|
|
|
var file = $('#user_image')[0].files[0]
|
|
|
|
var reader = new FileReader()
|
|
|
|
reader.onload = function (e) {
|
|
var $canvas = $('<canvas>').attr({
|
|
width: 84,
|
|
height: 84
|
|
})
|
|
var context = $canvas[0].getContext('2d')
|
|
var imageObj = new Image()
|
|
|
|
imageObj.onload = function () {
|
|
$('.userImageDiv canvas').remove()
|
|
$('.userImageDiv img').hide()
|
|
|
|
var imgWidth = imageObj.width
|
|
var imgHeight = imageObj.height
|
|
|
|
var dimensionToMatch = imgWidth > imgHeight ? imgHeight : imgWidth
|
|
// draw cropped image
|
|
var nonZero = Math.abs(imgHeight - imgWidth) / 2
|
|
var sourceX = dimensionToMatch === imgWidth ? 0 : nonZero
|
|
var sourceY = dimensionToMatch === imgHeight ? 0 : nonZero
|
|
var sourceWidth = dimensionToMatch
|
|
var sourceHeight = dimensionToMatch
|
|
var destX = 0
|
|
var destY = 0
|
|
var destWidth = 84
|
|
var destHeight = 84
|
|
|
|
context.drawImage(imageObj, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight)
|
|
$('.userImageDiv').prepend($canvas)
|
|
}
|
|
imageObj.src = reader.result
|
|
}
|
|
|
|
if (file) {
|
|
reader.readAsDataURL(file)
|
|
$('.userImageMenu').hide()
|
|
$('#remove_image').val('0')
|
|
}
|
|
},
|
|
removePicture: function () {
|
|
var self = Account
|
|
|
|
$('.userImageDiv canvas').remove()
|
|
$('.userImageDiv img').attr('src', window.Metamaps.Erb['user.png']).show()
|
|
$('.userImageMenu').hide()
|
|
|
|
var input = $('#user_image')
|
|
input.replaceWith(input.val('').clone(true))
|
|
$('#remove_image').val('1')
|
|
},
|
|
changeName: function () {
|
|
$('.accountName').hide()
|
|
$('.changeName').show()
|
|
},
|
|
showPass: function () {
|
|
$('.toHide').show()
|
|
$('.changePass').hide()
|
|
},
|
|
hidePass: function () {
|
|
$('.toHide').hide()
|
|
$('.changePass').show()
|
|
|
|
$('#current_password').val('')
|
|
$('#user_password').val('')
|
|
$('#user_password_confirmation').val('')
|
|
}
|
|
}
|
|
|
|
export default Account
|