gbwizard.js 5.37 KB
/**
 * Created by kkb on 15/8/24.
 */
$(function(){
    function random_num(under,over){
        var under = under || 10,
            over = over || 20;

        return parseInt(Math.random()*(over - under + 1)+under);
    }
    (function(){
        var avatar_url = 'avatar_'+ random_num(1,$('.btn-change-avatar').data('total')) + '.jpg',
            img_src = global_contextPath + '/networks/avatars/' + avatar_url,
            $img = $('.avatar-container img'),
            $img_container = $('.avatar-container');
        $img.data('avatar-url',avatar_url);
        $img.attr('src',img_src);
        $img_container.height($img.width());

    })();

    function change_photo(){
        var $img_container = $('.avatar-container'),
            $img = $img_container.find('img:last'),
            avatar_url = 'avatar_'+ random_num(1,$('.btn-change-avatar').data('total')) + '.jpg',
            img_src = global_contextPath + '/networks/avatars/' + avatar_url,
            $newimg = $img.clone();
        $img.data('avatar-url',avatar_url);
        $img.addClass('change-photo animated animate-play gb-short-play');
        $img_container.addClass('active');

        $newimg.attr('src',img_src);
        $newimg.css({'display':'none'});
        $newimg.data('avatar-url',avatar_url);
        //保证$img被移除掉后插入新元素
        if($img_container.find('img').length <= 1){
            $newimg.insertBefore($img).fadeIn();
        }

        $img.fadeOut(750,function(){
            $(this).remove();
        });
    }

    $('.btn-change-avatar').click(change_photo);

    //上传图片
    var options = {
        url: global_contextPath + '/ajaxfileuploadservlet.htm',
        dataType: 'json',
        multipart: true,
        sequentialUploads: true,
        add: function (e, data) {
            var goUpload = true;
            var uploadFile = data.files[0];
            if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) {
                alert('请上传图片格式文件(gif|jpg|jpeg|tiff|png)');
                goUpload = false;
            }

            if (uploadFile.size > 2000000) { // 2mb
                alert('上传图片过大(2M以内)');
                goUpload = false;
            }

            if (goUpload == true) {
                data.submit();
            }
        },
        formData : [
            {
                name: 'type',
                value: 'avatar'
            }
        ],
        start: function (e, data) {

        }
    };

    $('#avatar-upload').fileupload($.extend(options,{
        done: function (e, data) {
            var img_src = global_contextPath + data.result.url;
            if(data.result.url){
                $('.avatar-container img').attr('src',img_src).data('avatar-url',data.result.srvname);
            }else{
                alert('错误信息:' + data.result.Error);
            }
        }
    }));
    var resize_hr = (function(){
        var $form = $('#userinfo-form');
        if($form.length > 0){
            $('.separation-line').height($form.height());
        }
        return arguments.callee;
    })();
    //初始化表单
    (function(){
        var $form = $('#userinfo-form'),
            fullname = '',
            mail = window.mail,
            avatar = '';
        if($form.length > 0 && global_onlineuser.uid > 0 ){
            fullname = $.trim(global_onlineuser.fullname);
            avatar = $.trim(global_onlineuser.avatar);
            if(fullname!=''){
                $form.find('input[name="fullname"]').val(fullname);
            }
            if(mail){
                $form.find('input[name="email"]').attr('disabled','true').val(mail);
            }
            //设置分割线
            resize_hr();
        }
        if($form.length > 0){
            $form.validationEngine('attach',{promptPosition : "topLeft", scroll: false, autoHidePrompt:true, autoHideDelay:2000});
            $('#save-profile').click(function(){
                var dto = {
                    },
                    $form = $('#userinfo-form'),
                    l = Ladda.create(this);

                if(!$form.validationEngine('validate')){
                    return;
                }

                l.start();
                dto.fullname = $.trim($form.find('input[name="fullname"]').val());
                dto.mail = $.trim($form.find('input[name="email"]').val());
                dto.selfintro = $.trim($form.find('textarea[name="selfintro"]').val());
                dto.avatar = $('.avatar-container img:not(:hidden)').data('avatar-url');

                identityService.saveUserForWizard(dto,{
                    callback:function(data){
                        l.stop();
                        $('#logalert-ok').removeClass('hidden').siblings('#logalert-fail').addClass('hidden');
                        $.get('reloaduser.htm',function(){
                            global_onlineuser.selfintro = $.trim($form.find('textarea[name="selfintro"]'));
                            window.location.href= global_contextPath + '/dashboard.htm';
                        });
                        resize_hr();
                    },
                    exceptionHandler:function(msg, ex){
                        $('#logalert-fail').removeClass('hidden').siblings('#logalert-ok').addClass('hidden');
                        l.stop();
                        resize_hr();
                    }
                });
            });
        }
    })();
});