aboutsummaryrefslogtreecommitdiffstats
path: root/97suifangqa/apps/indicator/static/javascripts/edit_history_data.js
blob: 83a87e23d6d5469a28134bb41061854e6ebc36d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
$(document).ready(function(){
    //点大叉,关闭弹层页面
    $(".edit_history_data_close").bind("click", function(){
        parent.TB_remove();
        return false;
    });
    // jquery-ui: datepicker
    $("#editing_date_picker").datepicker({
        showOn: "both",
        buttonImage: static_url + "images/calendar.png",
        buttonImageOnly: true
    });
    // edit button
    $("#edit_btn").bind("click", function(){
        var this_edit_data_div = $(this).closest(".edit_data");
        //var data_fir = $(this).siblings(".data_fir").text();
        //var data_sec = $(this).siblings(".data_sec").text();
        var data_fir = 0;
        var data_sec = 0;
        var this_editing_data_div = this_edit_data_div.siblings(".editing_data");
        var input_container = this_editing_data_div.children(".input_container");
        input_container.children(".edit_input_main").val(parseInt(data_fir));
        input_container.children(".edit_input_sub").val(parseInt(data_sec));
        this_editing_data_div.show();
        this_edit_data_div.hide();
        return false;
    });
    // save botton
    $("#save_btn").bind("click", function(){
        var data_input_fir = $(".edit_input_main");
        var data_input_sec = $(".edit_input_sub");
        var data_input_fir_val = data_input_fir.val();
        var data_input_sec_val = data_input_sec.val();

        if(data_input_fir_val == '' || data_input_fir_val == 0){
            data_input_fir.addClass("error");
        }else{
            data_input_fir.removeClass("error");
        }
        if(data_input_sec_val == ''){
            data_input_sec.addClass("error");
        }else{
            data_input_sec.removeClass("error");
        }
        if($(".error").length > 0){
            return false;
        }

        var time = moment().valueOf();
        $.ajax({
            type: 'get',
            url: indicator_url + 'ajax/edit_history_data',
            data: 'time='+time,
            success: function(data){
                if(data == 'success'){
                    parent.TB_remove();
                    //parent.redraw_chart(parent.detail_chart, "2013-08-04", "2013-08-10"); //这边需要穿过来起始,结束时间,以便刷新图表和表格
                }
            }
        });
        return false;
    });

    // set datepicker 'date_input' value
    var date_init = $.datepicker.parseDate('yy-mm-dd',
            $(".date_input").attr('value'));
    $(".date_input").datepicker("setDate", date_init);

    // data validate {{{
    // validate date
    $(".date_input").focus(function() {
        $(this).removeClass("valid invalid");
    });
    $(".date_input").change(function() {
        var date_str = $(this).val();
        var date_mm = moment(date_str, 'YYYY-MM-DD');
        var today_mm = moment();
        //console.log('date_str: ', date_str);
        // date cannot beyond today
        if (date_mm.isValid() && !date_mm.isAfter(today_mm)) {
            $(this).removeClass("invalid");
            $(this).addClass("valid");
        }
        else {
            // date invalid
            $(this).removeClass("valid");
            $(this).addClass("invalid");
        }
    });
    // validate data
    $(".data_input").focus(function() {
        $(this).removeClass("valid invalid");
    });
    $(".data_input").change(function() {
        //$(this).removeClass("valid invalid");
    });
    // validate reason
    $(".reason_input").focus(function() {
        $(this).removeClass("valid invalid");
    });
    $(".reason_input").blur(function() {
        var reason_str = $(this).val();
        if (is_str_blank(reason_str)) {
            // reason not given or blank
            $(this).removeClass("valid");
            $(this).addClass("invalid");
        }
        else {
            // reason given and not blank
            $(this).removeClass("invalid");
            $(this).addClass("valid");
        }
    });
    // }}}

    //编辑数据的底数验证:只允许两位小数,非空
    $(".edit_input_main").bind("keyup", function(){
        var val = $(this).val();
        val = val.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
        val = val.replace(/^\./g,""); //验证第一个字符是数字而不是..
        val = val.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
        val = val.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
        val = val.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
        $(this).val(val);
        return false;
    });
    //编辑数据的指数验证:只允许整数
    $(".edit_input_sub").bind("keyup", function(){
        var val = $(this).val().replace(/[^\d]/g, '');
        $(this).val(val);
        return false;
    });
});

// help functions
// check if a string is empty, null or undefined
function is_str_empty(str) {
    return (!str || 0 === str.length);
}

// check if a string is blank, null or undefined
function is_str_blank(str) {
    return (!str || /^\s*$/.test(str));
}

// vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=javascript: //