mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-06 04:20:33 +00:00
- see ChangeLog;
Monotone-Parent: 568b85ef47fb295fcbb767ce70799e2091003ad6 Monotone-Revision: d3c9c2e311e8b691ae22a71396569a698fc505e6 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-07-07T21:19:48 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
+66
-10
@@ -19,7 +19,14 @@
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <SOGoUI/UIxComponent.h>
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
#import <SOGo/SOGoUser.h>
|
||||
|
||||
@interface WOComponent (PopupExtension)
|
||||
|
||||
- (BOOL) isPopup;
|
||||
|
||||
@end
|
||||
|
||||
@interface UIxPageFrame : UIxComponent
|
||||
{
|
||||
@@ -109,7 +116,18 @@
|
||||
return rm;
|
||||
}
|
||||
|
||||
- (NSString *)pageJavaScriptURL {
|
||||
- (BOOL) isPopup
|
||||
{
|
||||
WOComponent *page;
|
||||
|
||||
page = [[self context] page];
|
||||
|
||||
return ([page respondsToSelector: @selector(isPopup)]
|
||||
&& [page isPopup]);
|
||||
}
|
||||
|
||||
- (NSString *) pageJavaScriptURL
|
||||
{
|
||||
static NSMutableDictionary *pageToURL = nil;
|
||||
WOResourceManager *rm;
|
||||
WOComponent *page;
|
||||
@@ -122,26 +140,64 @@
|
||||
|
||||
if ((url = [pageToURL objectForKey:pageName]) != nil)
|
||||
return [url isNotNull] ? url : nil;
|
||||
|
||||
|
||||
if (pageToURL == nil)
|
||||
pageToURL = [[NSMutableDictionary alloc] initWithCapacity:32];
|
||||
|
||||
rm = [self pageResourceManager];
|
||||
jsname = [pageName stringByAppendingString:@".js"];
|
||||
|
||||
url = [rm urlForResourceNamed:jsname
|
||||
inFramework:
|
||||
[[NSBundle bundleForClass:[page class]] bundlePath]
|
||||
|
||||
url = [rm urlForResourceNamed: jsname
|
||||
inFramework: [[NSBundle bundleForClass: [page class]] bundlePath]
|
||||
languages:nil
|
||||
request:[[self context] request]];
|
||||
|
||||
|
||||
/* cache */
|
||||
[pageToURL setObject:(url ? url : (id)[NSNull null]) forKey:pageName];
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
- (BOOL)hasPageSpecificJavaScript {
|
||||
return [[self pageJavaScriptURL] length] > 0 ? YES : NO;
|
||||
- (NSString *) productJavaScriptURL
|
||||
{
|
||||
static NSMutableDictionary *pageToURL = nil;
|
||||
WOResourceManager *rm;
|
||||
WOComponent *page;
|
||||
NSString *jsname, *pageName;
|
||||
NSString *url;
|
||||
|
||||
page = [[self context] page];
|
||||
pageName = NSStringFromClass([page class]);
|
||||
// TODO: does not seem to work! (gets reset): pageName = [page name];
|
||||
|
||||
if ((url = [pageToURL objectForKey:pageName]) != nil)
|
||||
return [url isNotNull] ? url : nil;
|
||||
|
||||
if (pageToURL == nil)
|
||||
pageToURL = [[NSMutableDictionary alloc] initWithCapacity:32];
|
||||
|
||||
rm = [self pageResourceManager];
|
||||
jsname = [[page frameworkName] stringByAppendingString:@".js"];
|
||||
|
||||
url = [rm urlForResourceNamed: jsname
|
||||
inFramework: [[NSBundle bundleForClass: [page class]] bundlePath]
|
||||
languages:nil
|
||||
request:[[self context] request]];
|
||||
|
||||
/* cache */
|
||||
[pageToURL setObject:(url ? url : (id)[NSNull null]) forKey:pageName];
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
- (BOOL) hasPageSpecificJavaScript
|
||||
{
|
||||
return ([[self pageJavaScriptURL] length] > 0);
|
||||
}
|
||||
|
||||
- (BOOL) hasProductSpecificJavaScript
|
||||
{
|
||||
return ([[self productJavaScriptURL] length] > 0);
|
||||
}
|
||||
|
||||
@end /* UIxPageFrame */
|
||||
|
||||
Reference in New Issue
Block a user