/*
Copyright 2008-2013 Clipperz Srl
This file is part of Clipperz, the online password manager.
For further information about its features and functionalities please
refer to http://www.clipperz.com.
* Clipperz 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.
* Clipperz 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 Clipperz. If not, see http://www.gnu.org/licenses/.
*/
if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
if (typeof(Clipperz.PM.Components) == 'undefined') { Clipperz.PM.Components = {}; }
if (typeof(Clipperz.PM.Components.Panels) == 'undefined') { Clipperz.PM.Components.Panels = {}; }
//#############################################################################
Clipperz.PM.Components.Panels.DataPanel = function(anElement, args) {
args = args || {};
Clipperz.PM.Components.Panels.DataPanel.superclass.constructor.call(this, anElement, args);
this._progressWidth = 400;
this.render();
return this;
}
//=============================================================================
YAHOO.extendX(Clipperz.PM.Components.Panels.DataPanel, Clipperz.PM.Components.Panels.BasePanel, {
'toString': function() {
return "Clipperz.PM.Components.DataPanel component";
},
//-------------------------------------------------------------------------
'render': function() {
MochiKit.Signal.disconnectAllTo(this);
Clipperz.NotificationCenter.unregister(this);
this.element().update("");
Clipperz.YUI.DomHelper.append(this.element().dom, {tag:'table', border:'0', cellspacing:'0', cellpadding:'0', children:[
{tag:'tbody', children:[
{tag:'tr', children:[
{tag:'td', valign:'top', width:'200', children:[
{tag:'ul', id:"dataSubMenu", cls:'subMenu', children:[
{tag:'li', id:'offlineCopyTab', htmlString:Clipperz.PM.Strings['offlineCopyTabLabel']},
{tag:'li', id:'sharingTab', htmlString:Clipperz.PM.Strings['sharingTabLabel']},
{tag:'li', id:'importTab', htmlString:Clipperz.PM.Strings['importTabLabel']},
{tag:'li', id:'printingTab', htmlString:Clipperz.PM.Strings['printingTabLabel']}
]}
]},
{tag:'td', valign:'top', children:[
{tag:'ul', cls:'clipperzTabPanels', children:[
{tag:'li', id:this.getId('offlineCopyPanel'), children:[
{tag:'div', cls:'clipperzSubPanel', children:[
{tag:'h5', htmlString:Clipperz.PM.Strings['offlineCopyTabTitle']},
{tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['offlineCopyTabDescription']},
{tag:'div', id:this.getId('offlineCopyLinkBox'), children:[
{tag:'a', id:'offlineCopyLink', href:'#', htmlString:Clipperz.PM.Strings['offlineCopyDownloadLinkLabel']}
]},
{tag:'div', id:this.getId('offlineCopyLinkBox_read-only'), children:[
{tag:'span', cls:'read-only', htmlString:Clipperz.PM.Strings['offlineCopyDownloadLinkLabel']}
]}
]}
]},
{tag:'li', id:this.getId('sharingPanel'), children:[
{tag:'div', cls:'clipperzSubPanel', children:[
{tag:'h5', htmlString:Clipperz.PM.Strings['sharingTabTitle']},
{tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['sharingTabDescription']}
]}
]},
{tag:'li', id:this.getId('importPanel'), children:[
{tag:'div', cls:'clipperzSubPanel', children:[
{tag:'div', id:this.getId('importPanelMainComponent')}
]}
]},
{tag:'li', id:this.getId('printingPanel'), children:[
{tag:'div', cls:'clipperzSubPanel', children:[
{tag:'h5', htmlString:Clipperz.PM.Strings['printingTabTitle']},
{tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['printingTabDescription']},
{tag:'div', id:this.getId('printingLinkBox'), children:[
{tag:'a', id:'printingLink', href:'#', htmlString:Clipperz.PM.Strings['printingLinkLabel']}
]},
{tag:'hr'},
{tag:'div', cls:'panelDescription', htmlString:Clipperz.PM.Strings['exportTabDescription']},
{tag:'div', id:this.getId('exportLinkBox'), children:[
{tag:'a', id:'exportLink', href:'#', htmlString:Clipperz.PM.Strings['exportLinkLabel']}
]}
]}
]}
]}
]}
]}
]}
]});
this.tabPanelController().setUp();
if (Clipperz.PM.Proxy.defaultProxy.isReadOnly()) {
this.getElement('offlineCopyLinkBox').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide();
} else {
this.getElement('offlineCopyLinkBox_read-only').setVisibilityMode(YAHOO.ext.Element.DISPLAY).hide();
MochiKit.Signal.connect('offlineCopyLink', 'onclick', this, 'downloadOfflineCopy');
}
new Clipperz.PM.Components.Import.MainComponent(this.getElement('importPanelMainComponent'), {user:this.user()});
MochiKit.Signal.connect('printingLink', 'onclick', this, 'printAllData');
MochiKit.Signal.connect('exportLink', 'onclick', this, 'exportAllData');
Clipperz.NotificationCenter.register(null, 'switchLanguage', this, 'switchLanguageHandler');
},
//-------------------------------------------------------------------------
'tabPanelController': function() {
if (this._tabPanelController == null) {
var tabPanelControllerConfig;
tabPanelControllerConfig = {}
tabPanelControllerConfig['offlineCopyTab'] = this.getId('offlineCopyPanel');
tabPanelControllerConfig['sharingTab'] = this.getId('sharingPanel');
tabPanelControllerConfig['importTab'] = this.getId('importPanel');
tabPanelControllerConfig['printingTab'] = this.getId('printingPanel');
this._tabPanelController = new Clipperz.PM.Components.TabPanel.TabPanelController({
name: 'dataTabPanel',
config:tabPanelControllerConfig,
selectedTab:'offlineCopyTab'
});
}
return this._tabPanelController;
},
//-------------------------------------------------------------------------
'downloadOfflineCopy': function(anEvent) {
var downloadHref;
downloadHref = window.location.href.replace(/\/[^\/]*$/,'') + Clipperz_dumpUrl;
if (Clipperz_IEisBroken == true) {
window.open(downloadHref, "");
} else {
var deferredResult;
var newWindow;
newWindow = window.open("", "");
anEvent.preventDefault();
deferredResult = new MochiKit.Async.Deferred();
deferredResult.addCallback(MochiKit.Base.method(this.user().connection(), 'message'), 'echo', {'echo':"echo"});
deferredResult.addCallback(function(aWindow) {
aWindow.location.href = downloadHref;
}, newWindow);
deferredResult.callback();
}
},
//-------------------------------------------------------------------------
'compareRecords': function(a, b) {
return MochiKit.Base.compare(a.label().toLowerCase(), b.label().toLowerCase());
},
'logo': function() {
var result;
if (Clipperz_IEisBroken == true) {
if (Clipperz.PM.Proxy.defaultProxy.isReadOnly()) {
result = "clipperz";
} else {
result = "";
}
} else {
result = "";
}
return result;
},
'progressWidth': function() {
return this._progressWidth;
},
'updateProgress': function(aProgressComponent, aPercentage) {
},
//-------------------------------------------------------------------------
'printAllData': function(anEvent) {
var newWindow;
var allRecords;
//MochiKit.Logging.logDebug(">>> printAllData");
newWindow = window.open("", "");
newWindow.document.write(
"" +
"