/**
* v_editName.js
* Version: 0.1
* User: wy
* Date: 2017-10-09
* Copyright(c)  2017. U-GEN Tech.Co,Ltd. All Rights Reserved.
* 修改名称页面
*/

import {iot, uPublic, uComponents} from '../../public/public.js';

iot.ready(init);
function init() {
    //通用 input、dialog、loading组件
    uPublic.componentsInit(['u-text','u-dialog','u-loading']);
    const app = new Vue({
        data:{  
            textName: iot.navigator.getExtras().nickname,  
            textErrorTip: null,
            //配置组件
            componentsConfig: initComponentsConfig(),
            extras: {}
        },
        mounted(){       
        	this.extras = iot.navigator.getExtras();
        },
        methods:{
        	getTextName(){
        		return this.textName;
        	},
        	setTextName(text){
        		this.textName = text;
        	},
        	getTextErrorTip(){
        		return this.textErrorTip;
        	},
        	setTextErrorTip(tip){
        		this.textErrorTip = tip;
        	},
            //tap <
            onBackTap(){
                backTap();
            }, 
            //tap 保存
            onSaveTap(){
                saveTap();
            },           
            onNameChange(text){
                nameChange(this,text);            
            }                     
        }   
    }).$mount('#app');
}

//配置组件参数
function initComponentsConfig() {
    return {
        nameInput: {
            initParam: {
                class: 'custom-editName-text',
                placeholder: Vue.t('editName.nickNameInputTip')
            }
        },      
        dialog: {
            initParam: {
                class: 'custom-dialog'
            }
        },
        loading: {
            initParam: {
                class: 'custom-loading'
            }
        }               
    }
}

//tap <
function backTap(){
    iot.navigator.back();
}

//tap 保存
function saveTap(self){
    iot.navigator.back();
    if(self.getTextName() == null || self.getTextName().trim() == ''){
    	self.setTextErrorTip(Vue.t('editName.nameCanNotNull'));
    }else{
    	uComponents.showLoading(self);
		iot.business.api.sendCustom('user/editUsername',{
		    data: {
		        device_id: self.extras.deviceId,
		        nickname: self.getTextName()
		    },
		    success: (response) => {
		    	console.log(response);
		    	let data = uPublic.checkResponseData(response.data);
	    		if(data){
			    	uComponents.openAlert(self, Vue.t('editName.nicknameCanNotBeBlank'), {
			        text: Vue.t('btn.confirm'), callback: function () {
							let opener = plus.webview.currentWebview().opener();
							let view = plus.webview.getWebviewById(opener.id);
							console.log(view);
							iot.navigator.fire(plus.webview.currentWebview().opener(),'returnPage',{});
							console.log('returnPage');
		    				iot.navigator.back();
				        }
			    	});
	    		}
		    },
		    error: (error) => {
		    	console.log(error);
		    	uComponents.hideLoading(self);
		    	uComponents.openAlert(self, Vue.t('editName.editNameFailue'), {
		        text: Vue.t('btn.confirm'), callback: function () {
		        		let opener = plus.webview.currentWebview().opener();
	    				iot.navigator.back();
			        }
		    	});
		    },
		    complete: () => {
	    		uComponents.hideLoading(self);
		    }
		});
    }
}

function nameChange(self,text){
    self.textName = text;
    self.setTextErrorTip(null);
    console.log('nameChange: ' + self.textName);
}