Revision d0fe8c12

b/snf-cyclades-app/synnefo/ui/new_ui/ui/Gruntfile.js
1
module.exports = function(grunt) {
2

  
3
  // Project configuration.
4
  grunt.initConfig({
5
    pkg: grunt.file.readJSON('package.json'),
6
     watch: {
7
      css: {
8
        files: [
9
          'sass/*.scss',
10
        ],
11
        tasks: ['compass']
12
      },
13
      js: {
14
        files: [
15
          'javascripts/vendor/*.js',
16
          'javascripts/okeanos-ember/*.js',
17
          'javascripts/okeanos-scripts/*.js'
18
        ],
19
        tasks: ['concat']
20
      },
21
  },
22
      compass: {
23
      	dist: {
24
	        options: {
25
	          sassDir: 'sass',
26
	          cssDir: 'stylesheets',
27
	          outputStyle: 'expanded',
28
	        }
29
      	}
30
      },
31
      concat: {
32
      	options: {
33
	        separator: ';',
34
      	},
35
	      dist: {
36
	       files: {
37
          'javascripts/okeanos.js': ['javascripts/okeanos-scripts/common.js', 'javascripts/okeanos-scripts/checkboxes-radiobuttons.js', 'javascripts/okeanos-scripts/wizard.js', 'javascripts/okeanos-scripts/sshkeys-wizard.js'],
38
          'javascripts/okeanos-ember.js': ['javascripts/okeanos-ember/*.js'],
39
        }
40
	      },
41
    },
42
	emberTemplates: {
43
      compile: {
44
        options: {
45
          templateBasePath: /javascripts\/templates\//
46
        },
47
        files: {
48
          'javascripts/templates.js': 'javascripts/templates/*'
49
        }
50
      },
51
	  files: 'templates/*',
52
	  tasks: ['emberTemplates']
53
   }
54

  
55
  });
56
  grunt.loadNpmTasks('grunt-contrib-watch');
57
  grunt.loadNpmTasks('grunt-contrib-compass');
58
  grunt.loadNpmTasks('grunt-contrib-concat');
59
  grunt.loadNpmTasks('grunt-ember-templates');
60

  
61
  // concat, ember-templates is necessary only the 1st time that I run it to create the the destination files that include the concatenated 
62
  grunt.registerTask('default', ['concat', 'emberTemplates', 'compass', 'watch']);
63

  
64
};
/dev/null
1
<!doctype html>
2
<html>
3
<head>
4
<meta charset='utf-8' />
5
  <meta name='viewport' content='width=device-width' />
6
<title>snf fonts</title>
7
<link rel='stylesheet' href='stylesheets/font_custom.css' />
8
<!--[if lte IE 7]><script src='lte-ie7.js'></script><![endif]-->
9
<style>
10
	section, header, footer {display: block; overflow: hidden;}
11
	body {
12
		font-family: sans-serif;
13
		color: #444;
14
		line-height: 1.5;
15
		font-size: 1em;
16
	}
17
	* {
18
		-moz-box-sizing: border-box;
19
		-webkit-box-sizing: border-box;
20
		box-sizing: border-box;
21
		margin: 0;
22
		padding: 0;
23
	}
24
	.glyph {
25
		font-size: 14px;
26
		float: left;
27
		text-align: center;
28
		background: #eee;
29
		padding: .75em;
30
		margin: .75em 1.5em .75em 1px;
31
		width: 20em;
32
		border-radius: .25em;
33
		box-shadow: inset 0 0 0 1px #f8f8f8, 0 0 0 1px #CCC;
34
	}
35
	.glyph.aux {
36
		background-color: #f8f8e7;
37
	}
38
	.glyph input {
39
		font-family: consolas, monospace;
40
		font-size: 13px;
41
		width: 100%;
42
		text-align: center;
43
		border: 0;
44
		box-shadow: 0 0 0 1px #ccc;
45
		padding: .125em;
46
	}
47
	.w-main {
48
		width: 80%;
49
	}
50
	.centered {
51
		margin-left: auto;
52
		margin-right: auto;
53
	}
54
	.fs1 {
55
		font-size: 2em;
56
		color: rgb(71, 176, 233);
57
	}
58
	header {
59
		margin: 2em 0;
60
		padding-bottom: .5em;
61
		color: #666;
62
		box-shadow: 0 2px #eee;
63
	}
64
	header h1 {
65
		font-size: 2em;
66
		font-weight: normal;
67
	}
68
	.clearfix:before, .clearfix:after { content: ''; display: table; }
69
	.clearfix:after, .clear { clear: both; }
70
	footer {
71
		margin-top: 2em;
72
		padding: .5em 0;
73
		box-shadow: 0 -2px #eee;
74
	}
75
	a, a:visited {
76
		color: #B35047;
77
		text-decoration: none;
78
	}
