Merge pull request #112 from libasys/Fix-strange-Isue-IE8
Use $.each() instead of for(var...) in oc.dialogs. Fixes accessing undefined vars in IE8.
This commit is contained in:
commit
3813ee78c3
1 changed files with 21 additions and 17 deletions
|
@ -66,39 +66,42 @@ var OCdialogs = {
|
||||||
/**
|
/**
|
||||||
* prompt user for input with custom form
|
* prompt user for input with custom form
|
||||||
* fields should be passed in following format: [{text:'prompt text', name:'return name', type:'input type', value: 'dafault value'},...]
|
* fields should be passed in following format: [{text:'prompt text', name:'return name', type:'input type', value: 'dafault value'},...]
|
||||||
|
* select example var fields=[{text:'Test', name:'test', type:'select', options:[{text:'hallo',value:1},{text:'hallo1',value:2}] }];
|
||||||
* @param fields to display
|
* @param fields to display
|
||||||
* @param title dialog title
|
* @param title dialog title
|
||||||
* @param callback which will be triggered when user press OK (user answers will be passed to callback in following format: [{name:'return name', value: 'user value'},...])
|
* @param callback which will be triggered when user press OK (user answers will be passed to callback in following format: [{name:'return name', value: 'user value'},...])
|
||||||
*/
|
*/
|
||||||
form:function(fields, title, callback, modal) {
|
form:function(fields, title, callback, modal) {
|
||||||
var content = '<table>';
|
var content = '<table>';
|
||||||
for (var a in fields) {
|
$.each(fields, function(index, val){
|
||||||
content += '<tr><td>'+fields[a].text+'</td><td>';
|
content += '<tr><td>'+val.text+'</td><td>';
|
||||||
var type=fields[a].type;
|
var type=val.type;
|
||||||
|
|
||||||
if (type == 'text' || type == 'checkbox' || type == 'password') {
|
if (type == 'text' || type == 'checkbox' || type == 'password') {
|
||||||
content += '<input type="'+type+'" name="'+fields[a].name+'"';
|
content += '<input type="'+type+'" name="'+val.name+'"';
|
||||||
if (type == 'checkbox') {
|
if (type == 'checkbox') {
|
||||||
if (fields[a].value != undefined && fields[a].value == true) {
|
if (val.value != undefined && val.value == true) {
|
||||||
content += ' checked="checked">';
|
content += ' checked="checked">';
|
||||||
} else {
|
} else {
|
||||||
content += '>';
|
content += '>';
|
||||||
}
|
}
|
||||||
} else if (type == 'text' || type == 'password' && fields[a].value) {
|
} else if (type == 'text' || type == 'password' && val.value) {
|
||||||
content += ' value="'+fields[a].value+'">';
|
content += ' value="'+val.value+'">';
|
||||||
}
|
}
|
||||||
} else if (type == 'select') {
|
} else if (type == 'select') {
|
||||||
content += '<select name="'+fields[a].name+'"';
|
content += '<select name="'+val.name+'"';
|
||||||
if (fields[a].value != undefined) {
|
if (val.value != undefined) {
|
||||||
content += ' value="'+fields[a].value+'"';
|
content += ' value="'+val.value+'"';
|
||||||
}
|
}
|
||||||
content += '>';
|
content += '>';
|
||||||
for (var o in fields[a].options) {
|
$.each(val.options, function(index, valo){
|
||||||
content += '<option value="'+fields[a].options[o].value+'">'+fields[a].options[o].text+'</option>';
|
content += '<option value="'+valo.value+'">'+valo.text+'</option>';
|
||||||
}
|
});
|
||||||
content += '</select>';
|
content += '</select>';
|
||||||
}
|
}
|
||||||
content += '</td></tr>';
|
content += '</td></tr>';
|
||||||
}
|
|
||||||
|
});
|
||||||
content += '</table>';
|
content += '</table>';
|
||||||
OCdialogs.message(content, title, OCdialogs.FORM_DIALOG, OCdialogs.OK_CANCEL_BUTTONS, callback, modal);
|
OCdialogs.message(content, title, OCdialogs.FORM_DIALOG, OCdialogs.OK_CANCEL_BUTTONS, callback, modal);
|
||||||
},
|
},
|
||||||
|
@ -215,9 +218,10 @@ var OCdialogs = {
|
||||||
fillFilePicker:function(r, dialog_content_id) {
|
fillFilePicker:function(r, dialog_content_id) {
|
||||||
var entry_template = '<div onclick="javascript:OC.dialogs.handlePickerClick(this, \'*ENTRYNAME*\',\''+dialog_content_id+'\')" data="*ENTRYTYPE*"><img src="*MIMETYPEICON*" style="margin-right:1em;"><span id="filename">*NAME*</span><div style="float:right;margin-right:1em;">*LASTMODDATE*</div></div>';
|
var entry_template = '<div onclick="javascript:OC.dialogs.handlePickerClick(this, \'*ENTRYNAME*\',\''+dialog_content_id+'\')" data="*ENTRYTYPE*"><img src="*MIMETYPEICON*" style="margin-right:1em;"><span id="filename">*NAME*</span><div style="float:right;margin-right:1em;">*LASTMODDATE*</div></div>';
|
||||||
var names = '';
|
var names = '';
|
||||||
for (var a in r.data) {
|
$.each(r.data, function(index, a) {
|
||||||
names += entry_template.replace('*LASTMODDATE*', OC.mtime2date(r.data[a].mtime)).replace('*NAME*', r.data[a].name).replace('*MIMETYPEICON*', r.data[a].mimetype_icon).replace('*ENTRYNAME*', r.data[a].name).replace('*ENTRYTYPE*', r.data[a].type);
|
names += entry_template.replace('*LASTMODDATE*', OC.mtime2date(a.mtime)).replace('*NAME*', a.name).replace('*MIMETYPEICON*', a.mimetype_icon).replace('*ENTRYNAME*', a.name).replace('*ENTRYTYPE*', a.type);
|
||||||
}
|
});
|
||||||
|
|
||||||
$(dialog_content_id + ' #filelist').html(names);
|
$(dialog_content_id + ' #filelist').html(names);
|
||||||
$(dialog_content_id + ' .filepicker_loader').css('visibility', 'hidden');
|
$(dialog_content_id + ' .filepicker_loader').css('visibility', 'hidden');
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue