Files
alfresco-community-repo/source/web/scripts/ajax/mywebfiles.js
Derek Hulley f279d99d80 Merged V2.1 to HEAD
6609: Portlet UI (doclist, myspaces, mytasks) updates following design review
   6610: AR-1270
   6611: debugging WCM-778.
   6612: Improved API documentation.
   6613: Added store lookup cache to EHCache config for default and extended cluster sample
   6614: AWC-1531 and AWC-1146. Link objects that have targets which the user does not have access to are now filtered from the view.
   6615: AR-1664: Bootstraping from full export fails if file names differs only with a space: my file, my file
   6616: Fixed AR-1519: Possible duplicate entries when moving nodes between stores
   6617: Removed deprecated aspects; Added emailed aspect to messages; Added OOo command line options
   6618: Fix for AWC-1350
   6619: Fix for AWC-1509
   6620: AWC-1179: Searching for users in Invite User Wizard is slow with large number of users
   6621: Changed shutdown logic to avoid classloader cleanup race.
   6622: Fix for AWC-1533 (can't save office docs to Company Home)
   6623: Fix for AR-1705
   6624: Better fix for AWC-1256 (links generated by tinyMCE editor)
   6625: Fixed AR-1713: Transformers that do nothing don't break full text indexing
   6626: Fixed AWC-1438: Added explcit TXT to PDF converter that wraps the PDFBox TextToPDF class
   6627: Portlet templates now handle missing description property on web form
   6628: Fix WCM-788
   6635: Make workflow available for users who cannot see company home
         Resolved conflicted state of 'root\projects\repository\source\java\org\alfresco\repo\workflow\jbpm\JBPMEngine.java'


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6748 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2007-09-11 03:39:41 +00:00

133 lines
4.5 KiB
JavaScript

var MyWebFiles = {
ANIM_LENGTH: 300,
FILE_PANEL_HEIGHT: 128,
start: function()
{
if ($('webFilesPanel'))
{
MyWebFiles.parseFilesPanels();
$('webFilesPanel').setStyle('visibility', 'visible');
}
},
parseFilesPanels: function()
{
var projects = $$('#webFilesPanel .webProjectRow');
var files = $$('#webFilesPanel .webProjectFiles');
var fxFile = new Fx.Elements(files, {wait: false, duration: MyWebFiles.ANIM_LENGTH, transition: Fx.Transitions.sineInOut,
onComplete: function()
{
// event handler to ensure scrollable area style is set
this.elements.each(function(file, i)
{
if (file.parentNode.isOpen == true)
{
$E('.fileResources', file).setStyle('overflow', 'auto');
}
});
}
});
projects.each(function(project, i)
{
var file = files[i];
// animated elements defaults
file.maxHeight = Math.max(file.getStyle('height').toInt(), 1);
file.defHeight = 1;
file.setStyle('height', file.defHeight);
file.setStyle('display', 'block');
file.setStyle('opacity', 0);
// register 'mouseenter' event for each project
project.addEvent('mouseenter', function(e)
{
if (projects.isOpen)
return;
// highlight the item title
projects.addClass('webProjectRowSelected');
// reset styles on all closed projects
projects.each(function(otherProject, j)
{
if ((otherProject != project) && (!otherProject.isOpen))
{
// reset selected class
otherProject.removeClass('webProjectRowSelected');
}
});
});
// register 'mouseleave' event for each project
project.addEvent('mouseleave', function(e)
{
if (project.isOpen)
return;
// unhighlight the item title
project.removeClass('webProjectRowSelected');
});
// register 'click' event for each project
project.addEvent('click', function(e)
{
var animFile = {},
fileHeight = file.getStyle('height').toInt();
if (!project.isOpen)
{
// open up this project
project.isOpen = true;
// slide and fade in the file panel
animFile[i] = {
'height': [fileHeight, file.defHeight + MyWebFiles.FILE_PANEL_HEIGHT],
'opacity': [file.getStyle('opacity'), 1]};
// close other open projects and toggle this one if it's already open
projects.each(function(otherProject, j)
{
var otherFile = files[j];
if (otherProject != project)
{
// close any other open projects
otherProject.isOpen = false;
// unhighlight the item title
otherProject.removeClass('webProjectRowSelected');
// does this file panel need resetting back to it's default height?
var otherHeight = otherFile.getStyle('height').toInt();
if (otherHeight != otherFile.defHeight)
{
animFile[j] = {
'height': [otherHeight, otherFile.defHeight],
'opacity': [otherFile.getStyle('opacity'), 0]};
}
$E('.fileResources', otherFile).setStyle('overflow', 'hidden');
}
});
}
else
{
// close this project
project.isOpen = false;
// reset project back to it's default height
animFile[i] = {
'height': [fileHeight, file.defHeight],
'opacity': [file.getStyle('opacity'), 0]};
$E('.fileResources', file).setStyle('overflow', 'hidden');
}
fxFile.start(animFile);
});
});
}
};
window.addEvent('load', MyWebFiles.start);