Optionally set a separate Javascript server and path
We have about 10-12 JavaScript pages per Web page. They usually are based on the same server as the Web pages, but since they're static files, it makes sense to offload them to a lite server that handles static files well. This commit lets you set a separate Javascript server and path for the default Javascript code in StatusNet. Squashed commit of the following: commit 139d1622fdafe5ad00c820224416d9021efc3234 Author: Evan Prodromou <evan@status.net> Date: Wed Jan 27 11:30:24 2010 -0500 modules that call htmloutputter::script() don't prescribe js/ path commit c6ca3174af73efed55eaed5ff1e2a3bdc77d2d87 Author: Evan Prodromou <evan@status.net> Date: Wed Jan 27 11:28:07 2010 -0500 configurable server and path for javascript files
This commit is contained in:
parent
04a37fa1c7
commit
c52951cef5
@ -416,8 +416,8 @@ class AvatarsettingsAction extends AccountSettingsAction
|
|||||||
parent::showScripts();
|
parent::showScripts();
|
||||||
|
|
||||||
if ($this->mode == 'crop') {
|
if ($this->mode == 'crop') {
|
||||||
$this->script('js/jcrop/jquery.Jcrop.min.js');
|
$this->script('jcrop/jquery.Jcrop.min.js');
|
||||||
$this->script('js/jcrop/jquery.Jcrop.go.js');
|
$this->script('jcrop/jquery.Jcrop.go.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->autofocus('avatarfile');
|
$this->autofocus('avatarfile');
|
||||||
|
@ -302,8 +302,8 @@ class DesignadminpanelAction extends AdminPanelAction
|
|||||||
{
|
{
|
||||||
parent::showScripts();
|
parent::showScripts();
|
||||||
|
|
||||||
$this->script('js/farbtastic/farbtastic.js');
|
$this->script('farbtastic/farbtastic.js');
|
||||||
$this->script('js/userdesign.go.js');
|
$this->script('userdesign.go.js');
|
||||||
|
|
||||||
$this->autofocus('design_background-image_file');
|
$this->autofocus('design_background-image_file');
|
||||||
}
|
}
|
||||||
|
@ -437,8 +437,8 @@ class GrouplogoAction extends GroupDesignAction
|
|||||||
parent::showScripts();
|
parent::showScripts();
|
||||||
|
|
||||||
if ($this->mode == 'crop') {
|
if ($this->mode == 'crop') {
|
||||||
$this->script('js/jcrop/jquery.Jcrop.min.js');
|
$this->script('jcrop/jquery.Jcrop.min.js');
|
||||||
$this->script('js/jcrop/jquery.Jcrop.go.js');
|
$this->script('jcrop/jquery.Jcrop.go.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->autofocus('avatarfile');
|
$this->autofocus('avatarfile');
|
||||||
|
@ -246,18 +246,18 @@ class Action extends HTMLOutputter // lawsuit
|
|||||||
{
|
{
|
||||||
if (Event::handle('StartShowScripts', array($this))) {
|
if (Event::handle('StartShowScripts', array($this))) {
|
||||||
if (Event::handle('StartShowJQueryScripts', array($this))) {
|
if (Event::handle('StartShowJQueryScripts', array($this))) {
|
||||||
$this->script('js/jquery.min.js');
|
$this->script('jquery.min.js');
|
||||||
$this->script('js/jquery.form.js');
|
$this->script('jquery.form.js');
|
||||||
$this->script('js/jquery.cookie.js');
|
$this->script('jquery.cookie.js');
|
||||||
$this->script('js/json2.js');
|
$this->script('json2.js');
|
||||||
$this->script('js/jquery.joverlay.min.js');
|
$this->script('jquery.joverlay.min.js');
|
||||||
Event::handle('EndShowJQueryScripts', array($this));
|
Event::handle('EndShowJQueryScripts', array($this));
|
||||||
}
|
}
|
||||||
if (Event::handle('StartShowStatusNetScripts', array($this)) &&
|
if (Event::handle('StartShowStatusNetScripts', array($this)) &&
|
||||||
Event::handle('StartShowLaconicaScripts', array($this))) {
|
Event::handle('StartShowLaconicaScripts', array($this))) {
|
||||||
$this->script('js/xbImportNode.js');
|
$this->script('xbImportNode.js');
|
||||||
$this->script('js/util.js');
|
$this->script('util.js');
|
||||||
$this->script('js/geometa.js');
|
$this->script('geometa.js');
|
||||||
// Frame-busting code to avoid clickjacking attacks.
|
// Frame-busting code to avoid clickjacking attacks.
|
||||||
$this->element('script', array('type' => 'text/javascript'),
|
$this->element('script', array('type' => 'text/javascript'),
|
||||||
'if (window.top !== window.self) { window.top.location.href = window.self.location.href; }');
|
'if (window.top !== window.self) { window.top.location.href = window.self.location.href; }');
|
||||||
|
@ -120,6 +120,9 @@ $default =
|
|||||||
array('server' => null,
|
array('server' => null,
|
||||||
'dir' => null,
|
'dir' => null,
|
||||||
'path'=> null),
|
'path'=> null),
|
||||||
|
'javascript' =>
|
||||||
|
array('server' => null,
|
||||||
|
'path'=> null),
|
||||||
'throttle' =>
|
'throttle' =>
|
||||||
array('enabled' => false, // whether to throttle edits; false by default
|
array('enabled' => false, // whether to throttle edits; false by default
|
||||||
'count' => 20, // number of allowed messages in timespan
|
'count' => 20, // number of allowed messages in timespan
|
||||||
|
@ -327,8 +327,8 @@ class DesignSettingsAction extends AccountSettingsAction
|
|||||||
{
|
{
|
||||||
parent::showScripts();
|
parent::showScripts();
|
||||||
|
|
||||||
$this->script('js/farbtastic/farbtastic.js');
|
$this->script('farbtastic/farbtastic.js');
|
||||||
$this->script('js/userdesign.go.js');
|
$this->script('userdesign.go.js');
|
||||||
|
|
||||||
$this->autofocus('design_background-image_file');
|
$this->autofocus('design_background-image_file');
|
||||||
}
|
}
|
||||||
|
@ -351,14 +351,40 @@ class HTMLOutputter extends XMLOutputter
|
|||||||
function script($src, $type='text/javascript')
|
function script($src, $type='text/javascript')
|
||||||
{
|
{
|
||||||
if(Event::handle('StartScriptElement', array($this,&$src,&$type))) {
|
if(Event::handle('StartScriptElement', array($this,&$src,&$type))) {
|
||||||
|
|
||||||
$url = parse_url($src);
|
$url = parse_url($src);
|
||||||
|
|
||||||
if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment']))
|
if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment']))
|
||||||
{
|
{
|
||||||
$src = common_path($src) . '?version=' . STATUSNET_VERSION;
|
$path = common_config('javascript', 'path');
|
||||||
|
|
||||||
|
if (empty($path)) {
|
||||||
|
$path = common_config('site', 'path') . '/js/';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($path[strlen($path)-1] != '/') {
|
||||||
|
$path .= '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($path[0] != '/') {
|
||||||
|
$path = '/'.$path;
|
||||||
|
}
|
||||||
|
|
||||||
|
$server = common_config('javascript', 'server');
|
||||||
|
|
||||||
|
if (empty($server)) {
|
||||||
|
$server = common_config('site', 'server');
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXX: protocol
|
||||||
|
|
||||||
|
$src = 'http://'.$server.$path.$src . '?version=' . STATUSNET_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->element('script', array('type' => $type,
|
$this->element('script', array('type' => $type,
|
||||||
'src' => $src),
|
'src' => $src),
|
||||||
' ');
|
' ');
|
||||||
|
|
||||||
Event::handle('EndScriptElement', array($this,$src,$type));
|
Event::handle('EndScriptElement', array($this,$src,$type));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,7 @@ class FacebookAction extends Action
|
|||||||
|
|
||||||
function showScripts()
|
function showScripts()
|
||||||
{
|
{
|
||||||
$this->script('js/facebookapp.js');
|
$this->script('facebookapp.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user