mirror of
http://git.whoc.org.uk/git/password-manager.git
synced 2024-11-01 11:27:16 +01:00
238 lines
6.6 KiB
JavaScript
238 lines
6.6 KiB
JavaScript
|
/*
|
||
|
|
||
|
Copyright 2008-2011 Clipperz Srl
|
||
|
|
||
|
This file is part of Clipperz's Javascript Crypto Library.
|
||
|
Javascript Crypto Library provides web developers with an extensive
|
||
|
and efficient set of cryptographic functions. The library aims to
|
||
|
obtain maximum execution speed while preserving modularity and
|
||
|
reusability.
|
||
|
For further information about its features and functionalities please
|
||
|
refer to http://www.clipperz.com
|
||
|
|
||
|
* Javascript Crypto Library is free software: you can redistribute
|
||
|
it and/or modify it under the terms of the GNU Affero General Public
|
||
|
License as published by the Free Software Foundation, either version
|
||
|
3 of the License, or (at your option) any later version.
|
||
|
|
||
|
* Javascript Crypto Library is distributed in the hope that it will
|
||
|
be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
See the GNU Affero General Public License for more details.
|
||
|
|
||
|
* You should have received a copy of the GNU Affero General Public
|
||
|
License along with Javascript Crypto Library. If not, see
|
||
|
<http://www.gnu.org/licenses/>.
|
||
|
|
||
|
*/
|
||
|
|
||
|
if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
|
||
|
if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; }
|
||
|
|
||
|
|
||
|
Clipperz.YUI.Drawer = function(anElement, aRegion) {
|
||
|
this._status = 'slideIn';
|
||
|
|
||
|
this._element = YAHOO.ext.Element.get(anElement);
|
||
|
this._region = aRegion || null;
|
||
|
|
||
|
this._collapsedElement = this.element().getChildrenByClassName("drawer-collapsed")[0];
|
||
|
this._contentElement = this.element().getChildrenByClassName("drawer-content")[0];
|
||
|
|
||
|
|
||
|
this._wholeCollapedElement = this.enhanceCollapsedElement();
|
||
|
this._wholeCollapedElement.setWidth(this.region().element().getWidth());
|
||
|
this._wholeCollapedElement.setHeight(this.region().element().getHeight());
|
||
|
|
||
|
this._contentWrapper = this.enhanceContentElement();
|
||
|
this._contentElementActor = new YAHOO.ext.Actor(this.contentWrapper().dom);
|
||
|
this.contentElementActor().hide();
|
||
|
|
||
|
this._contentWidth = 200;
|
||
|
};
|
||
|
|
||
|
YAHOO.extendX(Clipperz.YUI.Drawer, YAHOO.ext.util.Observable, {
|
||
|
|
||
|
'element': function() {
|
||
|
return this._element;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'status': function() {
|
||
|
return this._status;
|
||
|
},
|
||
|
|
||
|
'setStatus': function(aValue) {
|
||
|
this._status = aValue;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'collapsedElement': function() {
|
||
|
return this._collapsedElement;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'contentElement': function() {
|
||
|
return this._contentElement;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'contentElementActor': function() {
|
||
|
return this._contentElementActor;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'contentWrapper': function() {
|
||
|
return this._contentWrapper;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'contentWidth': function() {
|
||
|
return this._contentWidth;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'region': function() {
|
||
|
return this._region;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'enhanceCollapsedElement': function() {
|
||
|
var wrapper;
|
||
|
var link;
|
||
|
|
||
|
wrapper = this.collapsedElement().wrap({tag:'div', cls:'drawer-collapsedElement-wrapper', children:[
|
||
|
{tag:'div', cls:'drawer-pin-button', children:[
|
||
|
{tag:'a', cls:'drawer-pin-button', href:"#", children:[
|
||
|
{tag:'img', src:'./images/directLogins/drawer/mm-expand.gif'}
|
||
|
]}
|
||
|
]}
|
||
|
]});
|
||
|
|
||
|
link = wrapper.getChildrenByClassName('drawer-pin-button', 'a')[0];
|
||
|
MochiKit.Signal.connect(link.dom, 'onclick', this, 'pinDrawer');
|
||
|
|
||
|
this.collapsedElement().setHeight('100%');
|
||
|
this.collapsedElement().setStyle('cursor', 'pointer');
|
||
|
MochiKit.Signal.connect(this.collapsedElement().dom, 'onclick', this, 'showDrawer');
|
||
|
|
||
|
return wrapper;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'enhanceContentElement': function() {
|
||
|
var wrapper;
|
||
|
|
||
|
wrapper = this.contentElement().wrap({tag:'div', cls:'drawer-content-wrapper', children:[
|
||
|
{tag:'div', cls:'drawer-content-header', html:'direct login', style:'width:100%;'}
|
||
|
]});
|
||
|
|
||
|
MochiKit.Signal.connect(wrapper.dom, 'onclick', this, 'hideDrawer');
|
||
|
return wrapper;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'pinDrawer': function() {
|
||
|
alert("pin drawer");
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'showDrawer': function() {
|
||
|
if (this.status() == 'slideIn') {
|
||
|
var actor;
|
||
|
|
||
|
this.setStatus('slidingOut');
|
||
|
actor = this.contentElementActor();
|
||
|
actor.setHeight(this.region().element().getHeight());
|
||
|
|
||
|
actor.startCapture(true);
|
||
|
actor.alignTo(this.element(), 'tr');
|
||
|
actor.blindShow('left', this.contentWidth(), .35);
|
||
|
actor.play(this.onSlideOut.createDelegate(this));
|
||
|
}
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'onSlideOut': function() {
|
||
|
this.setStatus('slideOut');
|
||
|
MochiKit.Logging.logDebug(">>> onSlideOut");
|
||
|
// alert("done");
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
/*
|
||
|
'showContentElement': function() {
|
||
|
var top, left, width, height;
|
||
|
|
||
|
MochiKit.Logging.logDebug(">>> showContentElement");
|
||
|
|
||
|
|
||
|
top = this.element().getTop(true);
|
||
|
left = this.element().getRight();
|
||
|
width = this.contentWidth();
|
||
|
height = this.element().getHeight();
|
||
|
|
||
|
this.contentWrapper().setStyle('position', 'absolute');
|
||
|
this.contentWrapper().setStyle('overflow', 'none');
|
||
|
this.contentWrapper().setStyle('visibility', 'visible');
|
||
|
this.contentWrapper().setStyle('z-index', '10');
|
||
|
|
||
|
this.contentWrapper().setLeft(left);
|
||
|
this.contentWrapper().setTop(top);
|
||
|
this.contentWrapper().setHeight(height);
|
||
|
this.contentWrapper().setWidth(width);
|
||
|
|
||
|
this.contentWrapper().show();
|
||
|
},
|
||
|
*/
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'hideDrawer': function() {
|
||
|
if (this.status() == 'slideOut') {
|
||
|
var actor;
|
||
|
|
||
|
this.setStatus('slidingIn');
|
||
|
|
||
|
actor = this.contentElementActor();
|
||
|
actor.setHeight(this.region().element().getHeight());
|
||
|
|
||
|
actor.startCapture(true);
|
||
|
actor.alignTo(this.element(), 'tr');
|
||
|
actor.blindHide('left', .35);
|
||
|
actor.setVisible(false);
|
||
|
actor.play(this.onSlideIn.createDelegate(this));
|
||
|
}
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'onSlideIn': function() {
|
||
|
this.setStatus('slideIn');
|
||
|
MochiKit.Logging.logDebug(">>> onSlideIn");
|
||
|
// alert("done");
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'hideContentElement': function() {
|
||
|
this.contentWrapper().hide();
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
__syntaxFix__: '__syntaxFix__'
|
||
|
});
|