##// END OF EJS Templates
jars widgets...
Fiorella Quino -
r277:a950968f9d43
parent child
Show More
@@ -1,163 +1,164
1 1
2 2 import ast
3 3 import json
4 4 from itertools import chain
5 5
6 6 from django import forms
7 7 from django.utils.safestring import mark_safe
8 8 from django.utils.html import conditional_escape
9 9
10 10
11 11 class SpectralWidget(forms.widgets.TextInput):
12 12
13 13 def render(self, label, value, attrs=None):
14 14
15 15 disabled = 'disabled' if attrs.get('disabled', False) else ''
16 16 name = attrs.get('name', label)
17 #print value
17 18 if '[' in value:
18 19 if value[len(value)-1] == ",":
19 20 value = ast.literal_eval(value)
20 21 else:
21 22 value = value + ","
22 23 value = ast.literal_eval(value)
23 24
24 25 codes = value
25 26 if not isinstance(value, list):
26 27 text=''
27 28 #lista = []
28 29 #if len(value) > 1:
29 30 for val in value:
30 31 text = text+str(val)+','
31 32 #lista.append(val)
32 33 codes=text
33 34 else:
34 35 codes=''
35 36
36 37 html = '''<textarea rows="5" {0} class="form-control" id="id_{1}" name="{2}" disabled style="white-space:nowrap; overflow:scroll;">{3}</textarea>
37 38 <input type="text" class="col-md-1 col-no-padding" id="num1" value=0>
38 39 <input type="text" class="col-md-1 col-no-padding" id="num2" value=0>
39 40 <button type="button" class="button" id="add_spectral_button"> Add </button>
40 41 <button type="button" class="button" id="delete_spectral_button"> Delete </button>
41 42 <button type="button" class="button pull-right" id="cross_spectral_button"> Cross </button>
42 43 <button type="button" class="button pull-right" id="self_spectral_button"> Self </button>
43 44 <button type="button" class="button pull-right" id="all_spectral_button"> All </button>
44 45 '''.format(disabled, label, name, codes)
45 46
46 47 script = '''
47 48 <script type="text/javascript">
48 49 $(document).ready(function () {{
49 50
50 51 var spectral_number1 = $("#num1").val();
51 52 var spectral_number2 = $("#num2").val();
52 53
53 54
54 55 $("#all_spectral_button").click(function(){{
55 56 var sequence1 = selfSpectral()
56 57 var sequence2 = crossSpectral()
57 58 $("#id_spectral").val(sequence1+sequence2)
58 59 updateSpectralNumber()
59 60 }});
60 61
61 62
62 63 $("#add_spectral_button").click(function(){{
63 64 var spectral_comb = $("#id_spectral").val();
64 65 var spectral_number1 = $("#num1").val();
65 66 var spectral_number2 = $("#num2").val();
66 67 var str = spectral_number1+", "+spectral_number2;
67 68 //not to duplicate
68 69 var n = spectral_comb.search(str);
69 70 if (n==-1){
70 71 $("#id_spectral").val(spectral_comb+"["+$("#num1").val()+", "+$("#num2").val()+"],")
71 72 }
72 73 updateSpectralNumber()
73 74 }});
74 75
75 76
76 77 $("#self_spectral_button").click(function(){{
77 78 var sequence = selfSpectral()
78 79 $("#id_spectral").val(sequence)
79 80
80 81 updateSpectralNumber()
81 82 }});
82 83
83 84 $("#cross_spectral_button").click(function(){{
84 85 var sequence = crossSpectral()
85 86 $("#id_spectral").val(sequence)
86 87
87 88 updateSpectralNumber()
88 89 }});
89 90
90 91
91 92 function selfSpectral() {
92 93 var channels = $("#id_channels").val();
93 94 var n = (channels.length)-1;
94 95 var num = parseInt(channels[n]);
95 96 sequence = ""
96 97 for (i = 0; i < num; i++) {
97 98 sequence = sequence + "[" + i.toString() + ", " + i.toString() + "],"
98 99 }
99 100 return sequence
100 101 }
101 102
102 103
103 104 function crossSpectral() {
104 105 var channels = $("#id_channels").val();
105 106 var n = (channels.length)-1;
106 107 var num = parseInt(channels[n]);
107 108 sequence = ""
108 109 for (i = 0; i < num; i++) {
109 110 for (j = i+1; j < num; j++) {
110 111 sequence = sequence + "[" + i.toString() + ", " + j.toString() + "],"
111 112 }
112 113 }
113 114 return sequence
114 115 }
115 116
116 117
117 118 function updateSpectralNumber(){
118 119 var spectral_comb = $("#id_spectral").val();
119 120 var num = spectral_comb.length;
120 121 var cont = 0
121 122 for (i = 0; i < num; i++) {
122 123 if (spectral_comb[i] == "]"){
123 124 cont = cont + 1
124 125 }
125 126 }
126 127 $("#id_spectral_number").val(cont)
127 128 }
128 129
129 130
130 131 $("#delete_spectral_button").click(function(){{
131 132 var spectral_comb = $("#id_spectral").val();
132 133 var spectral_number1 = $("#num1").val();
133 134 var spectral_number2 = $("#num2").val();
134 135 var str = spectral_number1+", "+spectral_number2;
135 136 var n = spectral_comb.search(str);
136 137 if (n==-1){
137 138
138 139 }
139 140 else {
140 141 n= spectral_comb.length;
141 142 if (n<8){
142 143 var tuple = "["+$("#num1").val()+", "+$("#num2").val()+"],"
143 144 var txt = spectral_comb.replace(tuple,'');
144 145 }
145 146 else {
146 147 var tuple = ",["+$("#num1").val()+", "+$("#num2").val()+"]"
147 148 var txt = spectral_comb.replace(tuple,'');
148 149 }
149 150 $("#id_spectral").val(txt)
150 151
151 152 var tuple = "["+$("#num1").val()+", "+$("#num2").val()+"],"
152 153 var txt = spectral_comb.replace(tuple,'');
153 154 $("#id_spectral").val(txt)
154 155 }
155 156 updateSpectralNumber()
156 157 }});
157 158
158 159
159 160 }});
160 161 </script>
161 162 '''
162 163
163 164 return mark_safe(html+script)
General Comments 0
You need to be logged in to leave comments. Login now