Merge branch 'wip-MDL-33423-m23' of git://github.com/samhemelryk/moodle

This commit is contained in:
Dan Poltawski 2012-06-19 14:29:25 +08:00
commit bb046e61b6
2 changed files with 33 additions and 2 deletions

View file

@ -518,7 +518,7 @@ M.core_filepicker.init = function(Y, options) {
Y.extend(FilePickerHelper, Y.Base, {
api: M.cfg.wwwroot+'/repository/repository_ajax.php',
cached_responses: {},
waitinterval : null, // When the loading template is being displayed and its animation is running this will be an interval instance.
initializer: function(options) {
this.options = options;
if (!this.options.savepath) {
@ -1188,7 +1188,37 @@ M.core_filepicker.init = function(Y, options) {
}, this);
},
wait: function() {
this.fpnode.one('.fp-content').setContent(M.core_filepicker.templates.loading);
// First check there isn't already an interval in play, and if there is kill it now.
if (this.waitinterval != null) {
clearInterval(this.waitinterval);
}
// Prepare the root node we will set content for and the loading template we want to display as a YUI node.
var root = this.fpnode.one('.fp-content');
var content = Y.Node.create(M.core_filepicker.templates.loading).addClass('fp-content-hidden').setStyle('opacity', 0);
var count = 0;
// Initiate an interval, we will have a count which will increment every 100 milliseconds.
// Count 0 - the loading icon will have visibility set to hidden (invisible) and have an opacity of 0 (invisible also)
// Count 5 - the visiblity will be switched to visible but opacity will still be at 0 (inivisible)
// Counts 6 - 15 opacity will be increased by 0.1 making the loading icon visible over the period of a second
// Count 16 - The interval will be cancelled.
var interval = setInterval(function(){
if (!content || !root.contains(content) || count >= 15) {
clearInterval(interval);
return true;
}
if (count == 5) {
content.removeClass('fp-content-hidden');
} else if (count > 5) {
var opacity = parseFloat(content.getStyle('opacity'));
content.setStyle('opacity', opacity + 0.1);
}
count++;
return false;
}, 100);
// Store the wait interval so that we can check it in the future.
this.waitinterval = interval;
// Set the content to the loading template.
root.setContent(content);
},
viewbar_set_enabled: function(mode) {
var viewbar = this.fpnode.one('.fp-viewbar')

View file

@ -10,6 +10,7 @@
.filemanager input[type="text"], .file-picker input[type="text"] {border: 1px solid #BBBBBB;width: 265px;height: 18px;padding: 1px 6px;}
.filemanager select, .file-picker select {height: 22px;padding: 2px 1px;}
.fp-content-center {height: 100%;width: 100%;display:table-cell;vertical-align: middle;}
.fp-content-hidden {visibility: hidden;}
/*
* Dialogue (File Picker and File Manager)