79
	a:hover, a:focus {color: #000;}
80
	.box1 {
81
		font-size: 14px;
82
		display: inline-block;
83
		width: 15em;
84
		padding: .25em .5em;
85
		background: #eee;
86
		margin: .5em 1em .5em 0;
87
	}
88
	.general {
89
		font-weight: bold;
90
	}
91
	h1, h2 {
92
		color: #666;
93
		font-weight: normal;
94
	}
95

  
96
	.note {
97
		font-style: italic;
98
	}
99

  
100
	section ul {
101
		list-style-type:circle;
102
		margin: 18px;
103
	}
104
	li {
105
		font-size: 14px;
106
	}
107
</style>
108
</head>
109
<body>
110
	<div class='w-main centered'>
111
	<section class='mtm clearfix' >
112
	<header>
113
		<h1>Icons included in snf-font-1</h1>
114
				
115
	</header>
116

  
117
	<section>
118
		<h2>snf icons</h2>
119
		<div class='glyph'>
120
			<div class='fs1' aria-hidden='true' data-icon='v'></div>
121
			<input type='text' readonly='readonly' value='snf-network-outline [v]' />
122
		</div>
123
		<div class='glyph'>
124
			<div class='fs1' aria-hidden='true' data-icon='K'></div>
125
			<input type='text' readonly='readonly' value='snf-network-full [K]' />
126
		</div>
127
		<div class='glyph'>
128
			<div class='fs1' aria-hidden='true' data-icon='T'></div>
129
			<input type='text' readonly='readonly' value='snf-network-create-outline [T]' />
130
		</div>
131
		<div class='glyph'>
132
			<div class='fs1' aria-hidden='true' data-icon='U'></div>
133
			<input type='text' readonly='readonly' value='snf-network-create-full [U]' />
134
		</div>
135
		<div class='glyph'>
136
			<div class='fs1' aria-hidden='true' data-icon='7'></div>
137
			<input type='text' readonly='readonly' value='snf-network-broken-1-outline [7]' />
138
		</div>
139
		<div class='glyph'>
140
			<div class='fs1' aria-hidden='true' data-icon='V'></div>
141
			<input type='text' readonly='readonly' value='snf-network-broken-1-full [V]' />
142
		</div>
143
		<div class='glyph'>
144
			<div class='fs1' aria-hidden='true' data-icon='8'></div>
145
			<input type='text' readonly='readonly' value='snf-network-broken-2-outline [8]' />
146
		</div>
147
		<div class='glyph'>
148
			<div class='fs1' aria-hidden='true' data-icon='W'></div>
149
			<input type='text' readonly='readonly' value='snf-network-broken-2-full [W]' />
150
		</div>
151
		<div class='glyph'>
152
			<div class='fs1' aria-hidden='true' data-icon='w'></div>
153
			<input type='text' readonly='readonly' value='snf-pc-outline [w]' />
154
		</div>
155
		<div class='glyph'>
156
			<div class='fs1' aria-hidden='true' data-icon='x'></div>
157
			<input type='text' readonly='readonly' value='snf-pc-full [x]' />
158
		</div>
159
		<div class='glyph'>
160
			<div class='fs1' aria-hidden='true' data-icon='S'></div>
161
			<input type='text' readonly='readonly' value='snf-pc-create-full [S]' />
162
		</div>
163
		<div class='glyph'>
164
			<div class='fs1' aria-hidden='true' data-icon='9'></div>
165
			<input type='text' readonly='readonly' value='snf-pc-broken-outline [9]' />
166
		</div>
167
		<div class='glyph'>
168
			<div class='fs1' aria-hidden='true' data-icon='X'></div>
169
			<input type='text' readonly='readonly' value='snf-pc-broken-full [X]' />
170
		</div>
171
		<div class='glyph'>
172
			<div class='fs1' aria-hidden='true' data-icon='!'></div>
173
			<input type='text' readonly='readonly' value='snf-pc-reboot-outline [!]' />
174
		</div>
175
		<div class='glyph'>
176
			<div class='fs1' aria-hidden='true' data-icon='Y'></div>
177
			<input type='text' readonly='readonly' value='snf-pc-reboot-full [Y]' />
178
		</div>
179
		<div class='glyph'>
180
			<div class='fs1' aria-hidden='true' data-icon='@'></div>
181
			<input type='text' readonly='readonly' value='snf-pc-switch-outline [@]' />
182
		</div>
183
		<div class='glyph'>
184
			<div class='fs1' aria-hidden='true' data-icon='Z'></div>
185
			<input type='text' readonly='readonly' value='snf-pc-switch-full [Z]' />
186
		</div>
187
		<div class='glyph'>
188
			<div class='fs1' aria-hidden='true' data-icon='u'></div>
189
			<input type='text' readonly='readonly' value='snf-volume-outline [u]' />
190
		</div>
191
		<div class='glyph'>
192
			<div class='fs1' aria-hidden='true' data-icon='O'></div>
193
			<input type='text' readonly='readonly' value='snf-volume-full [O]' />
194
		</div>
195
		<div class='glyph'>
196
			<div class='fs1' aria-hidden='true' data-icon='6'></div>
197
			<input type='text' readonly='readonly' value='snf-volume-create-full [6]' />
198
		</div>
199
		<div class='glyph'>
200
			<div class='fs1' aria-hidden='true' data-icon='0'></div>
201
			<input type='text' readonly='readonly' value='snf-volume-broken-outline [0]' />
202
		</div>
203
		<div class='glyph'>
204
			<div class='fs1' aria-hidden='true' data-icon='y'></div>
205
			<input type='text' readonly='readonly' value='snf-pithos-outline [y]' />
206
		</div>
207
		<div class='glyph'>
208
			<div class='fs1' aria-hidden='true' data-icon='5'></div>
209
			<input type='text' readonly='readonly' value='snf-pithos-full [5]' />
210
		</div>
211
		<div class='glyph'>
212
			<div class='fs1' aria-hidden='true' data-icon='z'></div>
213
			<input type='text' readonly='readonly' value='snf-dashboard-outline [z]' />
214
		</div>
215
		<div class='glyph'>
216
			<div class='fs1' aria-hidden='true' data-icon='E'></div>
217
			<input type='text' readonly='readonly' value='snf-chip-outline [E]' />
218
		</div>
219
		<div class='glyph'>
220
			<div class='fs1' aria-hidden='true' data-icon='3'></div>
221
			<input type='text' readonly='readonly' value='snf-chip-full [3]' />
222
		</div>
223
		<div class='glyph'>
224
			<div class='fs1' aria-hidden='true' data-icon='F'></div>
225
			<input type='text' readonly='readonly' value='snf-lock-closed-full [F]' />
226
		</div>	
227
		<div class='glyph'>
228
			<div class='fs1' aria-hidden='true' data-icon='G'></div>
229
			<input type='text' readonly='readonly' value='snf-lock-open-full [G]' />
230
		</div>	
231
		<div class='glyph'>
232
			<div class='fs1' aria-hidden='true' data-icon='H'></div>
233
			<input type='text' readonly='readonly' value='snf-router-outline [H]' />
234
		</div>
235
		<div class='glyph'>
236
			<div class='fs1' aria-hidden='true' data-icon='2'></div>
237
			<input type='text' readonly='readonly' value='snf-router-full [2]' />
238
		</div>
239
		<div class='glyph'>
240
			<div class='fs1' aria-hidden='true' data-icon='I'></div>
241
			<input type='text' readonly='readonly' value='snf-www [I]' />
242
		</div>	
243
		<div class='glyph'>
244
			<div class='fs1' aria-hidden='true' data-icon='J'></div>
245
			<input type='text' readonly='readonly' value='snf-ram-outline [J]' />
246
		</div>
247
		<div class='glyph'>
248
			<div class='fs1' aria-hidden='true' data-icon='R'></div>
249
			<input type='text' readonly='readonly' value='snf-ram-full [R]' />
250
		</div>
251
		<div class='glyph'>
252
			<div class='fs1' aria-hidden='true' data-icon='e'></div>
253
			<input type='text' readonly='readonly' value='snf-snapshot-outline [e]' />
254
		</div>
255
		<div class='glyph'>
256
			<div class='fs1' aria-hidden='true' data-icon='N'></div>
257
			<input type='text' readonly='readonly' value='snf-snapshot-full [N]' />
258
		</div>
259
		<div class='glyph'>
260
			<div class='fs1' aria-hidden='true' data-icon='f'></div>
261
			<input type='text' readonly='readonly' value='snf-image-outline [f]' />
262
		</div>
263
		<div class='glyph'>
264
			<div class='fs1' aria-hidden='true' data-icon='Q'></div>
265
			<input type='text' readonly='readonly' value='snf-image-full [Q]' />
266
		</div>
267
		<div class='glyph'>
268
			<div class='fs1' aria-hidden='true' data-icon='m'></div>
269
			<input type='text' readonly='readonly' value='snf-plus-outline [m]' />
270
		</div>
271
		<div class='glyph'>
272
			<div class='fs1' aria-hidden='true' data-icon='4'></div>
273
			<input type='text' readonly='readonly' value='snf-plus-full [4]' />
274
		</div>	
275
		<div class='glyph'>
276
			<div class='fs1' aria-hidden='true' data-icon='P'></div>
277
			<input type='text' readonly='readonly' value='snf-nic-outline [P]' />
278
		</div>
279
		<div class='glyph'>
280
			<div class='fs1' aria-hidden='true' data-icon='r'></div>
281
			<input type='text' readonly='readonly' value='snf-nic-full [r]' />
282
		</div>
283
		<div class='glyph'>
284
			<div class='fs1' aria-hidden='true' data-icon='#'></div>
285
			<input type='text' readonly='readonly' value='snf-key-outline [#]' />
286
		</div>
287
		<div class='glyph'>
288
			<div class='fs1' aria-hidden='true' data-icon='1'></div>
289
			<input type='text' readonly='readonly' value='snf-key-full [1]' />
290
		</div>
291
	</section>
292

  
293
	<section>
294
		<h2>checkboxes - radiobuttons</h2>
295
		<div class='glyph'>
296
			<div class='fs1' aria-hidden='true' data-icon='a'></div>
297
			<input type='text' readonly='readonly' value='snf-checkbox-unchecked [a]' />
298
		</div>
299
		<div class='glyph'>
300
			<div class='fs1' aria-hidden='true' data-icon='b'></div>
301
			<input type='text' readonly='readonly' value='snf-checkbox-checked [b]' />
302
		</div>
303
		<div class='glyph'>
304
			<div class='fs1' aria-hidden='true' data-icon='C'></div>
305
			<input type='text' readonly='readonly' value='snf-radio-unchecked [C]' />
306
		</div>
307
		<div class='glyph'>
308
			<div class='fs1' aria-hidden='true' data-icon='B'></div>
309
			<input type='text' readonly='readonly' value='snf-radio-checked [B]' />
310
		</div>
311
	</section>
312
	
313
	<section>
314
		<h2>close - cancel - remove</h2>
315
		<div class='glyph'>
316
			<div class='fs1' aria-hidden='true' data-icon='D'></div>
317
			<input type='text' readonly='readonly' value='snf-close [D]' />
318
		</div>	
319
		<div class='glyph'>
320
			<div class='fs1' aria-hidden='true' data-icon='c'></div>
321
			<input type='text' readonly='readonly' value='snf-cancel-circled [c]' />
322
		</div>
323
		<div class='glyph'>
324
			<div class='fs1' aria-hidden='true' data-icon='n'></div>
325
			<input type='text' readonly='readonly' value='snf-minus-sign [n]' />
326
		</div>
327
		<div class='glyph'>
328
		<div class='fs1' aria-hidden='true' data-icon='j'></div>
329
		<input type='text' readonly='readonly' value='snf-ban-circle [j]' />
330
		</div>
331
		<div class='glyph'>
332
			<div class='fs1' aria-hidden='true' data-icon='$'></div>
333
			<input type='text' readonly='readonly' value='snf-trash-outline [$]' />
334
		</div>
335
		<div class='glyph'>
336
			<div class='fs1' aria-hidden='true' data-icon='='></div>
337
			<input type='text' readonly='readonly' value='snf-trash-full [=]' />
338
		</div>
339
	</section>
340
	
341
	<section>
342
		<h2>ok - confirm</h2>
343
		<div class='glyph'>
344
			<div class='fs1' aria-hidden='true' data-icon='l'></div>
345
			<input type='text' readonly='readonly' value='snf-ok-sign [l]' />
346
		</div>
347
		<div class='glyph'>
348
			<div class='fs1' aria-hidden='true' data-icon='h'></div>
349
			<input type='text' readonly='readonly' value='snf-ok [h]' />
350
		</div>
351
	</section>
352
		
353
	<section>
354
		<h2>show - preview - view type</h2>
355
		<div class='glyph'>
356
			<div class='fs1' aria-hidden='true' data-icon='A'></div>
357
			<input type='text' readonly='readonly' value='snf-eye [A]' />
358
		</div>
359
		<div class='glyph'>
360
			<div class='fs1' aria-hidden='true' data-icon='t'></div>
361
			<input type='text' readonly='readonly' value='ssnf-gridview [t]' />
362
		</div>	
363
		<div class='glyph'>
364
			<div class='fs1' aria-hidden='true' data-icon='s'></div>
365
			<input type='text' readonly='readonly' value='snf-listview [s]' />
366
		</div>	
367
	</section>
368

  
369
	<section>
370
		<h2>arrows</h2>
371
		<div class='glyph'>
372
			<div class='fs1' aria-hidden='true' data-icon='L'></div>
373
			<input type='text' readonly='readonly' value='snf-arrow-up [L]' />
374
		</div>
375
		<div class='glyph'>
376
			<div class='fs1' aria-hidden='true' data-icon='M'></div>
377
			<input type='text' readonly='readonly' value='snf-arrow-down [M]' />
378
		</div>
379
		<div class='glyph'>
380
			<div class='fs1' aria-hidden='true' data-icon='_'></div>
381
			<input type='text' readonly='readonly' value='snf-arrow-left-small-full [_]' />
382
		</div>
383
		<div class='glyph'>
384
			<div class='fs1' aria-hidden='true' data-icon='-'></div>
385
			<input type='text' readonly='readonly' value='snf-arrow-right-small-full [-]' />
386
		</div>
387
		<div class='glyph'>
388
			<div class='fs1' aria-hidden='true' data-icon='('></div>
389
			<input type='text' readonly='readonly' value='snf-upload-full [()]' />
390
		</div>
391
		<div class='glyph'>
392
			<div class='fs1' aria-hidden='true' data-icon='%'></div>
393
			<input type='text' readonly='readonly' value='snf-download-full [%]' />
394
		</div>
395
		<div class='glyph'>
396
			<div class='fs1' aria-hidden='true' data-icon=')'></div>
397
			<input type='text' readonly='readonly' value='snf-refresh-outline [)]' />
398
		</div>
399
	</section>
400

  
401
	<section>
402
		<h2>misc</h2>
403
		<div class='glyph'>
404
			<div class='fs1' aria-hidden='true' data-icon='q'></div>
405
			<input type='text' readonly='readonly' value='snf-edit [q]' />
406
		</div>
407
		<div class='glyph'>
408
			<div class='fs1' aria-hidden='true' data-icon='d'></div>
409
			<input type='text' readonly='readonly' value='snf-search [d]' />
410
		</div>
411
		<div class='glyph'>
412
			<div class='fs1' aria-hidden='true' data-icon='g'></div>
413
			<input type='text' readonly='readonly' value='snf-twitter-logo [g]' />
414
		</div>	
415
		<div class='glyph'>
416
			<div class='fs1' aria-hidden='true' data-icon='i'></div>
417
			<input type='text' readonly='readonly' value='snf-switch [i]' />
418
		</div>	
419
		<div class='glyph'>
420
			<div class='fs1' aria-hidden='true' data-icon='k'></div>
421
			<input type='text' readonly='readonly' value='snf-thunder-full [k]' />
422
		</div>	
423
		<div class='glyph'>
424
			<div class='fs1' aria-hidden='true' data-icon='o'></div>
425
			<input type='text' readonly='readonly' value='snf-info-outline [o]' />
426
		</div>
427
		<div class='glyph'>
428
			<div class='fs1' aria-hidden='true' data-icon='p'></div>
429
			<input type='text' readonly='readonly' value='snf-info-full [p]' />
430
		</div>
431
		<div class='glyph'>
432
			<div class='fs1' aria-hidden='true' data-icon='*'></div>
433
			<input type='text' readonly='readonly' value='snf-person-outline [*]' />
434
		</div>
435
		<div class='glyph'>
436
			<div class='fs1' aria-hidden='true' data-icon='?'></div>
437
			<input type='text' readonly='readonly' value='snf-copy-outline [?]' />
438
		</div>
439
		<div class='glyph'>
440
			<div class='fs1' aria-hidden='true' data-icon= '"'></div>
441
			<input type='text' readonly='readonly' value='snf-copy-full ["]' />
442
		</div>
443
		<div class='glyph'>
444
			<div class='fs1' aria-hidden='true' data-icon='&'></div>
445
			<input type='text' readonly='readonly' value='snf-link-outline [&]' />
446
		</div>	
447
		<div class='glyph aux'>
448
			<div class='fs1' aria-hidden='true' data-icon-aux='f'></div>
449
			<input type='text' readonly='readonly' value='snf-folder-outline [f]' />
450
		</div>
451
		<div class='glyph aux'>
452
			<div class='fs1' aria-hidden='true' data-icon-aux='F'></div>
453
			<input type='text' readonly='readonly' value='snf-folder-full [F]' />
454
		</div>
455
		<div class='glyph aux'>
456
			<div class='fs1' aria-hidden='true' data-icon-aux='a'></div>
457
			<input type='text' readonly='readonly' value='snf-folder-create-outline [a]' />
458
		</div>
459
		<div class='glyph aux'>
460
			<div class='fs1' aria-hidden='true' data-icon-aux= 'A'></div>
461
			<input type='text' readonly='readonly' value='snf-folder-create-full [A]' />
462
		</div>
463
		<div class='glyph aux'>
464
			<div class='fs1' aria-hidden='true' data-icon-aux='e'></div>
465
			<input type='text' readonly='readonly' value='snf-folder-move-outline [e]' />
466
		</div>
467
		<div class='glyph aux'>
468
			<div class='fs1' aria-hidden='true' data-icon-aux='E'></div>
469
			<input type='text' readonly='readonly' value='snf-folder-move-full [E]' />
470
		</div>
471
		<div class='glyph aux'>
472
			<div class='fs1' aria-hidden='true' data-icon-aux='c'></div>
473
			<input type='text' readonly='readonly' value='snf-shared-by-me-outline [c]' />
474
		</div>
475
		<div class='glyph aux'>
476
			<div class='fs1' aria-hidden='true' data-icon-aux='C'></div>
477
			<input type='text' readonly='readonly' value='snf-shared-by-me-full [C]' />
478
		</div>
479
		<div class='glyph aux'>
480
			<div class='fs1' aria-hidden='true' data-icon-aux='d'></div>
481
			<input type='text' readonly='readonly' value='snf-shared-to-me-outline [d]' />
482
		</div>
483
		<div class='glyph aux'>
484
			<div class='fs1' aria-hidden='true' data-icon-aux='D'></div>
485
			<input type='text' readonly='readonly' value='snf-shared-to-me-full [D]' />
486
		</div>
487
	</section>
488

  
489
</section>
490
</div>	
491
</body>
492
</html>
/dev/null
1

  
2

  
3
<!DOCTYPE html>
4
    <!--[if lte IE 7]><script src="javascripts/lte-ie7.js"></script><![endif]-->
5
<!--[if IE 8]> 				 <html class="no-js lt-ie9" lang="en"> <![endif]-->
6
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
7

  
8
<head>
9
	<meta charset="utf-8" />
10
    <meta name="viewport" content="width=device-width" />
11
    <title>Images list</title>
12
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,greek-ext,greek' rel='stylesheet' type='text/css'>
13
    <link rel="stylesheet" href="stylesheets/normalize.css" />
14
    <link rel="stylesheet" href="stylesheets/app.css" />
15
    <link rel="stylesheet" href="stylesheets/font_custom.css" />
16
    <link rel="stylesheet" href="stylesheets/jquery.jscrollpane.css" media="all" />
17
    <link rel="stylesheet" href="stylesheets/magnific-popup.css" />
18
    <script src="javascripts/vendor/custom.modernizr.js"></script>
19
</head>
20
<body>
21
		<header class="header">
22
		<nav>
23
			<ul class="icons-nav">
24
				<li><a href="vm_list.html" data-tooltip class="has-tip" title="Machines"><span class="snf-pc-outline"></span></a></li>
25
				<li><a href="network_list.html" data-tooltip class="has-tip" title="Networks"><span class="snf-network-outline"></span></a></li>
26
				<li><a href="volumes_list.html" data-tooltip class="has-tip" title="Volumes"><span class="snf-volume-outline"></span></a></li>
27
				<li><a href="pithos.html" data-tooltip class="has-tip" title="Storage" ><span class="snf-pithos-outline"></span></a></li>
28
				<li><a href="images_list.html" data-tooltip class="has-tip current" title="Images" ><span class="snf-image-outline"></span></a></li>
29
				<li><a href="snapshots_list.html" data-tooltip class="has-tip" title="Snapshots" ><span class="snf-snapshot-outline"></span></a></li>
30
				<li><a href="" data-tooltip class="has-tip" title="IPs"><span class="snf-nic-outline"></span></a></li>
31
                <li><a href="" data-tooltip class="has-tip" title="SSH keys"><span class="snf-key-outline"></span></a></li>
32
			</ul>
33
		</nav>
34
		<div class="login">
35
			<div class="wrap">
36
				<a href="">user1@synnefo.org</a>
37
				<ul>
38
					<li><a href="">dashboard</a></li>
39
					<li><a href="">sign out</a></li>
40
				</ul>
41
			</div>
42
		</div>
43
		<div class="logo">
44
			<a href="index.html"><img src="images/synnefo-logo.png" alt="software logo"></a>
45
		</div>
46
	</header>
47
	
48
	<div class="body-wrapper">
49

  
50
	<!-- overlays start -->
51
	<div class="overlay-area-custom">
52
		
53
		<div id="overlay1" class="overlay-div">
54
			<a href="" class="close"><span class="snf-close"></span></a>
55
			<p>Are you sure you want to reboot your machine?</p>
56
			<p class="buttons"><a href="" class="btn4">YES</a><a href="" class="btn4">NO</a></p>
57
		</div>
58
		<div id="overlay2" class="overlay-div">
59
			<p>Are you sure you want to shutdown your machine?</p>
60
			<p class="buttons"><a href="" class="btn4">YES</a><a href="" class="btn4">NO</a></p>
61
		</div>
62
			<div id="image-wizard" class="overlay-div wizard">
63
				<div class="top">
64
					<div class="numbers">
65
						<div class="menus row">
66
							<a href="" class="close"><span class="snf-close"></span></a>
67
							<ul class="nums">
68
								<li class="preselected current">
69
									<em><span>1</span></em>
70
									<p><strong>To be added...</strong></p>
71
								</li>
72
							</ul>
73
						</div>
74
					</div>
75
					<div class="row">
76
						<nav class="sub-menu" data-step=1>
77
						</nav>
78
					</div>
79
				</div>
80
				<div class="middle">
81
				<div class="steps">
82
					<div class="step step-1 preselected current">
83
						</div>
84
					</div>
85
				</div>
86
<!-- new tba start -->
87
				<div class="bottom">
88
					<div class="row">
89
						<a href="" class="nav prev"><span>CANCEL</span></a>
90
						<a href="" class="nav next" data-next="el1"><span>CREATE</span></a>
91
						
92
					</div>
93
				</div>
94
<!-- new tba end -->
95

  
96
			</div>
97

  
98
	</div>
99
	<!-- overlays end -->
100
	
101
		<section class="actions-bar clearfix">
102
			<h2>Images</h2>
103
			<div class="rt-actions">
104
				<a href="" class="single"></a>
105
				<a href="#grid" class="grid"><span class="snf-gridview current"></span></a>
106
				<a href="#list" class="list"><span class="snf-listview "></span></a>
107
			</div>
108
			<div class="filter-menu">
109
				<a class="filter" href="">Filter</a>
110
				<ul class="options">
111
					<li><a href=""> set an option</a></li>
112
					<li><a href=""> set an option</a></li>
113
					<li><a href=""> set an option</a></li>
114
					<li><a href=""> set an option</a></li>
115
				</ul>
116
			</div>
117
			<div id="hd-search" class="hd-search">
118
			    <form>
119
					<span class="hd-icon-search snf-search"></span>
120
			        <input class="hd-search-input" placeholder="Enter your search term..." type="search" value="" name="search" id="search">
121
			    </form>
122
			</div>
123
		</section>
124
		<section class="main row">
125
			<div class="images entities grid-view">
126
				<ul class="items-list">
127
					<li data-status="add-new" class="add-new not-selectable" data-overlay-id="image-wizard">
128
						<div class="container">
129
							<a href="" class="check">
130
								<span class="snf-checkbox-unchecked"></span>
131
							</a>
132
							<div class="img-wrap">
133
									<span class="snf-image-full snf-font"></span>
134
									<span class="os symbol">+</span>
135
							</div>
136
							<h4>New Image</h4>
137
						</div>
138
						<div class="tags">
139
						</div>
140
						<div class= "status">
141
						</div>
142
					</li>
143
					<li data-status="available" class="running">
144
						<div class="more">
145
							<div class="clearfix">
146
								<div class="col lt">
147
									<ul>
148
										<li><a href="">Option i</a></li>
149
										<li><a href="">Option j</a></li>
150
										<li><a href="">Option k</a></li>
151
										<li><a href="">Option l</a></li>
152
										<li><a href="">Option m</a></li>
153
									</ul>
154
								</div>
155
								<div class="col rt">
156
									<ul>
157
										<li><a href="">Option i</a></li>
158
										<li><a href="">Option j</a></li>
159
									</ul>
160
								</div>
161
							</div>
162
							<div class="name">Image Name</div>
163
						</div>
164
						<div class="container">
165
							<a href="" class="check">
166
								<span class="snf-checkbox-unchecked"></span>
167
							</a>
168
							<div class="img-wrap">
169
								<span class="snf-font snf-image-full"></span>
170
							</div>
171
							<h4>Image Name</h4>
172
							<div class="tags">
173
							</div>
174
							<div class= "status">
175
								<span class="state"></span>
176
								<span class="logs"></span>
177
							</div>
178
						</div>
179
					</li>
180
					<li data-status="active" class="running">
181
						<div class="more">
182
							<div class="clearfix">
183
								<div class="col lt">
184
									<ul>
185
										<li><a href="">Option i</a></li>
186
										<li><a href="">Option j</a></li>
187
										<li><a href="">Option k</a></li>
188
										<li><a href="">Option l</a></li>
189
										<li><a href="">Option m</a></li>
190
									</ul>
191
								</div>
192
								<div class="col rt">
193
									<ul>
194
										<li><a href="">Option i</a></li>
195
										<li><a href="">Option j</a></li>
196
									</ul>
197
								</div>
198
							</div>
199
							<div class="name">Image Name</div>
200
						</div>
201
						<div class="container">
202
							<a href="" class="check">
203
								<span class="snf-checkbox-unchecked"></span>
204
							</a>
205
							<div class="img-wrap">
206
								<span class="snf-font snf-image-full"></span>						
207
							</div>
208
							<h4>Image Name</h4>
209
							<div class="tags">
210
							</div>
211
							<div class= "status">
212
								<span class="state"></span>
213
								<span class="logs"></span>
214
							</div>
215
						</div>
216
					</li>
217
				</ul>
218
				<div class="lt-bar">
219
					<ul>
220
						<li class="select trigger-checkbox">
221
							<a href="" class="check">
222
								<span class="snf-checkbox-unchecked checkbox"></span>
223
							</a>
224
							<em>Un</em>Select all
225
						</li>
226
						<li class="running"><a href="#" title="">Destroy</a></li>
227
						<!-- in case we want an action always activated
228
						<li class="pernament"><a href="" class="active">Action</a></li> -->
229
					</ul>
230
				</div>
231
				<div class="welcome">It seems you have not yet created a VM! Go ahead!</div>
232
			</div>
233
		</section>
234
	</div>
235
	
236

  
237
	<script src="javascripts/vendor/jquery.js"></script>
238
	<script src="javascripts/jquery-ui-1.10.3.custom.min.js"></script>
239
	<script src="javascripts/underscore-min.js"></script>
240
	<script src="javascripts/foundation/foundation.js"></script>
241
	<script src="javascripts/foundation/foundation.alerts.js"></script>
242
	<script src="javascripts/foundation/foundation.clearing.js"></script>
243
	<script src="javascripts/foundation/foundation.cookie.js"></script>
244
	<script src="javascripts/foundation/foundation.dropdown.js"></script>
245
	<script src="javascripts/foundation/foundation.forms.js"></script>
246
	<script src="javascripts/foundation/foundation.joyride.js"></script>
247
	<script src="javascripts/foundation/foundation.magellan.js"></script>
248
	<script src="javascripts/foundation/foundation.orbit.js"></script>
249
	<script src="javascripts/foundation/foundation.placeholder.js"></script>
250
	<script src="javascripts/foundation/foundation.reveal.js"></script>
251
	<script src="javascripts/foundation/foundation.section.js"></script>
252
	<script src="javascripts/foundation/foundation.tooltips.js"></script>
253
	<script src="javascripts/foundation/foundation.topbar.js"></script>
254
	<script type="text/javascript" src="javascripts/jquery.scrollTo.js"></script>
255
	<script type="text/javascript" src="javascripts/jquery.easing.1.3.js"></script>
256
	<script type="text/javascript" src="javascripts/jquery.mousewheel.js"></script>
257
	<script type="text/javascript" src="javascripts/jquery.jscrollpane.js"></script>
258
	<!-- dropzone.js used for drag and drop files to upload them --> 
259
	<script type="text/javascript" src="javascripts/dropzone.js"></script>
260
	<script type="text/javascript" src="javascripts/jquery.magnific-popup.js"></script>
261
	<!-- fabrastic.js used for the color picker -->
262
	<script type="text/javascript" src="javascripts/farbtastic.js"></script>
263
	<script type="text/javascript" src="javascripts/jquery.scrollintoview.js"></script>
264
	<script src="javascripts/common.js"></script>
265
	
266
	<script type="text/javascript" src="javascripts/wizard.js"></script>
267
	<script type="text/javascript" src="javascripts/sshkeys-wizard.js"></script>
268
	<script type="text/javascript" src="javascripts/checkboxes-radiobuttons.js"></script>
269
  <script>
270
    $(document).foundation();
271
  </script>
272
</body>
273
</html>
b/snf-cyclades-app/synnefo/ui/new_ui/ui/index.html
1

  
2 1
<!DOCTYPE html>
2
    <!--[if lte IE 7]><script src="javascripts/lte-ie7.js"></script><![endif]-->
3 3
<!--[if IE 8]> 				 <html class="no-js lt-ie9" lang="en"> <![endif]-->
4 4
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
5 5

  
6 6
<head>
7 7
	<meta charset="utf-8" />
8
  <meta name="viewport" content="width=device-width" />
9
  <title>New ui mocks</title>
10
  <link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,greek-ext,greek' rel='stylesheet' type='text/css'>
11
  <link rel="stylesheet" href="stylesheets/normalize.css" />
12
  
13
  <link rel="stylesheet" href="stylesheets/app.css" />
14
  
15

  
16
  <script src="javascripts/vendor/custom.modernizr.js"></script>
8
    <meta name="viewport" content="width=device-width" />
9
    <title>VMs list</title>
10
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;subset=latin,greek-ext,greek' rel='stylesheet' type='text/css'>
11
    <link rel="stylesheet" href="stylesheets/normalize.css" />
12
    <link rel="stylesheet" href="stylesheets/app.css" />
13
    <link rel="stylesheet" href="stylesheets/farbtastic.css" />
14
    <link rel="stylesheet" href="stylesheets/font_custom.css" />
15
    <link rel="stylesheet" href="stylesheets/jquery.jscrollpane.css" media="all" />
16
    <link rel="stylesheet" href="stylesheets/magnific-popup.css" />
17 17

  
18 18
</head>
19 19
<body>
20
 	<div class="row">
21
 			<h2>Misc</h2>
22
 			<ul>
23
 				<li><a href="icon_guide.html">Info about Icon-Font</a></li>
24
 			</ul>
25
 		
26
 			<h2>Kpal original designs</h2>
27
 			<ul>
28
				<li><a href="vm_list.html">VMs list page</a></li>
29
				<li><a href="vm_list_no_vms.html">VMs list with no machine</a></li>
30
				<li><a href="vm_details.html">VM Details</a></li>
31
				<li><a href="network_list.html">Networks list page</a></li>
32
				<li><a href="network_details.html">Network Details</a></li>
33
				<li><a href="volumes_list.html">Volumes list</a></li>
34
				<li><a href="images_list.html">Images list</a></li>
35
				<li><a href="snapshots_list.html">Snapshots list</a></li>
36
				<li><a href="pithos.html">Pithos</a></li>
37
			</ul>
20
	<script type="text/x-handlebars">
21
		<header class="header">
22
			<nav>
23
			{{collection Okeanos.NavigationView}}
24
				
25
			</nav>
26
			{{login-menu email = model.email}}
27
			<div class="logo">
28
				<a href="index.html"><img src="images/synnefo-logo.png" alt="software logo"></a>
29
			</div>
30
		</header>
31
		<div class="body-wrapper">
32
			<section class="actions-bar clearfix">
33
				<h2>{{pageTitle}}</h2>
34
				<div class="rt-actions">
35
					<a href="vm_details.html" class="single"></a>
36
					<a href="#grid" class="grid"><span class="snf-gridview current"></span></a>
37
					<a href="#list" class="list"><span class="snf-listview "></span></a>
38
				</div>
39
				<div class="filter-menu">
40
					<div><a class="filter" href="">Filter</a></div>
41
					<ul class="options">
42
						<li><a href="">option 1</a></li>
43
						<li><a href="">option 2</a></li>
44
						<li><a href="">option 3</a></li>
45
						<li><a href="">option 4</a></li>
46
					</ul>
47
				</div>
48
				<div id="hd-search" class="hd-search">
49
				    <form>
50
						<span class="hd-icon-search snf-search"></span>
51
				        <input class="hd-search-input" placeholder="Enter your search term..." type="search" value="" name="search" id="search">
52
				    </form>
53
				</div>
54
			</section>
55
			<section class="main row">
56
				{{outlet}}
57
			</section>
38 58
		</div>
59
	</script>
60
	<script type="text/x-handlebars" data-template-name="nets">
61
		<h2>nets</h2>
62
	</script>
63
	<script type="text/x-handlebars" data-template-name="elems">
64
		<h2>{{other}}</h2>
65
		<div {{bind-attr class=":entities :grid-view"}}>
66
		<ul class="items-list">
67
			<li>Add New...</li>
68
			{{#each}}
69
				{{view Okeanos.ElemView}}
70
			{{/each}}
71
		</ul>
72
		</div>
73
	</script>
39 74

  
40
  <script>
41
  document.write('<script src=' +
42
  ('__proto__' in {} ? 'javascripts/vendor/zepto' : 'javascripts/vendor/jquery') +
43
  '.js><\/script>')
44
  </script>
45
  
46
  <script src="javascripts/foundation/foundation.js"></script>
75
	<script type="text/x-handlebars" data-template-name="elem">
76
		<ul class="side-actions">
77
			<li>
78
				<a href="vm_details.html" data-tooltip title="view details" class="details has-tip">i</a>
79
			</li>
80
			<li>
81
				<a href="#" title="connect to machine" data-tooltip data-reveal-id="vm-connect" class="has-tip">
82
					<span class="snf-thunder-full"></span>
83
				</a>
84
			</li>
85
			<li class="more-actions">
86
				<a href="#" title="">...</a>
87
				<ul class="many">
88
					{{#each setAvailableActions}}
89
						<li>
90
							{{actionBtns-simple actionLabel=this.description elementID=controller.id action= this.description param=controller.id}}
91
						</li>
92
					{{/each}}
93
				</ul>
94
			</li>
95
			<li class="bottom">
96
				<a href="" title=""><span ></span></a>
97
				<ul class="options">
98
					<li class="selected"><a href="">My awesome project</a></li>
99
					<li><a href="">Project 1</a></li>
100
					<li><a href="">Project 2</a></li>
101
					<li><a href="">Project 3</a></li>
102
					<li><a href="">Project 4</a></li>
103
				</ul>
104
				<ul>
105
					<li>My awesome project</li>
106
					<li><a href="" class="reassign">Reassign<span class="arrow-right"></span></a></li>
107
				</ul>
108
			</li>
109
		</ul>
110
		<div class="container">
111
			<a href="" class="check">
112
				<span class="snf-checkbox-unchecked"></span>
113
			</a>
114
			<div class="img-wrap">
115
				<span {{bind-attr class="parentController.icon :snf-font"}}></span>
116
				{{#if parentController.hasOS}}
117
					<span {{bind-attr class="os :os"}}></span>
118
				{{/if}}
119
			</div>
120
			<h4>{{icon}}</h4>
121
			<div class="actions">
122
				<a href="" data-reveal-id="vm-connect" data-tooltip title="connect" class="connect has-tip"><span class="snf-thunder-full"></span></a>
123
				<a href="vm_details.html" data-tooltip title="view vm details" class="snf-info-outline has-tip">i</a>
124
			</div>
125
			<div class="tags">
126
			</div>
127
			<div class= "status">
128
				<span class="state">{{parentController.icon}}</span>
129
				<span class="state">{{status}}</span>
130
				<span class="logs">{{name}}</span>
131
			</div>
132
			<div class="info"><a {{bind-attr href=hostname}} title="">{{hostname}}</a></div>
133
		</div>
134
	</script>
47 135
	
136

  
137
	<script type="text/x-handlebars" data-template-name="volumes">
138
		<h2>volumes</h2>
139
	</script>
140
	<script type="text/x-handlebars" data-template-name="pithos">
141
		<h2>pithos</h2>
142
	</script>
143
	<script type="text/x-handlebars" data-template-name="snapshots">
144
		<h2>shapshots</h2>
145
	</script>
146
	<script type="text/x-handlebars" data-template-name="images">
147
		<h2>images</h2>
148
	</script>
149
	<script type="text/x-handlebars" data-template-name="ips">
150
		<h2>ips</h2>
151
	</script>
152
	<script type="text/x-handlebars" data-template-name="sshkeys">
153
		<h2>sshkeys</h2>
154
	</script>
155
		
156

  
157
	<!-- COMPONENTS -->			
158
	<script type="text/x-handlebars" id="components/actionBtns-simple">
159
		{{actionLabel}} - {{elementID}}
160
	</script>
161
	
162
	<script type="text/x-handlebars" id="components/login-menu">
163
		<div class="wrap">
164
			<a href="">{{email}}</a>
165
			<ul>
166
				<li><a href="">dashboard</a></li>
167
				<li><a href="">sign out</a></li>
168
			</ul>
169
		</div>
170
	</script>
171

  
172

  
173

  
174

  
175

  
176
	<script src="javascripts/custom.modernizr.js"></script>
177
	<script src="javascripts/jquery.js"></script>
178
	<script src="javascripts/jquery-ui-1.10.3.custom.min.js"></script>
179
	<script src="javascripts/handlebars-1.1.2.js"></script>
180
	<script src="javascripts/ember-1.3.0.js"></script>
181
  	<script src="javascripts/ember-data.js"></script>
182
	<script src="javascripts/underscore-min.js"></script>
183
  	<script src="javascripts/okeanos.js"></script>
184
  	<!-- templates must be loaded before we use it  -->
185
  	<script src="javascripts/templates.js"></script>
186
  	<script src="javascripts/okeanos-ember.js"></script>
187
	<script src="javascripts/foundation/foundation.js"></script>
48 188
	<script src="javascripts/foundation/foundation.alerts.js"></script>
49 189
	
50 190
	<script src="javascripts/foundation/foundation.clearing.js"></script>
......
68 208
	<script src="javascripts/foundation/foundation.section.js"></script>
69 209
	
70 210
	<script src="javascripts/foundation/foundation.tooltips.js"></script>
71
	
72 211
	<script src="javascripts/foundation/foundation.topbar.js"></script>
73
	
74
  
212
	<script type="text/javascript" src="javascripts/jquery.scrollTo.js"></script>
213
	<script type="text/javascript" src="javascripts/jquery.easing.1.3.js"></script>
214
	<script type="text/javascript" src="javascripts/jquery.mousewheel.js"></script>
215
	<script type="text/javascript" src="javascripts/jquery.jscrollpane.js"></script>
216
	<!-- dropzone.js used for drag and drop files to upload them --> 
217
	<script type="text/javascript" src="javascripts/dropzone.js"></script>
218
	<script type="text/javascript" src="javascripts/jquery.magnific-popup.js"></script>
219
	<!-- fabrastic.js used for the color picker --> 
220
	<script type="text/javascript" src="javascripts/farbtastic.js"></script>
221

  
75 222
  <script>
76 223
    $(document).foundation();
224
    $(document).ready(function() {
225

  
226
    })
77 227
  </script>
78 228
</body>
79 229
</html>
/dev/null
1
/*
2
* functions concerning checkboxes and radiobuttons links
3
*/
4

  
5

  
6

  
7
ui.checkbox = {
8
    changeState : function(checkbox_link) {
9
        $(checkbox_link).find('.snf-checkbox-unchecked, .snf-checkbox-checked').toggleClass('snf-checkbox-unchecked snf-checkbox-checked');
10
        $(checkbox_link).closest('li').toggleClass('selected');
11
    },
12
    check : function(checkbox_link) {
13
        $(checkbox_link).find('span').removeClass('snf-checkbox-unchecked').addClass('snf-checkbox-checked');
14
        $(checkbox_link).closest('li').addClass('selected');
15
    },
16
    uncheck : function(checkbox_link) {
17
        $(checkbox_link).find('span').removeClass('snf-checkbox-checked').addClass('snf-checkbox-unchecked');
18
        $(checkbox_link).closest('li').removeClass('selected');
19
    },
20

  
21
    reset: function(area) {
22
        $(area).find('.snf-radio-checked').not('.prechecked').toggleClass('snf-radio-checked snf-radio-unchecked');
23
        $(area).find('.snf-radio-unchecked.prechecked').toggleClass('snf-radio-checked snf-radio-unchecked');
24
    }
25

  
26
};
27

  
28
ui.radiobtn = {
29
    changeState: function(radiobtn_link) {
30
        $(radiobtn_link).find('span.snf-radio-unchecked, span.snf-radio-checked').toggleClass('snf-radio-unchecked snf-radio-checked');
31
        $(radiobtn_link).closest('li').addClass('selected');
32
    },
33
    obtainOneChecked : function(radiobtn_link) {
34
        $(radiobtn_link).closest('ul').find('li').removeClass('selected');
35
        $(radiobtn_link).closest('ul').find('span.snf-radio-checked').toggleClass('snf-radio-unchecked snf-radio-checked');
36
    },
37
    reset : function(area) {
38
        $(area).find('.snf-checkbox-checked').not('.prechecked').toggleClass('snf-checkbox-checked snf-checkbox-unchecked');
39
        $(area).find('.snf-checkbox-unchecked.prechecked').toggleClass('snf-checkbox-checked snf-checkbox-unchecked');
40
    }
41

  
42
};
43

  
44
    $(document).ready(function(){
45

  
46
        // checkboxes binds
47

  
48
        $('.check').click(function(e) {
49
            e.preventDefault();
50
            e.stopPropagation();
51
            ui.checkbox.changeState(this);
52
            ui.entitiesActionsEnabled();
53
        });
54

  
55
        $('.lt-bar .select .check').click(function(e) {
56
            $(this).siblings('em').toggle();
57
            if ( $(this).find('span').hasClass('snf-checkbox-unchecked')){
58
                ui.checkbox.uncheck($('.list-view  li:not(".not-selectable") .check'));
59
            } else {
60
                ui.checkbox.check($('.list-view  li:not(".not-selectable") .check'));
61
            }
62
        });
63

  
64
        $('.trigger-checkbox.has-more .check').click(function(e) {
65
            ui.slideHiddenArea(this, $(this).parent().next('.more'));
66
        });
67

  
68
        $('.dhcp-option .check').click(function(e) {
69
            $(this).parents('li').siblings().find('ul.subnet-options').parent('li').toggle();
70
        });
71

  
72
        // for lis that we want to change the checkbox state
73
        $('.trigger-checkbox').click(function(e){
74
            $(this).find('.check').trigger('click');
75
        });
76

  
77
        $('.trigger-checkbox').find('a').click(function(e){
78
            e.stopPropagation();
79
        });
80

  
81
         // for checkboxes created after document.ready
82
        $('.items-list').on('click','.check', function(e){
83
            e.preventDefault();
84
            e.stopPropagation();
85
            ui.changeCheckboxState(this);
86
        });
87

  
88
        // radiobuttons binds
89

  
90
        $('.radiobtn').click(function(e) {
91
            e.stopPropagation();
92
            e.preventDefault();
93
            if($(this).find('span').hasClass('snf-radio-unchecked')) {
94
                ui.radiobtn.obtainOneChecked(this);
95
                ui.radiobtn.changeState(this);
96
            }
97
        });
98

  
99
        $('.subnet-options .radiobtn').click(function(e) {
100
            if($(this).closest('li').hasClass('manual')) {
101
                $(this).siblings('.input').show();
102
            }
103
            else {
104
                $(this).closest('li').siblings('.manual').find('.input').hide();
105
            }
106
        });       
107

  
108
        $('.trigger-radiobtn').click(function(e) {
109
            $(this).find('.radiobtn').trigger('click');
110
        });
111

  
112
        $('.firewall .more  .radiobtn').click(function(e){
113
            $(this).parents('.firewall').removeAttr('data-firewall');
114
            $(this).parents('.firewall').data('firewall', $(this).parent().attr('class'));
115
            ui.firewallSetup();
116
        });
117

  
118
    });
/dev/null
1
/*
2
* Various functions that will be used throughout all templates
3
* are inside ui Object
4
*/
5

  
6
ui = {};
7
/*
8
* ui.wizards get populated in vm-wizard.js
9
* here is the declaration only
10
*/
11
ui.wizard = {};
12
ui.checkbox = {};
13
ui.radiobtn = {};
14

  
15
/* when closeEl el is clicked, its parent with class divToCloseClass slidesUp */
16
ui.closeDiv = function(closeEl, divToCloseClass) {
17
    closeEl.click(function(e){
18
        e.preventDefault();
19
        $(this).parents(divToCloseClass).slideUp('slow');
20
    });
21
}
22

  
23

  
24
ui.trimChars = function( str, chars) {
25
    if ( str.length>chars){
26
        return $.trim(str).substring(0, chars)+ "...";
27
    } else {
28
        return str;
29
    }
30
}
31

  
32

  
33
/* Sets element min-height
34
* Used for .details, .lt-bar divs
35
*/
36
ui.setElminHeight = function(el){
37
    var WindowHeight = $(window).height();
38
    var header = $('.header').outerHeight();
39
    var actions = $('.actions-bar').height();
40
    var h1= WindowHeight - (header+actions);
41
    el.css('min-height', h1);
42
}
43

  
44
/* Sets element height
45
* Used for .details, .lt-bar divs
46
*/
47
ui.setElHeight = function(el){
48
    var WindowHeight = $(window).height();
49
    var header = $('.header').outerHeight();
50
    var actions = $('.actions-bar').height();
51
    var h1= WindowHeight - (header+actions);
52
    el.css('height', h1);
53
}
54

  
55
/* Sets element max-height
56
* Used for div.storage-progress
57
*/
58
ui.setElmaxHeight = function(el){
59
    var WindowHeight = $(window).height();
60
    var header = $('.header').outerHeight();
61
    var actions = $('.actions-bar').height();
62
    var h1= WindowHeight - (header+actions);
63
    el.css('max-height', h1);
64
}
65

  
66
/* 
67
* Logic for Entities actions. Present in items_list pages
68
* Available categories are :
69
*  - both/single ( for multiple entities/single entities)
70
*  - running/off ( for running/off entities)
71
*  - permanent ( for entities always active )
72
* Can be used for pithos as well
73
* Available categories are :
74
* - files ( for files only actions)
75
* - folders ( for folders only actions)
76
* - all ( for files/folders actions)
77
*/
78
ui.entitiesActionsEnabled = function(){
79
    var all = $('.snf-checkbox-checked').length;
80
    var running = $('.snf-checkbox-checked').parents('li.running').length;
81
    var off = $('.snf-checkbox-checked').parents('li.off').length;
82
    var files = $('.snf-checkbox-checked').parents('li.file').length;
83
    var folders = $('.snf-checkbox-checked').parents('li.folder').length;
84

  
85
    console.log(files,'files');
86
    console.log(folders,'folders');
87

  
88
    $('.lt-bar .lt-actions li:not(.permanent) a').removeClass('active');
89

  
90
    if ( ( files * folders )>0 ) {
91
        $('.lt-actions li.all a').addClass('active');
92
    } else {
93
        if ( files>0 ) {
94
            $('.lt-actions li.files a').addClass('active');
95
        }
96
        if ( folders>0 ){
97
            $('.lt-actions li.folders a').addClass('active');
98
        }
99
    }
100

  
101
    if ( (running*off) > 0 ){
102
         $('.lt-actions li.both a').addClass('active');
103
         $('.lt-actions li.single a').removeClass('active');
104
    } else {
105
        if (running > 0) {
106
            $('.lt-actions li.both a').addClass('active');
107
            $('.lt-actions li.running a').addClass('active');
108
        } else if (off>0) {
109
            $('.lt-actions li.both a').addClass('active');
110
            $('.lt-actions li.off a').addClass('active');
111
        }
112
        if ( all > 1 ) {
113
            $('.lt-actions li.single a').removeClass('active');
114
        }
115
    }
116
}
117

  
118
ui.inactiveActions = function() {
119

  
120
    // Availble actions: connect, reboot, shut, destroy, start
121
    // These actions will be DISABLED
122
    var statesActions ={
123
        'off'      : ['connect', 'reboot', 'shut'],
124
        'error'    : ['connect', 'reboot', 'shut', 'start'],
125
        'building' : ['reboot', 'start'],
126
        'running'  : ['start'],
127
        'rebooting': ['start'],
128
        'starting' : ['start'],
129
        'shutting' : ['connect', 'reboot', 'shut']
130
    } ;
131

  
132
    _.each (statesActions, function(val, key) {
133
        _.each(val, function(value) {
134
            var el = '.' + key + ' .' + value;
135
            $(el).addClass('inactive');
136
        });
137
    })
138
}
139

  
140
ui.detailsCustom = function(area) {
141
    // position last connected item
142
    var el = area.find('.item').last();
143
    // -2 is the border width;
144
    var moveY = el.find('.connections >li').last().outerHeight(true) - 2;
145
    el.css('top',moveY);
146
    el.css('marginTop', -moveY);
147
}
148

  
149
ui.firewallSetup = function(){
150
    $('.firewall').each(function(){
151
        $(this).removeClass('fully unprotected basic');
152
        $(this).addClass($(this).data('firewall'));
153
        if($(this).hasClass('unprotected')){
154
            $(this).find('p').first().find('em').html('off');
155
        } else {
156
            $(this).find('p').first().find('em').html('on');
157
        }
158
    });
159
}
160

  
161

  
162

  
163
/*
164
* In order for the editable value functionality to work, the html markup
165
* should be:
166
    <div class="editable">
167
        <span class="input-txt">editable value</span>
168
        <input type="text">
169
        <a href="#" class="edit">edit</a>
170
        <a href="#" class="save">save</a>
171
        <a href="#" class="cancel">cancel</a>
172
    </div>
173
*/
174
ui.editable = function(){
175

  
176
/*
177
* resetForm hides save and cancel buttons,
178
* text input and shows input-txt. resetForm does not alter
179
* input-txt content.
180
*/
181

  
182
    function resetForm(e, elem) {
183
        var el = elem.parents('.editable');
184
        el.find('input[type="text"]').hide();
185
        el.find('a.cancel, a.save').hide();
186
        el.find('a.edit, .input-txt').show();
187
    }
188

  
189
/* 
190
* showForm hides input-txt, shows save and cancel buttons and
191
* sets input value to input-txt content.
192
*/
193
    function showForm(e,elem) {
194
        e.stopPropagation(); 
195
        e.preventDefault();
196
        var el = elem.parents('.editable'); 
197
        el.find('input[type="text"]').val(el.find('.input-txt').html());
198
        el.find('input[type="text"]').show().focus();
199
        el.find('a.cancel, a.save').show();
200
        elem.hide();
201
        el.find('.input-txt').hide();
202
    }
203

  
204
/*
205
setValue sets input-txt value to the input value.
206
Makes sure that the input value is not empty.
207
TODO:
208
Ajax request to submit form
209
*/
210

  
211
    function setValue(elem) {
212
        var el = elem.parents('.editable');
213
        if( el.find('input[type="text"]').val() ) {
214
            el.find('.input-txt').html(el.find('input[type="text"]').val());
215
        }
216
    }
217

  
218

  
219
    $('.editable .edit').click(function(e){
220
        showForm(e, $(this));
221
    })
222

  
223
    $('.editable .cancel').click(function(e){
224
        e.stopPropagation();
225
        e.preventDefault();
226
        resetForm(e, $(this));
227
    })
228

  
229
    $('.editable .save').click(function(e){
230
        e.stopPropagation();
231
        e.preventDefault();
232
        setValue($(this));
233
        resetForm(e, $(this));
234

  
235
    })
236

  
237

  
238
    $('.editable input[type="text"]').click(function(e){
239
        e.stopPropagation();
240
    })
241

  
242
    $('.editable input[type="text"]').keyup(function(e){
243
        if(e.keyCode == 13) { 
244
            setValue($(this));
245
            resetForm(e, $(this));
246
            
247
        }
248
    
249
    })
250

  
251
    $('html').click(function(e) {
252
        resetForm(e, $('.editable a.cancel'));
253
    });
254

  
255
}
256

  
257
/* TODO: better overlay functionality */
258
ui.overlay = function() {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff