@@ -69,7 +69,9 @@ Class.create("MetaCellRenderer", {
69
69
return configs ;
70
70
} ,
71
71
72
+ /*************/
72
73
/* SELECTORS */
74
+ /*************/
73
75
selectorsFilter : function ( element , ajxpNode , type , metadataDef , ajxpNodeObject ) {
74
76
if ( ! metadataDef ) return ;
75
77
if ( ! MetaCellRenderer . staticMetadataCache ) {
@@ -130,7 +132,9 @@ Class.create("MetaCellRenderer", {
130
132
}
131
133
} ,
132
134
135
+ /*****************/
133
136
/* LABELS SYSTEM */
137
+ /*****************/
134
138
cssLabelsFilter : function ( element , ajxpNode , type , metadataDef , ajxpNodeObject ) {
135
139
var attName = metadataDef . attributeName ;
136
140
var content , obj , rule ;
@@ -188,10 +192,15 @@ Class.create("MetaCellRenderer", {
188
192
formPanelCssLabels : function ( formElement , form ) {
189
193
var value = formElement . value ;
190
194
var obj = new MetaCellRenderer ( ) ;
191
- var hidden = new Element ( 'input' , { type :'hidden' , name :formElement . name , value :formElement . value } ) ;
195
+ var hidden = new Element ( 'input' , {
196
+ type :'hidden' ,
197
+ name :formElement . name ,
198
+ value :formElement . value ,
199
+ id : formElement . id
200
+ } ) ;
192
201
form . insert ( hidden ) ;
193
202
var cssList = obj . cssList ;
194
- var selector = new Element ( 'select' , { style : "width:56%;height:24px;" } ) ;
203
+ var selector = new Element ( 'select' , { className : 'select_meta_selector' } ) ;
195
204
selector . insert ( new Element ( 'option' , {
196
205
name :'' ,
197
206
value :'' ,
@@ -215,25 +224,31 @@ Class.create("MetaCellRenderer", {
215
224
findCssRule : function ( value ) {
216
225
return this . cssList . get ( value ) ;
217
226
} ,
218
-
227
+
228
+ /*********************/
219
229
/* STARS RATE SYSTEM */
230
+ /*********************/
220
231
starsRateFilter : function ( element , ajxpNode , type , metadataDef , ajxpNodeObject ) {
221
232
var attributeName = metadataDef . attributeName ;
222
233
223
234
if ( type == 'thumb' ) return ;
224
235
if ( ! element ) return ;
225
236
var value = 0 ;
226
237
try {
227
- var content = element . select ( 'span' ) [ 0 ] . innerHTML ;
238
+ var content = element . down ( 'span' ) . innerHTML ;
228
239
} catch ( e ) {
229
240
}
230
241
if ( content ) value = parseInt ( content ) ;
242
+ else {
243
+ content = ajxpNode . getMetadata ( ) . get ( attributeName ) ;
244
+ if ( content ) value = parseInt ( content ) ;
245
+ }
231
246
var obj = new MetaCellRenderer ( ) ;
232
247
if ( element . down ( 'span.text_label' ) ) {
233
248
var div = obj . createStars ( value , null , attributeName ) ;
234
249
div . setStyle ( { width :'70px' } ) ;
235
250
if ( type == 'detail' ) {
236
- div . setStyle ( { display :'inline' } ) ;
251
+ div . setStyle ( { display :'inline-block ' } ) ;
237
252
}
238
253
element . down ( 'span.text_label' ) . update ( div ) ;
239
254
} else {
@@ -245,7 +260,122 @@ Class.create("MetaCellRenderer", {
245
260
element . writeAttribute ( "data-" + attributeName + "-sorter_value" , value ) ;
246
261
}
247
262
} ,
248
-
263
+
264
+ formPanelStars : function ( formElement , form ) {
265
+ var value = formElement . value ;
266
+ var name = formElement . name ;
267
+ var obj = new MetaCellRenderer ( ) ;
268
+ var div = obj . createStars ( value , form , name ) ;
269
+ div . setStyle ( { paddingTop :3 } ) ;
270
+ formElement . replace ( div ) ;
271
+ form . insert ( new Element ( 'input' , {
272
+ type :'hidden' ,
273
+ name :name ,
274
+ value :value ,
275
+ id :formElement . id
276
+ } ) ) ;
277
+ } ,
278
+
279
+ createStars : function ( value , containingForm , elementName ) {
280
+ var imgOff = 'plugins/meta.user/rating_off.png' ;
281
+ var imgOn = 'plugins/meta.user/rating.png' ;
282
+ var imgRemove = 'plugins/meta.user/rating_remove.png' ;
283
+ var cont = new Element ( 'div' ) ;
284
+ var img ;
285
+ if ( containingForm ) {
286
+ img = new Element ( 'img' , {
287
+ src :imgRemove ,
288
+ style :'float:left;cursor:pointer;margin-right:2px;padding-right:3px;border-right:1px solid #ccc;' ,
289
+ note :0 ,
290
+ title :MessageHash [ 'meta.user.3' ]
291
+ } ) ;
292
+ cont . insert ( img ) ;
293
+ }
294
+ for ( var i = 1 ; i < 6 ; i ++ ) {
295
+ img = new Element ( 'img' , {
296
+ src :( value >= i ?imgOn :imgOff ) ,
297
+ style :'float:left;cursor:pointer;margin-right:2px;' ,
298
+ note :i ,
299
+ title :i
300
+ } ) ;
301
+ cont . insert ( img ) ;
302
+ }
303
+ cont . select ( 'img' ) . invoke ( 'observe' , 'click' , function ( event ) {
304
+ var note = Event . element ( event ) . readAttribute ( 'note' ) ;
305
+ if ( ! containingForm ) {
306
+ window . setTimeout ( function ( ) {
307
+ var selectedNode = pydio . getUserSelection ( ) . getUniqueNode ( ) ;
308
+ var conn = new Connexion ( ) ;
309
+ conn . setParameters ( $H ( {
310
+ get_action : 'edit_user_meta' ,
311
+ file : selectedNode . getPath ( )
312
+ } ) ) ;
313
+ conn . addParameter ( elementName , note ) ;
314
+ conn . onComplete = function ( transport ) {
315
+ pydio . actionBar . parseXmlMessage ( transport . responseXML ) ;
316
+ } ;
317
+ conn . sendAsync ( ) ;
318
+ } , 500 ) ;
319
+ } else {
320
+ containingForm . down ( 'input[name="' + elementName + '"]' ) . setValue ( note ) ;
321
+ var img = Event . element ( event ) ;
322
+ img . previousSiblings ( 'img[src="' + imgOff + '"]' ) . each ( function ( i ) { if ( i . src != imgRemove ) {
323
+ i . src = imgOn ;
324
+ } } ) ;
325
+ img . nextSiblings ( 'img[src="' + imgOn + '"]' ) . each ( function ( i ) { i . src = imgOff ; } ) ;
326
+ img . src = imgOn ;
327
+ }
328
+ } ) ;
329
+ return cont ;
330
+ } ,
331
+
332
+
333
+ /*******************/
334
+ /* TAGS MODIFIERS */
335
+ /*******************/
336
+ formPanelTags : function ( formElement , form ) {
337
+
338
+ var fieldName = formElement . name ;
339
+ var completer = new MetaTagsCompleter ( formElement , fieldName ) ;
340
+
341
+ } ,
342
+
343
+ displayTagsAsBlocks : function ( element , value , ajxpNode ) {
344
+ if ( ! value ) return ;
345
+ var values = $A ( value . split ( "," ) ) . invoke ( "strip" ) ;
346
+ element . update ( '' ) ;
347
+ values . each ( function ( v ) {
348
+ var tag = new Element ( 'span' , { className :"meta_user_tag_block" } ) . update ( v + " <span class='icon-remove' style='cursor: pointer;'></span>" ) ;
349
+ element . insert ( tag ) ;
350
+ var remove = tag . down ( ".icon-remove" ) ;
351
+ remove . observe ( "click" , function ( ) {
352
+ var conn = new Connexion ( ) ;
353
+ conn . setParameters ( $H ( {
354
+ get_action :"edit_user_meta" ,
355
+ file : ajxpNode . getPath ( ) ,
356
+ tags : values . without ( v ) . join ( ", " )
357
+ } ) ) ;
358
+ conn . onComplete = function ( transport ) {
359
+ pydio . actionBar . parseXmlMessage ( transport . responseXML ) ;
360
+ } ;
361
+ conn . sendAsync ( ) ;
362
+ } ) ;
363
+ } ) ;
364
+ } ,
365
+
366
+ /************/
367
+ /* TEXTAREA */
368
+ /************/
369
+ formTextarea : function ( formElement , form ) {
370
+ var obj = new MetaCellRenderer ( ) ;
371
+ var cont = new Element ( 'textarea' , { name :formElement . name , style :'float: left;width: 161px;border-radius: 3px;padding: 2px;height:100px;' } ) ;
372
+ cont . innerHTML = formElement . value ;
373
+ formElement . replace ( cont ) ;
374
+ } ,
375
+
376
+ /********************/
377
+ /* GENERIC METHODS */
378
+ /********************/
249
379
infoPanelModifier : function ( htmlElement , ajxpNode ) {
250
380
var obj = new MetaCellRenderer ( ) ;
251
381
htmlElement . select ( '[data-metatype]' ) . each ( function ( td ) {
@@ -345,109 +475,6 @@ Class.create("MetaCellRenderer", {
345
475
} , 500 ) ;
346
476
} ) ;
347
477
348
- } ,
349
-
350
- formPanelStars : function ( formElement , form ) {
351
- var value = formElement . value ;
352
- var name = formElement . name ;
353
- var obj = new MetaCellRenderer ( ) ;
354
- var div = obj . createStars ( value , form , name ) ;
355
- div . setStyle ( { paddingTop :3 } ) ;
356
- formElement . replace ( div ) ;
357
- form . insert ( new Element ( 'input' , { type :'hidden' , name :name , value :value } ) ) ;
358
- } ,
359
-
360
- createStars : function ( value , containingForm , elementName ) {
361
- var imgOff = 'plugins/meta.user/rating_off.png' ;
362
- var imgOn = 'plugins/meta.user/rating.png' ;
363
- var imgRemove = 'plugins/meta.user/rating_remove.png' ;
364
- var cont = new Element ( 'div' ) ;
365
- if ( containingForm ) {
366
- var img = new Element ( 'img' , {
367
- src :imgRemove ,
368
- style :'float:left;cursor:pointer;margin-right:2px;padding-right:3px;border-right:1px solid #ccc;' ,
369
- note :0 ,
370
- title :MessageHash [ 'meta.user.3' ]
371
- } ) ;
372
- cont . insert ( img ) ;
373
- }
374
- for ( var i = 1 ; i < 6 ; i ++ ) {
375
- var img = new Element ( 'img' , {
376
- src :( value >= i ?imgOn :imgOff ) ,
377
- style :'float:left;cursor:pointer;margin-right:2px;' ,
378
- note :i ,
379
- title :i
380
- } ) ;
381
- cont . insert ( img ) ;
382
- }
383
- cont . select ( 'img' ) . invoke ( 'observe' , 'click' , function ( event ) {
384
- var note = Event . element ( event ) . readAttribute ( 'note' ) ;
385
- window . setTimeout ( function ( ) {
386
- var selectedNode = ajaxplorer . getUserSelection ( ) . getUniqueNode ( ) ;
387
- var conn = new Connexion ( ) ;
388
- var paramms = new Hash ( {
389
- get_action : 'edit_user_meta' ,
390
- file : selectedNode . getPath ( )
391
- } ) ;
392
- paramms . set ( elementName , note ) ;
393
- conn . setParameters ( paramms ) ;
394
- if ( containingForm ) {
395
- containingForm . select ( 'input' ) . each ( function ( el ) {
396
- if ( el . name != elementName ) {
397
- conn . addParameter ( el . name , el . value ) ;
398
- }
399
- } ) ;
400
- }
401
- conn . onComplete = function ( ) {
402
- //ajaxplorer.getContextHolder().setPendingSelection(selectedNode.getPath());
403
- ajaxplorer . fireNodeRefresh ( selectedNode ) ;
404
- if ( containingForm ) {
405
- hideLightBox ( true ) ;
406
- }
407
- } ;
408
- conn . sendAsync ( ) ;
409
- } , 500 ) ;
410
- } ) ;
411
- return cont ;
412
- } ,
413
-
414
- // mod for textarea
415
- formTextarea : function ( formElement , form ) {
416
- var obj = new MetaCellRenderer ( ) ;
417
- var cont = new Element ( 'textarea' , { name :formElement . name , style :'float: left;width: 161px;border-radius: 3px;padding: 2px;height:100px;' } ) ;
418
- cont . innerHTML = formElement . value ;
419
- formElement . replace ( cont ) ;
420
- } ,
421
-
422
-
423
- formPanelTags : function ( formElement , form ) {
424
-
425
- var fieldName = formElement . name ;
426
- var completer = new MetaTagsCompleter ( formElement , fieldName ) ;
427
-
428
- } ,
429
-
430
- displayTagsAsBlocks : function ( element , value , ajxpNode ) {
431
- if ( ! value ) return ;
432
- var values = $A ( value . split ( "," ) ) . invoke ( "strip" ) ;
433
- element . update ( '' ) ;
434
- values . each ( function ( v ) {
435
- var tag = new Element ( 'span' , { className :"meta_user_tag_block" } ) . update ( v + " <span class='icon-remove' style='cursor: pointer;'></span>" ) ;
436
- element . insert ( tag ) ;
437
- var remove = tag . down ( ".icon-remove" ) ;
438
- remove . observe ( "click" , function ( ) {
439
- var conn = new Connexion ( ) ;
440
- conn . setParameters ( $H ( {
441
- get_action :"edit_user_meta" ,
442
- file : ajxpNode . getPath ( ) ,
443
- tags : values . without ( v ) . join ( ", " )
444
- } ) ) ;
445
- conn . onComplete = function ( transport ) {
446
- pydio . actionBar . parseXmlMessage ( transport . responseXML ) ;
447
- } ;
448
- conn . sendAsync ( ) ;
449
- } ) ;
450
- } ) ;
451
478
}
452
479
453
480
} ) ;
0 commit comments