@@ -798,6 +798,13 @@ M.course_dndupload = {
798
798
return ;
799
799
}
800
800
801
+ if ( type . handlers . length == 1 && type . handlers [ 0 ] . noname ) {
802
+ // Only one handler and it doesn't need a name (i.e. a label).
803
+ this . upload_item ( '' , type . type , contents , section , sectionnumber , type . handlers [ 0 ] . module ) ;
804
+ this . check_upload_queue ( ) ;
805
+ return ;
806
+ }
807
+
801
808
if ( this . uploaddialog ) {
802
809
var details = new Object ( ) ;
803
810
details . isfile = false ;
@@ -814,21 +821,22 @@ M.course_dndupload = {
814
821
var uploadid = Math . round ( Math . random ( ) * 100000 ) + '-' + timestamp ;
815
822
var nameid = 'dndupload_handler_name' + uploadid ;
816
823
var content = '' ;
817
- content += '<label for="' + nameid + '">' + type . namemessage + '</label>' ;
818
- content += ' <input type="text" id="' + nameid + '" value="" />' ;
819
824
if ( type . handlers . length > 1 ) {
820
825
content += '<div id="dndupload_handlers' + uploadid + '">' ;
821
826
var sel = type . handlers [ 0 ] . module ;
822
827
for ( var i = 0 ; i < type . handlers . length ; i ++ ) {
823
- var id = 'dndupload_handler' + uploadid ;
828
+ var id = 'dndupload_handler' + uploadid + type . handlers [ i ] . module ;
824
829
var checked = ( type . handlers [ i ] . module == sel ) ? 'checked="checked" ' : '' ;
825
- content += '<input type="radio" name="handler" value="' + type . handlers [ i ] . module + '" id="' + id + '" ' + checked + '/>' ;
830
+ content += '<input type="radio" name="handler" value="' + i + '" id="' + id + '" ' + checked + '/>' ;
826
831
content += ' <label for="' + id + '">' ;
827
832
content += type . handlers [ i ] . message ;
828
833
content += '</label><br/>' ;
829
834
}
830
835
content += '</div>' ;
831
836
}
837
+ var disabled = ( type . handlers [ 0 ] . noname ) ? ' disabled = "disabled" ' : '' ;
838
+ content += '<label for="' + nameid + '">' + type . namemessage + '</label>' ;
839
+ content += ' <input type="text" id="' + nameid + '" value="" ' + disabled + ' />' ;
832
840
833
841
var Y = this . Y ;
834
842
var self = this ;
@@ -846,23 +854,27 @@ M.course_dndupload = {
846
854
e . preventDefault ( ) ;
847
855
var name = Y . one ( '#dndupload_handler_name' + uploadid ) . get ( 'value' ) ;
848
856
name = name . replace ( / ^ \s \s * / , '' ) . replace ( / \s \s * $ / , '' ) ; // Trim
849
- if ( name == '' ) {
850
- return ;
851
- }
852
857
var module = false ;
858
+ var noname = false ;
853
859
if ( type . handlers . length > 1 ) {
854
860
// Find out which module was selected
855
861
var div = Y . one ( '#dndupload_handlers' + uploadid ) ;
856
862
div . all ( 'input' ) . each ( function ( input ) {
857
863
if ( input . get ( 'checked' ) ) {
858
- module = input . get ( 'value' ) ;
864
+ var idx = input . get ( 'value' ) ;
865
+ module = type . handlers [ idx ] . module ;
866
+ noname = type . handlers [ idx ] . noname ;
859
867
}
860
868
} ) ;
861
869
if ( ! module ) {
862
870
return ;
863
871
}
864
872
} else {
865
873
module = type . handlers [ 0 ] . module ;
874
+ noname = type . handlers [ 0 ] . noname ;
875
+ }
876
+ if ( name == '' && ! noname ) {
877
+ return ;
866
878
}
867
879
panel . hide ( ) ;
868
880
// Do the upload
@@ -887,6 +899,17 @@ M.course_dndupload = {
887
899
} ) ;
888
900
// Focus on the 'name' box
889
901
Y . one ( '#' + nameid ) . focus ( ) ;
902
+ for ( i = 0 ; i < type . handlers . length ; i ++ ) {
903
+ if ( type . handlers [ i ] . noname ) {
904
+ Y . one ( '#dndupload_handler' + uploadid + type . handlers [ i ] . module ) . on ( 'click' , function ( e ) {
905
+ Y . one ( '#' + nameid ) . set ( 'disabled' , 'disabled' ) ;
906
+ } ) ;
907
+ } else {
908
+ Y . one ( '#dndupload_handler' + uploadid + type . handlers [ i ] . module ) . on ( 'click' , function ( e ) {
909
+ Y . one ( '#' + nameid ) . removeAttribute ( 'disabled' ) ;
910
+ } ) ;
911
+ }
912
+ }
890
913
} ,
891
914
892
915
/**
0 commit comments