Merge branch '1.0.x' into people_tags_rebase
Conflicts: EVENTS.txt actions/peopletag.php actions/tagother.php classes/Notice.php js/util.js js/util.min.js lib/accountprofileblock.php lib/action.php lib/activityobject.php lib/command.php lib/personalgroupnav.php plugins/OStatus/OStatusPlugin.php
24
EVENTS.txt
@ -1265,3 +1265,27 @@ StartProfileListItemTags: when showing people tags in a profile list item widget
|
|||||||
|
|
||||||
EndProfileListItemTags: after showing people tags in a profile list item widget
|
EndProfileListItemTags: after showing people tags in a profile list item widget
|
||||||
- $widget: ProfileListItem widget
|
- $widget: ProfileListItem widget
|
||||||
|
|
||||||
|
StartActivityObjectOutputAtom: Called at start of Atom XML output generation for ActivityObject chunks, just inside the <activity:object>. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so)
|
||||||
|
- $obj: ActivityObject
|
||||||
|
- $out: XMLOutputter to append custom output
|
||||||
|
|
||||||
|
EndActivityObjectOutputAtom: Called at end of Atom XML output generation for ActivityObject chunks, just inside the </activity:object>
|
||||||
|
- $obj: ActivityObject
|
||||||
|
- $out: XMLOutputter to append custom output
|
||||||
|
|
||||||
|
StartActivityObjectOutputJson: Called at start of JSON output generation for ActivityObject chunks: the array has not yet been filled out. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so)
|
||||||
|
- $obj ActivityObject
|
||||||
|
- &$out: array to be serialized; you're free to modify it
|
||||||
|
|
||||||
|
EndActivityObjectOutputJson: Called at end of JSON output generation for ActivityObject chunks: the array has not yet been filled out.
|
||||||
|
- $obj ActivityObject
|
||||||
|
- &$out: array to be serialized; you're free to modify it
|
||||||
|
|
||||||
|
StartNoticeWhoGets: Called at start of inbox delivery prep; plugins can schedule notices to go to particular profiles that would otherwise not have reached them. Canceling will take over the entire addressing operation. Be aware that output can be cached or used several times, so should remain idempotent.
|
||||||
|
- $notice Notice
|
||||||
|
- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc
|
||||||
|
|
||||||
|
EndNoticeWhoGets: Called at end of inbox delivery prep; plugins can filter out profiles from receiving inbox delivery here. Be aware that output can be cached or used several times, so should remain idempotent.
|
||||||
|
- $notice Notice
|
||||||
|
- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc
|
||||||
|
@ -127,12 +127,6 @@ class AllAction extends ProfileAction
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PersonalGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function showEmptyListMessage()
|
function showEmptyListMessage()
|
||||||
{
|
{
|
||||||
// TRANS: Empty list message. %s is a user nickname.
|
// TRANS: Empty list message. %s is a user nickname.
|
||||||
|
@ -100,7 +100,7 @@ class ApiGroupListAction extends ApiBareAuthAction
|
|||||||
);
|
);
|
||||||
|
|
||||||
$subtitle = sprintf(
|
$subtitle = sprintf(
|
||||||
// TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name.
|
// TRANS: Used as subtitle in check for group membership. %1$s is the site name, %2$s is a user name.
|
||||||
_('%1$s groups %2$s is a member of.'),
|
_('%1$s groups %2$s is a member of.'),
|
||||||
$sitename,
|
$sitename,
|
||||||
$this->user->nickname
|
$this->user->nickname
|
||||||
|
@ -42,10 +42,8 @@ require_once INSTALLDIR . '/lib/apiauth.php';
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class ApiGroupProfileUpdateAction extends ApiAuthAction
|
class ApiGroupProfileUpdateAction extends ApiAuthAction
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Take arguments for running
|
* Take arguments for running
|
||||||
*
|
*
|
||||||
@ -54,7 +52,6 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
* @return boolean success flag
|
* @return boolean success flag
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
@ -82,7 +79,6 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
@ -97,6 +93,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
|
|
||||||
if (!in_array($this->format, array('xml', 'json'))) {
|
if (!in_array($this->format, array('xml', 'json'))) {
|
||||||
$this->clientError(
|
$this->clientError(
|
||||||
|
// TRANS: Client error displayed when using an unsupported API format.
|
||||||
_('API method not found.'),
|
_('API method not found.'),
|
||||||
404,
|
404,
|
||||||
$this->format
|
$this->format
|
||||||
@ -105,16 +102,19 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
|
// TRANS: Client error displayed when not providing a user or an invalid user.
|
||||||
$this->clientError(_('No such user.'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->group)) {
|
if (empty($this->group)) {
|
||||||
|
// TRANS: Client error displayed when not providing a group or an invalid group.
|
||||||
$this->clientError(_('Group not found.'), 404, $this->format);
|
$this->clientError(_('Group not found.'), 404, $this->format);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->user->isAdmin($this->group)) {
|
if (!$this->user->isAdmin($this->group)) {
|
||||||
|
// TRANS: Client error displayed when trying to edit a group without being an admin.
|
||||||
$this->clientError(_('You must be an admin to edit the group.'), 403);
|
$this->clientError(_('You must be an admin to edit the group.'), 403);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -168,13 +168,13 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($this->group, 'UPDATE', __FILE__);
|
common_log_db_error($this->group, 'UPDATE', __FILE__);
|
||||||
|
// TRANS: Server error displayed when group update fails.
|
||||||
$this->serverError(_('Could not update group.'));
|
$this->serverError(_('Could not update group.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$aliases = array();
|
$aliases = array();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (!empty($this->aliasstring)) {
|
if (!empty($this->aliasstring)) {
|
||||||
$aliases = $this->validateAliases();
|
$aliases = $this->validateAliases();
|
||||||
}
|
}
|
||||||
@ -191,6 +191,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
$result = $this->group->setAliases($aliases);
|
$result = $this->group->setAliases($aliases);
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
|
// TRANS: Server error displayed when adding group aliases fails.
|
||||||
$this->serverError(_('Could not create aliases.'));
|
$this->serverError(_('Could not create aliases.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,6 +211,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
$this->showSingleJsonGroup($this->group);
|
$this->showSingleJsonGroup($this->group);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
// TRANS: Client error displayed when using an unsupported API format.
|
||||||
$this->clientError(_('API method not found.'), 404, $this->format);
|
$this->clientError(_('API method not found.'), 404, $this->format);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -245,17 +247,17 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
_(
|
// TRANS: API validation exception thrown when nickname does not validate.
|
||||||
'Nickname must have only lowercase letters ' .
|
_('Nickname must have only lowercase letters and numbers and no spaces.')
|
||||||
'and numbers and no spaces.'
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
} else if ($this->nicknameExists($this->nickname)) {
|
} else if ($this->nicknameExists($this->nickname)) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
|
// TRANS: API validation exception thrown when nickname is already used.
|
||||||
_('Nickname already in use. Try another one.')
|
_('Nickname already in use. Try another one.')
|
||||||
);
|
);
|
||||||
} else if (!User_group::allowedNickname($this->nickname)) {
|
} else if (!User_group::allowedNickname($this->nickname)) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
|
// TRANS: API validation exception thrown when nickname does not validate.
|
||||||
_('Not a valid nickname.')
|
_('Not a valid nickname.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -274,6 +276,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
|
// TRANS: API validation exception thrown when homepage URL does not validate.
|
||||||
_('Homepage is not a valid URL.')
|
_('Homepage is not a valid URL.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -283,7 +286,8 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
{
|
{
|
||||||
if (!is_null($this->fullname) && mb_strlen($this->fullname) > 255) {
|
if (!is_null($this->fullname) && mb_strlen($this->fullname) > 255) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
_('Full name is too long (max 255 chars).')
|
// TRANS: API validation exception thrown when full name does not validate.
|
||||||
|
_('Full name is too long (maximum 255 characters).')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -291,12 +295,12 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
function validateDescription()
|
function validateDescription()
|
||||||
{
|
{
|
||||||
if (User_group::descriptionTooLong($this->description)) {
|
if (User_group::descriptionTooLong($this->description)) {
|
||||||
throw new ApiValidationException(
|
// TRANS: API validation exception thrown when description does not validate.
|
||||||
sprintf(
|
// TRANS: %d is the maximum description length and used for plural.
|
||||||
_('description is too long (max %d chars).'),
|
throw new ApiValidationException(sprintf(_m('Description is too long (maximum %d character).',
|
||||||
User_group::maxDescription()
|
'Description is too long (maximum %d characters).',
|
||||||
)
|
User_group::maxDescription()),
|
||||||
);
|
User_group::maxDescription()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +308,8 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
{
|
{
|
||||||
if (!is_null($this->location) && mb_strlen($this->location) > 255) {
|
if (!is_null($this->location) && mb_strlen($this->location) > 255) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
_('Location is too long (max 255 chars).')
|
// TRANS: API validation exception thrown when location does not validate.
|
||||||
|
_('Location is too long (maximum 255 characters).')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -321,12 +326,12 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (count($aliases) > common_config('group', 'maxaliases')) {
|
if (count($aliases) > common_config('group', 'maxaliases')) {
|
||||||
throw new ApiValidationException(
|
// TRANS: API validation exception thrown when aliases do not validate.
|
||||||
sprintf(
|
// TRANS: %d is the maximum number of aliases and used for plural.
|
||||||
_('Too many aliases! Maximum %d.'),
|
throw new ApiValidationException(sprintf(_m('Too many aliases! Maximum %d allowed.',
|
||||||
common_config('group', 'maxaliases')
|
'Too many aliases! Maximum %d allowed.',
|
||||||
)
|
common_config('group', 'maxaliases')),
|
||||||
);
|
common_config('group', 'maxaliases')));
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($aliases as $alias) {
|
foreach ($aliases as $alias) {
|
||||||
@ -339,7 +344,9 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
) {
|
) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
sprintf(
|
sprintf(
|
||||||
_('Invalid alias: "%s"'),
|
// TRANS: API validation exception thrown when aliases does not validate.
|
||||||
|
// TRANS: %s is the invalid alias.
|
||||||
|
_('Invalid alias: "%s".'),
|
||||||
$alias
|
$alias
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -348,6 +355,8 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
if ($this->nicknameExists($alias)) {
|
if ($this->nicknameExists($alias)) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
sprintf(
|
sprintf(
|
||||||
|
// TRANS: API validation exception thrown when aliases is already used.
|
||||||
|
// TRANS: %s is the already used alias.
|
||||||
_('Alias "%s" already in use. Try another one.'),
|
_('Alias "%s" already in use. Try another one.'),
|
||||||
$alias)
|
$alias)
|
||||||
);
|
);
|
||||||
@ -356,12 +365,12 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction
|
|||||||
// XXX assumes alphanum nicknames
|
// XXX assumes alphanum nicknames
|
||||||
if (strcmp($alias, $this->nickname) == 0) {
|
if (strcmp($alias, $this->nickname) == 0) {
|
||||||
throw new ApiValidationException(
|
throw new ApiValidationException(
|
||||||
_('Alias can\'t be the same as nickname.')
|
// TRANS: API validation exception thrown when alias is the same as nickname.
|
||||||
|
_('Alias cannot be the same as nickname.')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $aliases;
|
return $aliases;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -95,6 +95,9 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction
|
|||||||
// TRANS: Title for Atom feed "repeated to me". %s is the user nickname.
|
// TRANS: Title for Atom feed "repeated to me". %s is the user nickname.
|
||||||
$title = sprintf(_("Repeated to %s"), $this->auth_user->nickname);
|
$title = sprintf(_("Repeated to %s"), $this->auth_user->nickname);
|
||||||
$subtitle = sprintf(
|
$subtitle = sprintf(
|
||||||
|
// @todo FIXME: $profile is not defined.
|
||||||
|
// TRANS: Subtitle for API action that shows most recent notices that are repeats in user's inbox.
|
||||||
|
// TRANS: %1$s is the sitename, %2$s is a user nickname, %3$s is a user profile name.
|
||||||
_('%1$s notices that were to repeated to %2$s / %3$s.'),
|
_('%1$s notices that were to repeated to %2$s / %3$s.'),
|
||||||
$sitename, $this->user->nickname, $profile->getBestName()
|
$sitename, $this->user->nickname, $profile->getBestName()
|
||||||
);
|
);
|
||||||
|
@ -322,8 +322,11 @@ class ApiTimelineUserAction extends ApiBareAuthAction
|
|||||||
$this->clientError(_('Atom post must not be empty.'));
|
$this->clientError(_('Atom post must not be empty.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$dom = DOMDocument::loadXML($xml);
|
$old = error_reporting(error_reporting() & ~(E_WARNING | E_NOTICE));
|
||||||
if (!$dom) {
|
$dom = new DOMDocument();
|
||||||
|
$ok = $dom->loadXML($xml);
|
||||||
|
error_reporting($old);
|
||||||
|
if (!$ok) {
|
||||||
// TRANS: Client error displayed attempting to post an API that is not well-formed XML.
|
// TRANS: Client error displayed attempting to post an API that is not well-formed XML.
|
||||||
$this->clientError(_('Atom post must be well-formed XML.'));
|
$this->clientError(_('Atom post must be well-formed XML.'));
|
||||||
}
|
}
|
||||||
|
@ -256,7 +256,7 @@ class AtompubfavoritefeedAction extends ApiAuthAction
|
|||||||
if (empty($notice)) {
|
if (empty($notice)) {
|
||||||
// XXX: import from listed URL or something
|
// XXX: import from listed URL or something
|
||||||
// TRANS: Client exception thrown when trying favorite a notice without content.
|
// TRANS: Client exception thrown when trying favorite a notice without content.
|
||||||
throw new ClientException(_('Unknown note.'));
|
throw new ClientException(_('Unknown notice.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$old = Fave::pkeyGet(array('user_id' => $this->auth_user->id,
|
$old = Fave::pkeyGet(array('user_id' => $this->auth_user->id,
|
||||||
|
@ -122,7 +122,7 @@ class BlockedfromgroupAction extends GroupDesignAction
|
|||||||
_('A list of the users blocked from joining this group.'));
|
_('A list of the users blocked from joining this group.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new GroupNav($this, $this->group);
|
$nav = new GroupNav($this, $this->group);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
|
@ -118,7 +118,8 @@ class ConfirmaddressAction extends Action
|
|||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($cur, 'UPDATE', __FILE__);
|
common_log_db_error($cur, 'UPDATE', __FILE__);
|
||||||
$this->serverError(_('Couldn\'t update user.'));
|
// TRANS: Server error displayed when confirming an e-mail address or IM address fails.
|
||||||
|
$this->serverError(_('Could not update user.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,6 +134,7 @@ class ConfirmaddressAction extends Action
|
|||||||
$user_im_prefs->user_id = $cur->id;
|
$user_im_prefs->user_id = $cur->id;
|
||||||
if ($user_im_prefs->find() && $user_im_prefs->fetch()) {
|
if ($user_im_prefs->find() && $user_im_prefs->fetch()) {
|
||||||
if($user_im_prefs->screenname == $confirm->address){
|
if($user_im_prefs->screenname == $confirm->address){
|
||||||
|
// TRANS: Client error for an already confirmed IM address.
|
||||||
$this->clientError(_('That address has already been confirmed.'));
|
$this->clientError(_('That address has already been confirmed.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -141,7 +143,8 @@ class ConfirmaddressAction extends Action
|
|||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($user_im_prefs, 'UPDATE', __FILE__);
|
common_log_db_error($user_im_prefs, 'UPDATE', __FILE__);
|
||||||
$this->serverError(_('Couldn\'t update user im preferences.'));
|
// TRANS: Server error displayed when updating IM preferences fails.
|
||||||
|
$this->serverError(_('Could not update user IM preferences.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
@ -153,7 +156,8 @@ class ConfirmaddressAction extends Action
|
|||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($user_im_prefs, 'INSERT', __FILE__);
|
common_log_db_error($user_im_prefs, 'INSERT', __FILE__);
|
||||||
$this->serverError(_('Couldn\'t insert user im preferences.'));
|
// TRANS: Server error displayed when adding IM preferences fails.
|
||||||
|
$this->serverError(_('Could not insert user IM preferences.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
106
actions/conversationreplies.php
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Display a conversation in the browser
|
||||||
|
*
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Evan Prodromou <evan@status.net>
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*
|
||||||
|
* StatusNet - the distributed open-source microblogging tool
|
||||||
|
* Copyright (C) 2009, StatusNet, Inc.
|
||||||
|
*
|
||||||
|
* This program 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.
|
||||||
|
*
|
||||||
|
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('STATUSNET') && !defined('LACONICA')) {
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXX: not sure how to do paging yet,
|
||||||
|
// so set a 60-notice limit
|
||||||
|
|
||||||
|
require_once INSTALLDIR.'/lib/noticelist.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conversation tree in the browser
|
||||||
|
*
|
||||||
|
* @category Action
|
||||||
|
* @package StatusNet
|
||||||
|
* @author Evan Prodromou <evan@status.net>
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
|
* @link http://status.net/
|
||||||
|
*/
|
||||||
|
class ConversationRepliesAction extends ConversationAction
|
||||||
|
{
|
||||||
|
function handle($args)
|
||||||
|
{
|
||||||
|
if ($this->boolean('ajax')) {
|
||||||
|
$this->showAjax();
|
||||||
|
} else {
|
||||||
|
parent::handle($args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show content.
|
||||||
|
*
|
||||||
|
* Display a hierarchical unordered list in the content area.
|
||||||
|
* Uses ConversationTree to do most of the heavy lifting.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function showContent()
|
||||||
|
{
|
||||||
|
$notices = Notice::conversationStream($this->id, null, null);
|
||||||
|
|
||||||
|
$ct = new FullThreadedNoticeList($notices, $this);
|
||||||
|
|
||||||
|
$cnt = $ct->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAjax()
|
||||||
|
{
|
||||||
|
header('Content-Type: text/xml;charset=utf-8');
|
||||||
|
$this->xw->startDocument('1.0', 'UTF-8');
|
||||||
|
$this->elementStart('html');
|
||||||
|
$this->elementStart('head');
|
||||||
|
// TRANS: Title for conversation page.
|
||||||
|
$this->element('title', null, _m('TITLE','Notice'));
|
||||||
|
$this->elementEnd('head');
|
||||||
|
$this->elementStart('body');
|
||||||
|
$this->showContent();
|
||||||
|
$this->elementEnd('body');
|
||||||
|
$this->elementEnd('html');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class FullThreadedNoticeList extends ThreadedNoticeList
|
||||||
|
{
|
||||||
|
function newListItem($notice)
|
||||||
|
{
|
||||||
|
return new FullThreadedNoticeListItem($notice, $this->out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class FullThreadedNoticeListItem extends ThreadedNoticeListItem
|
||||||
|
{
|
||||||
|
function initialItems()
|
||||||
|
{
|
||||||
|
return 1000; // @fixme
|
||||||
|
}
|
||||||
|
}
|
@ -139,7 +139,7 @@ class EditgroupAction extends GroupDesignAction
|
|||||||
$this->showPage();
|
$this->showPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new GroupNav($this, $this->group);
|
$nav = new GroupNav($this, $this->group);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
|
@ -163,19 +163,6 @@ class FavoritedAction extends Action
|
|||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Local navigation
|
|
||||||
*
|
|
||||||
* This page is part of the public group, so show that.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PublicGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Content area
|
* Content area
|
||||||
*
|
*
|
||||||
|
@ -90,12 +90,6 @@ class FeaturedAction extends Action
|
|||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PublicGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function getInstructions()
|
function getInstructions()
|
||||||
{
|
{
|
||||||
// TRANS: Description on page displaying featured users.
|
// TRANS: Description on page displaying featured users.
|
||||||
|
@ -163,12 +163,22 @@ class GroupDesignSettingsAction extends DesignSettingsAction
|
|||||||
*
|
*
|
||||||
* @return nothing
|
* @return nothing
|
||||||
*/
|
*/
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new GroupNav($this, $this->group);
|
$nav = new GroupNav($this, $this->group);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Override to show default nav stuff
|
||||||
|
*
|
||||||
|
* @return nothing
|
||||||
|
*/
|
||||||
|
function showLocalNav()
|
||||||
|
{
|
||||||
|
Action::showLocalNav();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the design we want to edit
|
* Get the design we want to edit
|
||||||
*
|
*
|
||||||
|
@ -458,7 +458,7 @@ class GrouplogoAction extends GroupDesignAction
|
|||||||
$this->autofocus('avatarfile');
|
$this->autofocus('avatarfile');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new GroupNav($this, $this->group);
|
$nav = new GroupNav($this, $this->group);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
|
@ -125,7 +125,7 @@ class GroupmembersAction extends GroupDesignAction
|
|||||||
_('A list of the users in this group.'));
|
_('A list of the users in this group.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new GroupNav($this, $this->group);
|
$nav = new GroupNav($this, $this->group);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
|
@ -80,12 +80,6 @@ class GroupsAction extends Action
|
|||||||
$this->showPage();
|
$this->showPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PublicGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function showPageNotice()
|
function showPageNotice()
|
||||||
{
|
{
|
||||||
$notice =
|
$notice =
|
||||||
|
@ -111,8 +111,8 @@ class ImsettingsAction extends SettingsAction
|
|||||||
if ($user_im_prefs = User_im_prefs::pkeyGet( array('transport' => $transport, 'user_id' => $user->id) )) {
|
if ($user_im_prefs = User_im_prefs::pkeyGet( array('transport' => $transport, 'user_id' => $user->id) )) {
|
||||||
$user_im_prefs_by_transport[$transport] = $user_im_prefs;
|
$user_im_prefs_by_transport[$transport] = $user_im_prefs;
|
||||||
$this->element('p', 'form_confirmed', $user_im_prefs->screenname);
|
$this->element('p', 'form_confirmed', $user_im_prefs->screenname);
|
||||||
// TRANS: Form note in IM settings form.
|
|
||||||
$this->element('p', 'form_note',
|
$this->element('p', 'form_note',
|
||||||
|
// TRANS: Form note in IM settings form. %s is the type of IM address that was confirmed.
|
||||||
sprintf(_('Current confirmed %s address.'),$transport_info['display']));
|
sprintf(_('Current confirmed %s address.'),$transport_info['display']));
|
||||||
$this->hidden('screenname', $user_im_prefs->screenname);
|
$this->hidden('screenname', $user_im_prefs->screenname);
|
||||||
// TRANS: Button label to remove a confirmed IM address.
|
// TRANS: Button label to remove a confirmed IM address.
|
||||||
@ -124,11 +124,11 @@ class ImsettingsAction extends SettingsAction
|
|||||||
// TRANS: Form note in IM settings form.
|
// TRANS: Form note in IM settings form.
|
||||||
$this->element('p', 'form_note',
|
$this->element('p', 'form_note',
|
||||||
// TRANS: Form note in IM settings form.
|
// TRANS: Form note in IM settings form.
|
||||||
// TRANS: %s is the IM address set for the site.
|
// TRANS: %s is the IM service name, %2$s is the IM address set.
|
||||||
sprintf(_('Awaiting confirmation on this address. '.
|
sprintf(_('Awaiting confirmation on this address. '.
|
||||||
'Check your %s account for a '.
|
'Check your %1$s account for a '.
|
||||||
'message with further instructions. '.
|
'message with further instructions. '.
|
||||||
'(Did you add %s to your buddy list?)'),
|
'(Did you add %2$s to your buddy list?)'),
|
||||||
$transport_info['display'],
|
$transport_info['display'],
|
||||||
$transport_info['daemonScreenname']));
|
$transport_info['daemonScreenname']));
|
||||||
$this->hidden('screenname', $confirm->address);
|
$this->hidden('screenname', $confirm->address);
|
||||||
@ -137,8 +137,10 @@ class ImsettingsAction extends SettingsAction
|
|||||||
} else {
|
} else {
|
||||||
$this->elementStart('ul', 'form_data');
|
$this->elementStart('ul', 'form_data');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label for IM address.
|
||||||
$this->input('screenname', _('IM address'),
|
$this->input('screenname', _('IM address'),
|
||||||
($this->arg('screenname')) ? $this->arg('screenname') : null,
|
($this->arg('screenname')) ? $this->arg('screenname') : null,
|
||||||
|
// TRANS: Field title for IM address. %s is the IM service name.
|
||||||
sprintf(_('%s screenname.'),
|
sprintf(_('%s screenname.'),
|
||||||
$transport_info['display']));
|
$transport_info['display']));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
@ -288,7 +290,7 @@ class ImsettingsAction extends SettingsAction
|
|||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||||
// TRANS: Server error thrown on database error updating IM preferences.
|
// TRANS: Server error thrown on database error updating IM preferences.
|
||||||
$this->serverError(_('Couldn\'t update IM preferences.'));
|
$this->serverError(_('Could not update IM preferences.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}while($user_im_prefs->fetch());
|
}while($user_im_prefs->fetch());
|
||||||
@ -322,6 +324,7 @@ class ImsettingsAction extends SettingsAction
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$transport) {
|
if (!$transport) {
|
||||||
|
// TRANS: Form validation error when no transport is available setting an IM address.
|
||||||
$this->showForm(_('No transport.'));
|
$this->showForm(_('No transport.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -330,14 +333,14 @@ class ImsettingsAction extends SettingsAction
|
|||||||
|
|
||||||
if (!$screenname) {
|
if (!$screenname) {
|
||||||
// TRANS: Message given saving IM address that cannot be normalised.
|
// TRANS: Message given saving IM address that cannot be normalised.
|
||||||
$this->showForm(_('Cannot normalize that screenname'));
|
$this->showForm(_('Cannot normalize that screenname.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$valid = false;
|
$valid = false;
|
||||||
Event::handle('ValidateImScreenname', array($transport, $screenname, &$valid));
|
Event::handle('ValidateImScreenname', array($transport, $screenname, &$valid));
|
||||||
if (!$valid) {
|
if (!$valid) {
|
||||||
// TRANS: Message given saving IM address that not valid.
|
// TRANS: Message given saving IM address that not valid.
|
||||||
$this->showForm(_('Not a valid screenname'));
|
$this->showForm(_('Not a valid screenname.'));
|
||||||
return;
|
return;
|
||||||
} else if ($this->screennameExists($transport, $screenname)) {
|
} else if ($this->screennameExists($transport, $screenname)) {
|
||||||
// TRANS: Message given saving IM address that is already set for another user.
|
// TRANS: Message given saving IM address that is already set for another user.
|
||||||
@ -402,7 +405,7 @@ class ImsettingsAction extends SettingsAction
|
|||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($confirm, 'DELETE', __FILE__);
|
common_log_db_error($confirm, 'DELETE', __FILE__);
|
||||||
// TRANS: Server error thrown on database error canceling IM address confirmation.
|
// TRANS: Server error thrown on database error canceling IM address confirmation.
|
||||||
$this->serverError(_('Couldn\'t delete confirmation.'));
|
$this->serverError(_('Could not delete confirmation.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -440,8 +443,7 @@ class ImsettingsAction extends SettingsAction
|
|||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||||
// TRANS: Server error thrown on database error removing a registered IM address.
|
// TRANS: Server error thrown on database error removing a registered IM address.
|
||||||
$this->serverError(_('Couldn\'t update user im prefs.'));
|
$this->serverError(_('Could not update user IM preferences.'));
|
||||||
$this->serverError(_('Couldn\'t update user.'));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ class InviteAction extends CurrentUserDesignAction
|
|||||||
mail_send($recipients, $headers, $body);
|
mail_send($recipients, $headers, $body);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new SubGroupNav($this, common_current_user());
|
$nav = new SubGroupNav($this, common_current_user());
|
||||||
$nav->show();
|
$nav->show();
|
||||||
|
@ -297,4 +297,12 @@ class LoginAction extends Action
|
|||||||
$nav = new LoginGroupNav($this);
|
$nav = new LoginGroupNav($this);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showNoticeForm()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
function showProfileBlock()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
* @category Applications
|
* @category Applications
|
||||||
* @package StatusNet
|
* @package StatusNet
|
||||||
* @author Zach Copley <zach@status.net>
|
* @author Zach Copley <zach@status.net>
|
||||||
* @copyright 2008-2009 StatusNet, Inc.
|
* @copyright 2008-2011 StatusNet, Inc.
|
||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
@ -290,7 +290,14 @@ class NewApplicationAction extends OwnerDesignAction
|
|||||||
$app->query('ROLLBACK');
|
$app->query('ROLLBACK');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
$app->uploadLogo();
|
$app->uploadLogo();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$app->query('ROLLBACK');
|
||||||
|
// TRANS: Form validation error on New application page when providing an invalid image upload.
|
||||||
|
$this->showForm(_('Invalid image.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$app->query('COMMIT');
|
$app->query('COMMIT');
|
||||||
|
|
||||||
|
@ -138,11 +138,14 @@ class NoticesearchAction extends SearchAction
|
|||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (Event::handle('StartNoticeSearchShowResults', array($this, $q, $notice))) {
|
||||||
$terms = preg_split('/[\s,]+/', $q);
|
$terms = preg_split('/[\s,]+/', $q);
|
||||||
$nl = new SearchNoticeList($notice, $this, $terms);
|
$nl = new SearchNoticeList($notice, $this, $terms);
|
||||||
$cnt = $nl->show();
|
$cnt = $nl->show();
|
||||||
$this->pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
$this->pagination($page > 1, $cnt > NOTICES_PER_PAGE,
|
||||||
$page, 'noticesearch', array('q' => $q));
|
$page, 'noticesearch', array('q' => $q));
|
||||||
|
Event::handle('EndNoticeSearchShowResults', array($this, $q, $notice));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showScripts()
|
function showScripts()
|
||||||
|
@ -55,7 +55,8 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
return _('Change password');
|
// TRANS: Title for page where to change password.
|
||||||
|
return _m('TITLE','Change password');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,6 +67,7 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
|
|
||||||
function getInstructions()
|
function getInstructions()
|
||||||
{
|
{
|
||||||
|
// TRANS: Instructions for page where to change password.
|
||||||
return _('Change your password.');
|
return _('Change your password.');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,6 +95,7 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
'action' =>
|
'action' =>
|
||||||
common_local_url('passwordsettings')));
|
common_local_url('passwordsettings')));
|
||||||
$this->elementStart('fieldset');
|
$this->elementStart('fieldset');
|
||||||
|
// TRANS: Fieldset legend on page where to change password.
|
||||||
$this->element('legend', null, _('Password change'));
|
$this->element('legend', null, _('Password change'));
|
||||||
$this->hidden('token', common_session_token());
|
$this->hidden('token', common_session_token());
|
||||||
|
|
||||||
@ -101,20 +104,26 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
// Users who logged in with OpenID won't have a pwd
|
// Users who logged in with OpenID won't have a pwd
|
||||||
if ($user->password) {
|
if ($user->password) {
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on page where to change password.
|
||||||
$this->password('oldpassword', _('Old password'));
|
$this->password('oldpassword', _('Old password'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
}
|
}
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on page where to change password.
|
||||||
$this->password('newpassword', _('New password'),
|
$this->password('newpassword', _('New password'),
|
||||||
|
// TRANS: Field title on page where to change password.
|
||||||
_('6 or more characters.'));
|
_('6 or more characters.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$this->password('confirm', _('Confirm'),
|
// TRANS: Field label on page where to change password. In this field the new password should be typed a second time.
|
||||||
|
$this->password('confirm', _m('LABEL','Confirm'),
|
||||||
|
// TRANS: Field title on page where to change password.
|
||||||
_('Same as password above.'));
|
_('Same as password above.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementEnd('ul');
|
$this->elementEnd('ul');
|
||||||
|
|
||||||
$this->submit('changepass', _('Change'));
|
// TRANS: Button text on page where to change password.
|
||||||
|
$this->submit('changepass', _m('BUTTON','Change'));
|
||||||
|
|
||||||
$this->elementEnd('fieldset');
|
$this->elementEnd('fieldset');
|
||||||
$this->elementEnd('form');
|
$this->elementEnd('form');
|
||||||
@ -150,10 +159,12 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
# Some validation
|
# Some validation
|
||||||
|
|
||||||
if (strlen($newpassword) < 6) {
|
if (strlen($newpassword) < 6) {
|
||||||
|
// TRANS: Form validation error on page where to change password.
|
||||||
$this->showForm(_('Password must be 6 or more characters.'));
|
$this->showForm(_('Password must be 6 or more characters.'));
|
||||||
return;
|
return;
|
||||||
} else if (0 != strcmp($newpassword, $confirm)) {
|
} else if (0 != strcmp($newpassword, $confirm)) {
|
||||||
$this->showForm(_('Passwords don\'t match.'));
|
// TRANS: Form validation error on password change when password confirmation does not match.
|
||||||
|
$this->showForm(_('Passwords do not match.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,7 +172,8 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
$oldpassword = $this->arg('oldpassword');
|
$oldpassword = $this->arg('oldpassword');
|
||||||
|
|
||||||
if (!common_check_user($user->nickname, $oldpassword)) {
|
if (!common_check_user($user->nickname, $oldpassword)) {
|
||||||
$this->showForm(_('Incorrect old password'));
|
// TRANS: Form validation error on page where to change password.
|
||||||
|
$this->showForm(_('Incorrect old password.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
@ -177,17 +189,21 @@ class PasswordsettingsAction extends SettingsAction
|
|||||||
|
|
||||||
$val = $user->validate();
|
$val = $user->validate();
|
||||||
if ($val !== true) {
|
if ($val !== true) {
|
||||||
|
// TRANS: Form validation error on page where to change password.
|
||||||
$this->showForm(_('Error saving user; invalid.'));
|
$this->showForm(_('Error saving user; invalid.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$user->update($original)) {
|
if (!$user->update($original)) {
|
||||||
|
// TRANS: Server error displayed on page where to change password when password change
|
||||||
|
// TRANS: could not be made because of a server error.
|
||||||
$this->serverError(_('Cannot save new password.'));
|
$this->serverError(_('Cannot save new password.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Event::handle('EndChangePassword', array($user));
|
Event::handle('EndChangePassword', array($user));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TRANS: Form validation notice on page where to change password.
|
||||||
$this->showForm(_('Password saved.'), true);
|
$this->showForm(_('Password saved.'), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -152,7 +152,7 @@ class PathsadminpanelAction extends AdminPanelAction
|
|||||||
if (!empty($values['theme']['dir']) && !is_readable($values['theme']['dir'])) {
|
if (!empty($values['theme']['dir']) && !is_readable($values['theme']['dir'])) {
|
||||||
// TRANS: Client error in Paths admin panel.
|
// TRANS: Client error in Paths admin panel.
|
||||||
// TRANS: %s is the directory that could not be read from.
|
// TRANS: %s is the directory that could not be read from.
|
||||||
$this->clientError(sprintf(_("Theme directory not readable: %s."), $values['theme']['dir']));
|
$this->clientError(sprintf(_('Theme directory not readable: %s.'), $values['theme']['dir']));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate avatar dir
|
// Validate avatar dir
|
||||||
@ -160,7 +160,7 @@ class PathsadminpanelAction extends AdminPanelAction
|
|||||||
if (empty($values['avatar']['dir']) || !is_writable($values['avatar']['dir'])) {
|
if (empty($values['avatar']['dir']) || !is_writable($values['avatar']['dir'])) {
|
||||||
// TRANS: Client error in Paths admin panel.
|
// TRANS: Client error in Paths admin panel.
|
||||||
// TRANS: %s is the avatar directory that could not be written to.
|
// TRANS: %s is the avatar directory that could not be written to.
|
||||||
$this->clientError(sprintf(_("Avatar directory not writable: %s."), $values['avatar']['dir']));
|
$this->clientError(sprintf(_('Avatar directory not writable: %s.'), $values['avatar']['dir']));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate background dir
|
// Validate background dir
|
||||||
@ -168,7 +168,7 @@ class PathsadminpanelAction extends AdminPanelAction
|
|||||||
if (empty($values['background']['dir']) || !is_writable($values['background']['dir'])) {
|
if (empty($values['background']['dir']) || !is_writable($values['background']['dir'])) {
|
||||||
// TRANS: Client error in Paths admin panel.
|
// TRANS: Client error in Paths admin panel.
|
||||||
// TRANS: %s is the background directory that could not be written to.
|
// TRANS: %s is the background directory that could not be written to.
|
||||||
$this->clientError(sprintf(_("Background directory not writable: %s."), $values['background']['dir']));
|
$this->clientError(sprintf(_('Background directory not writable: %s.'), $values['background']['dir']));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate locales dir
|
// Validate locales dir
|
||||||
@ -178,7 +178,7 @@ class PathsadminpanelAction extends AdminPanelAction
|
|||||||
if (!empty($values['site']['locale_path']) && !is_readable($values['site']['locale_path'])) {
|
if (!empty($values['site']['locale_path']) && !is_readable($values['site']['locale_path'])) {
|
||||||
// TRANS: Client error in Paths admin panel.
|
// TRANS: Client error in Paths admin panel.
|
||||||
// TRANS: %s is the locales directory that could not be read from.
|
// TRANS: %s is the locales directory that could not be read from.
|
||||||
$this->clientError(sprintf(_("Locales directory not readable: %s."), $values['site']['locale_path']));
|
$this->clientError(sprintf(_('Locales directory not readable: %s.'), $values['site']['locale_path']));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate SSL setup
|
// Validate SSL setup
|
||||||
@ -239,6 +239,7 @@ class PathsAdminPanelForm extends AdminForm
|
|||||||
$this->input('server',
|
$this->input('server',
|
||||||
// TRANS: Field label in Paths admin panel.
|
// TRANS: Field label in Paths admin panel.
|
||||||
_('Server'),
|
_('Server'),
|
||||||
|
// TRANS: Field title in Paths admin panel.
|
||||||
_('Site\'s server hostname.'));
|
_('Site\'s server hostname.'));
|
||||||
$this->unli();
|
$this->unli();
|
||||||
|
|
||||||
@ -246,6 +247,7 @@ class PathsAdminPanelForm extends AdminForm
|
|||||||
$this->input('path',
|
$this->input('path',
|
||||||
// TRANS: Field label in Paths admin panel.
|
// TRANS: Field label in Paths admin panel.
|
||||||
_('Path'),
|
_('Path'),
|
||||||
|
// TRANS: Field title in Paths admin panel.
|
||||||
_('Site path.'));
|
_('Site path.'));
|
||||||
$this->unli();
|
$this->unli();
|
||||||
|
|
||||||
@ -253,6 +255,7 @@ class PathsAdminPanelForm extends AdminForm
|
|||||||
$this->input('locale_path',
|
$this->input('locale_path',
|
||||||
// TRANS: Field label in Paths admin panel.
|
// TRANS: Field label in Paths admin panel.
|
||||||
_('Locale directory'),
|
_('Locale directory'),
|
||||||
|
// TRANS: Field title in Paths admin panel.
|
||||||
_('Directory path to locales.'),
|
_('Directory path to locales.'),
|
||||||
'site');
|
'site');
|
||||||
$this->unli();
|
$this->unli();
|
||||||
@ -262,14 +265,16 @@ class PathsAdminPanelForm extends AdminForm
|
|||||||
// TRANS: Checkbox label in Paths admin panel.
|
// TRANS: Checkbox label in Paths admin panel.
|
||||||
_('Fancy URLs'),
|
_('Fancy URLs'),
|
||||||
(bool) $this->value('fancy'),
|
(bool) $this->value('fancy'),
|
||||||
_('Use fancy (more readable and memorable) URLs?'));
|
// TRANS: Field title in Paths admin panel.
|
||||||
|
_('Use fancy URLs (more readable and memorable)?'));
|
||||||
$this->unli();
|
$this->unli();
|
||||||
|
|
||||||
$this->out->elementEnd('ul');
|
$this->out->elementEnd('ul');
|
||||||
$this->out->elementEnd('fieldset');
|
$this->out->elementEnd('fieldset');
|
||||||
|
|
||||||
$this->out->elementStart('fieldset', array('id' => 'settings_paths_theme'));
|
$this->out->elementStart('fieldset', array('id' => 'settings_paths_theme'));
|
||||||
$this->out->element('legend', null, _('Theme'));
|
// TRANS: Fieldset legend in Paths admin panel.
|
||||||
|
$this->out->element('legend', null, _m('LEGEND','Theme'));
|
||||||
|
|
||||||
$this->out->elementStart('ul', 'form_data');
|
$this->out->elementStart('ul', 'form_data');
|
||||||
|
|
||||||
@ -469,7 +474,7 @@ class PathsAdminPanelForm extends AdminForm
|
|||||||
|
|
||||||
$this->out->elementStart('fieldset', array('id' => 'settings_admin_ssl'));
|
$this->out->elementStart('fieldset', array('id' => 'settings_admin_ssl'));
|
||||||
// TRANS: Fieldset legend in Paths admin panel.
|
// TRANS: Fieldset legend in Paths admin panel.
|
||||||
$this->out->element('legend', null, _('SSL'));
|
$this->out->element('legend', null, _m('LEGEND','SSL'));
|
||||||
$this->out->elementStart('ul', 'form_data');
|
$this->out->elementStart('ul', 'form_data');
|
||||||
$this->li();
|
$this->li();
|
||||||
|
|
||||||
@ -480,8 +485,8 @@ class PathsAdminPanelForm extends AdminForm
|
|||||||
// TRANS: Drop down option in Paths admin panel (option for "When to use SSL").
|
// TRANS: Drop down option in Paths admin panel (option for "When to use SSL").
|
||||||
'always' => _('Always'));
|
'always' => _('Always'));
|
||||||
|
|
||||||
// TRANS: Drop down label in Paths admin panel.
|
|
||||||
$this->out->dropdown('site-ssl',
|
$this->out->dropdown('site-ssl',
|
||||||
|
// TRANS: Drop down label in Paths admin panel.
|
||||||
_('Use SSL'),
|
_('Use SSL'),
|
||||||
// TRANS: Tooltip for field label in Paths admin panel.
|
// TRANS: Tooltip for field label in Paths admin panel.
|
||||||
$ssl, _('When to use SSL.'),
|
$ssl, _('When to use SSL.'),
|
||||||
|
@ -52,7 +52,6 @@ if (!defined('STATUSNET')) {
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class PluginDisableAction extends PluginEnableAction
|
class PluginDisableAction extends PluginEnableAction
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -74,5 +73,3 @@ class PluginDisableAction extends PluginEnableAction
|
|||||||
return new EnablePluginForm($this, $this->plugin);
|
return new EnablePluginForm($this, $this->plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ if (!defined('STATUSNET')) {
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class PluginEnableAction extends Action
|
class PluginEnableAction extends Action
|
||||||
{
|
{
|
||||||
var $user;
|
var $user;
|
||||||
@ -65,7 +64,6 @@ class PluginEnableAction extends Action
|
|||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return boolean success flag
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
@ -75,6 +73,8 @@ class PluginEnableAction extends Action
|
|||||||
// Only allow POST requests
|
// Only allow POST requests
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
||||||
|
// TRANS: Client error displayed when trying to use another method than POST.
|
||||||
|
// TRANS: Do not translate POST.
|
||||||
$this->clientError(_('This action only accepts POST requests.'));
|
$this->clientError(_('This action only accepts POST requests.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -94,11 +94,13 @@ class PluginEnableAction extends Action
|
|||||||
$this->user = common_current_user();
|
$this->user = common_current_user();
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
|
// TRANS: Client error displayed when trying to enable or disable a plugin while not logged in.
|
||||||
$this->clientError(_('Not logged in.'));
|
$this->clientError(_('Not logged in.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!AdminPanelAction::canAdmin('plugins')) {
|
if (!AdminPanelAction::canAdmin('plugins')) {
|
||||||
|
// TRANS: Client error displayed when trying to enable or disable a plugin without access rights.
|
||||||
$this->clientError(_('You cannot administer plugins.'));
|
$this->clientError(_('You cannot administer plugins.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -106,6 +108,7 @@ class PluginEnableAction extends Action
|
|||||||
$this->plugin = $this->arg('plugin');
|
$this->plugin = $this->arg('plugin');
|
||||||
$defaultPlugins = common_config('plugins', 'default');
|
$defaultPlugins = common_config('plugins', 'default');
|
||||||
if (!array_key_exists($this->plugin, $defaultPlugins)) {
|
if (!array_key_exists($this->plugin, $defaultPlugins)) {
|
||||||
|
// TRANS: Client error displayed when trying to enable or disable a non-existing plugin.
|
||||||
$this->clientError(_('No such plugin.'));
|
$this->clientError(_('No such plugin.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -122,7 +125,6 @@ class PluginEnableAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
$key = 'disable-' . $this->plugin;
|
$key = 'disable-' . $this->plugin;
|
||||||
|
@ -40,20 +40,17 @@ if (!defined('STATUSNET')) {
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class PluginsadminpanelAction extends AdminPanelAction
|
class PluginsadminpanelAction extends AdminPanelAction
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the page title
|
* Returns the page title
|
||||||
*
|
*
|
||||||
* @return string page title
|
* @return string page title
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
// TRANS: Tab and title for plugins admin panel.
|
// TRANS: Tab and title for plugins admin panel.
|
||||||
return _('Plugins');
|
return _m('TITLE','Plugins');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,7 +58,6 @@ class PluginsadminpanelAction extends AdminPanelAction
|
|||||||
*
|
*
|
||||||
* @return string instructions
|
* @return string instructions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function getInstructions()
|
function getInstructions()
|
||||||
{
|
{
|
||||||
// TRANS: Instructions at top of plugin admin page.
|
// TRANS: Instructions at top of plugin admin page.
|
||||||
@ -75,7 +71,6 @@ class PluginsadminpanelAction extends AdminPanelAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showForm()
|
function showForm()
|
||||||
{
|
{
|
||||||
$this->elementStart('fieldset', array('id' => 'settings_plugins_default'));
|
$this->elementStart('fieldset', array('id' => 'settings_plugins_default'));
|
||||||
@ -103,6 +98,7 @@ class PluginsadminpanelAction extends AdminPanelAction
|
|||||||
$list->show();
|
$list->show();
|
||||||
} else {
|
} else {
|
||||||
$this->element('p', null,
|
$this->element('p', null,
|
||||||
|
// TRANS: Text displayed on plugin admin page when no plugin are enabled.
|
||||||
_('All default plugins have been disabled from the ' .
|
_('All default plugins have been disabled from the ' .
|
||||||
'site\'s configuration file.'));
|
'site\'s configuration file.'));
|
||||||
}
|
}
|
||||||
|
@ -92,16 +92,18 @@ class PostnoticeAction extends Action
|
|||||||
{
|
{
|
||||||
$content = common_shorten_links($_POST['omb_notice_content']);
|
$content = common_shorten_links($_POST['omb_notice_content']);
|
||||||
if (Notice::contentTooLong($content)) {
|
if (Notice::contentTooLong($content)) {
|
||||||
|
// TRANS: Client error displayed if the notice posted has too many characters.
|
||||||
$this->clientError(_('Invalid notice content.'), 400);
|
$this->clientError(_('Invalid notice content.'), 400);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$license = $_POST['omb_notice_license'];
|
$license = $_POST['omb_notice_license'];
|
||||||
$site_license = common_config('license', 'url');
|
$site_license = common_config('license', 'url');
|
||||||
if ($license && !common_compatible_license($license, $site_license)) {
|
if ($license && !common_compatible_license($license, $site_license)) {
|
||||||
throw new Exception(sprintf(_('Notice license ‘%1$s’ is not ' .
|
// TRANS: Exception thrown if a notice's license is not compatible with the StatusNet site license.
|
||||||
'compatible with site license ‘%2$s’.'),
|
// TRANS: %1$s is the notice license, %2$s is the StatusNet site's license.
|
||||||
|
throw new Exception(sprintf(_('Notice license "%1$s" is not ' .
|
||||||
|
'compatible with site license "%2$s".'),
|
||||||
$license, $site_license));
|
$license, $site_license));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
@ -51,7 +51,6 @@ define('MAX_PUBLIC_PAGE', 100);
|
|||||||
* @see PublicrssAction
|
* @see PublicrssAction
|
||||||
* @see PublicxrdsAction
|
* @see PublicxrdsAction
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class PublicAction extends Action
|
class PublicAction extends Action
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -73,14 +72,15 @@ class PublicAction extends Action
|
|||||||
*
|
*
|
||||||
* @return boolean success value
|
* @return boolean success value
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
$this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
$this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
|
||||||
|
|
||||||
if ($this->page > MAX_PUBLIC_PAGE) {
|
if ($this->page > MAX_PUBLIC_PAGE) {
|
||||||
$this->clientError(sprintf(_("Beyond the page limit (%s)."), MAX_PUBLIC_PAGE));
|
// TRANS: Client error displayed when requesting a public timeline page beyond the page limit.
|
||||||
|
// TRANS: %s is the page limit.
|
||||||
|
$this->clientError(sprintf(_('Beyond the page limit (%s).'), MAX_PUBLIC_PAGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
common_set_returnto($this->selfUrl());
|
common_set_returnto($this->selfUrl());
|
||||||
@ -89,12 +89,13 @@ class PublicAction extends Action
|
|||||||
NOTICES_PER_PAGE + 1);
|
NOTICES_PER_PAGE + 1);
|
||||||
|
|
||||||
if (!$this->notice) {
|
if (!$this->notice) {
|
||||||
|
// TRANS: Server error displayed when a public timeline cannot be retrieved.
|
||||||
$this->serverError(_('Could not retrieve public stream.'));
|
$this->serverError(_('Could not retrieve public stream.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->page > 1 && $this->notice->N == 0){
|
if($this->page > 1 && $this->notice->N == 0){
|
||||||
// TRANS: Server error when page not found (404)
|
// TRANS: Server error when page not found (404).
|
||||||
$this->serverError(_('No such page.'),$code=404);
|
$this->serverError(_('No such page.'),$code=404);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,7 +111,6 @@ class PublicAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
@ -123,12 +123,14 @@ class PublicAction extends Action
|
|||||||
*
|
*
|
||||||
* @return page title, including page number if over 1
|
* @return page title, including page number if over 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
if ($this->page > 1) {
|
if ($this->page > 1) {
|
||||||
|
// TRANS: Title for all public timeline pages but the first.
|
||||||
|
// TRANS: %d is the page number.
|
||||||
return sprintf(_('Public timeline, page %d'), $this->page);
|
return sprintf(_('Public timeline, page %d'), $this->page);
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Title for the first public timeline page.
|
||||||
return _('Public timeline');
|
return _('Public timeline');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -153,45 +155,35 @@ class PublicAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function getFeeds()
|
function getFeeds()
|
||||||
{
|
{
|
||||||
return array(new Feed(Feed::RSS1, common_local_url('publicrss'),
|
return array(new Feed(Feed::RSS1, common_local_url('publicrss'),
|
||||||
|
// TRANS: Link description for public timeline feed.
|
||||||
_('Public Stream Feed (RSS 1.0)')),
|
_('Public Stream Feed (RSS 1.0)')),
|
||||||
new Feed(Feed::RSS2,
|
new Feed(Feed::RSS2,
|
||||||
common_local_url('ApiTimelinePublic',
|
common_local_url('ApiTimelinePublic',
|
||||||
array('format' => 'rss')),
|
array('format' => 'rss')),
|
||||||
|
// TRANS: Link description for public timeline feed.
|
||||||
_('Public Stream Feed (RSS 2.0)')),
|
_('Public Stream Feed (RSS 2.0)')),
|
||||||
new Feed(Feed::ATOM,
|
new Feed(Feed::ATOM,
|
||||||
common_local_url('ApiTimelinePublic',
|
common_local_url('ApiTimelinePublic',
|
||||||
array('format' => 'atom')),
|
array('format' => 'atom')),
|
||||||
|
// TRANS: Link description for public timeline feed.
|
||||||
_('Public Stream Feed (Atom)')));
|
_('Public Stream Feed (Atom)')));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show tabset for this page
|
|
||||||
*
|
|
||||||
* Uses the PublicGroupNav widget
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
* @see PublicGroupNav
|
|
||||||
*/
|
|
||||||
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PublicGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function showEmptyList()
|
function showEmptyList()
|
||||||
{
|
{
|
||||||
|
// TRANS: Text displayed for public feed when there are no public notices.
|
||||||
$message = _('This is the public timeline for %%site.name%% but no one has posted anything yet.') . ' ';
|
$message = _('This is the public timeline for %%site.name%% but no one has posted anything yet.') . ' ';
|
||||||
|
|
||||||
if (common_logged_in()) {
|
if (common_logged_in()) {
|
||||||
|
// TRANS: Additional text displayed for public feed when there are no public notices for a logged in user.
|
||||||
$message .= _('Be the first to post!');
|
$message .= _('Be the first to post!');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (! (common_config('site','closed') || common_config('site','inviteonly'))) {
|
if (! (common_config('site','closed') || common_config('site','inviteonly'))) {
|
||||||
|
// TRANS: Additional text displayed for public feed when there are no public notices for a not logged in user.
|
||||||
$message .= _('Why not [register an account](%%action.register%%) and be the first to post!');
|
$message .= _('Why not [register an account](%%action.register%%) and be the first to post!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -209,7 +201,6 @@ class PublicAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$nl = new ThreadedNoticeList($this->notice, $this);
|
$nl = new ThreadedNoticeList($this->notice, $this);
|
||||||
@ -241,11 +232,15 @@ class PublicAction extends Action
|
|||||||
function showAnonymousMessage()
|
function showAnonymousMessage()
|
||||||
{
|
{
|
||||||
if (! (common_config('site','closed') || common_config('site','inviteonly'))) {
|
if (! (common_config('site','closed') || common_config('site','inviteonly'))) {
|
||||||
|
// TRANS: Message for not logged in users at an invite-only site trying to view the public feed of notices.
|
||||||
|
// TRANS: This message contains Markdown links. Please mind the formatting.
|
||||||
$m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
$m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
||||||
'based on the Free Software [StatusNet](http://status.net/) tool. ' .
|
'based on the Free Software [StatusNet](http://status.net/) tool. ' .
|
||||||
'[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ' .
|
'[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ' .
|
||||||
'([Read more](%%doc.help%%))');
|
'([Read more](%%doc.help%%))');
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Message for not logged in users at a closed site trying to view the public feed of notices.
|
||||||
|
// TRANS: This message contains Markdown links. Please mind the formatting.
|
||||||
$m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
$m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' .
|
||||||
'based on the Free Software [StatusNet](http://status.net/) tool.');
|
'based on the Free Software [StatusNet](http://status.net/) tool.');
|
||||||
}
|
}
|
||||||
|
@ -92,12 +92,6 @@ class PublictagcloudAction extends Action
|
|||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PublicGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Public XRDS for OpenID
|
* Public XRDS for OpenID
|
||||||
*
|
*
|
||||||
|
@ -162,8 +162,8 @@ class RecoverpasswordAction extends Action
|
|||||||
' the email address you have stored' .
|
' the email address you have stored' .
|
||||||
' in your account.'));
|
' in your account.'));
|
||||||
} else if ($this->mode == 'reset') {
|
} else if ($this->mode == 'reset') {
|
||||||
// TRANS: Page notice for password change page.
|
|
||||||
$this->element('p', null,
|
$this->element('p', null,
|
||||||
|
// TRANS: Page notice for password change page.
|
||||||
_('You have been identified. Enter a' .
|
_('You have been identified. Enter a' .
|
||||||
' new password below.'));
|
' new password below.'));
|
||||||
}
|
}
|
||||||
@ -282,7 +282,11 @@ class RecoverpasswordAction extends Action
|
|||||||
$user = User::staticGet('email', common_canonical_email($nore));
|
$user = User::staticGet('email', common_canonical_email($nore));
|
||||||
|
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
|
try {
|
||||||
$user = User::staticGet('nickname', common_canonical_nickname($nore));
|
$user = User::staticGet('nickname', common_canonical_nickname($nore));
|
||||||
|
} catch (NicknameException $e) {
|
||||||
|
// invalid
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# See if it's an unconfirmed email address
|
# See if it's an unconfirmed email address
|
||||||
|
@ -59,7 +59,6 @@ class RedirecturlAction extends Action
|
|||||||
*
|
*
|
||||||
* @return boolean true
|
* @return boolean true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($argarray)
|
function prepare($argarray)
|
||||||
{
|
{
|
||||||
parent::prepare($argarray);
|
parent::prepare($argarray);
|
||||||
@ -67,13 +66,16 @@ class RedirecturlAction extends Action
|
|||||||
$this->id = $this->trimmed('id');
|
$this->id = $this->trimmed('id');
|
||||||
|
|
||||||
if (empty($this->id)) {
|
if (empty($this->id)) {
|
||||||
throw new ClientException(_('No id parameter'));
|
// TRANS: Client exception thrown when no ID parameter was provided.
|
||||||
|
throw new ClientException(_('No id parameter.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->file = File::staticGet('id', $this->id);
|
$this->file = File::staticGet('id', $this->id);
|
||||||
|
|
||||||
if (empty($this->file)) {
|
if (empty($this->file)) {
|
||||||
throw new ClientException(sprintf(_('No such file "%d"'),
|
// TRANS: Client exception thrown when an invalid ID parameter was provided for a file.
|
||||||
|
// TRANS: %d is the provided ID for which the file is not present (number).
|
||||||
|
throw new ClientException(sprintf(_('No such file "%d".'),
|
||||||
$this->id),
|
$this->id),
|
||||||
404);
|
404);
|
||||||
}
|
}
|
||||||
@ -88,7 +90,6 @@ class RedirecturlAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($argarray=null)
|
function handle($argarray=null)
|
||||||
{
|
{
|
||||||
common_redirect($this->file->url, 307);
|
common_redirect($this->file->url, 307);
|
||||||
@ -104,7 +105,6 @@ class RedirecturlAction extends Action
|
|||||||
*
|
*
|
||||||
* @return boolean is read only action?
|
* @return boolean is read only action?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function isReadOnly($args)
|
function isReadOnly($args)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@ -117,7 +117,6 @@ class RedirecturlAction extends Action
|
|||||||
*
|
*
|
||||||
* @return string last modified http header
|
* @return string last modified http header
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function lastModified()
|
function lastModified()
|
||||||
{
|
{
|
||||||
// For comparison with If-Last-Modified
|
// For comparison with If-Last-Modified
|
||||||
@ -133,7 +132,6 @@ class RedirecturlAction extends Action
|
|||||||
*
|
*
|
||||||
* @return string etag http header
|
* @return string etag http header
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function etag()
|
function etag()
|
||||||
{
|
{
|
||||||
return 'W/"' . implode(':', array($this->arg('action'),
|
return 'W/"' . implode(':', array($this->arg('action'),
|
||||||
|
@ -77,6 +77,7 @@ class RegisterAction extends Action
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (common_config('site', 'inviteonly') && empty($this->code)) {
|
if (common_config('site', 'inviteonly') && empty($this->code)) {
|
||||||
|
// TRANS: Client error displayed when trying to register to an invite-only site without an invitation.
|
||||||
$this->clientError(_('Sorry, only invited people can register.'));
|
$this->clientError(_('Sorry, only invited people can register.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -84,6 +85,7 @@ class RegisterAction extends Action
|
|||||||
if (!empty($this->code)) {
|
if (!empty($this->code)) {
|
||||||
$this->invite = Invitation::staticGet('code', $this->code);
|
$this->invite = Invitation::staticGet('code', $this->code);
|
||||||
if (empty($this->invite)) {
|
if (empty($this->invite)) {
|
||||||
|
// TRANS: Client error displayed when trying to register to an invite-only site without a valid invitation.
|
||||||
$this->clientError(_('Sorry, invalid invitation code.'));
|
$this->clientError(_('Sorry, invalid invitation code.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -103,9 +105,11 @@ class RegisterAction extends Action
|
|||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
if ($this->registered) {
|
if ($this->registered) {
|
||||||
|
// TRANS: Title for registration page after a succesful registration.
|
||||||
return _('Registration successful');
|
return _('Registration successful');
|
||||||
} else {
|
} else {
|
||||||
return _('Register');
|
// TRANS: Title for registration page.
|
||||||
|
return _m('TITLE','Register');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,8 +129,10 @@ class RegisterAction extends Action
|
|||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
|
|
||||||
if (common_config('site', 'closed')) {
|
if (common_config('site', 'closed')) {
|
||||||
|
// TRANS: Client error displayed when trying to register to a closed site.
|
||||||
$this->clientError(_('Registration not allowed.'));
|
$this->clientError(_('Registration not allowed.'));
|
||||||
} else if (common_logged_in()) {
|
} else if (common_logged_in()) {
|
||||||
|
// TRANS: Client error displayed when trying to register while already logged in.
|
||||||
$this->clientError(_('Already logged in.'));
|
$this->clientError(_('Already logged in.'));
|
||||||
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
$this->tryRegister();
|
$this->tryRegister();
|
||||||
@ -178,6 +184,7 @@ class RegisterAction extends Action
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
||||||
|
// TRANS: Client error displayed when trying to register to an invite-only site without an invitation.
|
||||||
$this->clientError(_('Sorry, only invited people can register.'));
|
$this->clientError(_('Sorry, only invited people can register.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -191,13 +198,17 @@ class RegisterAction extends Action
|
|||||||
$email = common_canonical_email($email);
|
$email = common_canonical_email($email);
|
||||||
|
|
||||||
if (!$this->boolean('license')) {
|
if (!$this->boolean('license')) {
|
||||||
$this->showForm(_('You cannot register if you don\'t '.
|
// TRANS: Form validation error displayed when trying to register without agreeing to the site license.
|
||||||
|
$this->showForm(_('You cannot register if you do not '.
|
||||||
'agree to the license.'));
|
'agree to the license.'));
|
||||||
} else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) {
|
} else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register without a valid e-mail address.
|
||||||
$this->showForm(_('Not a valid email address.'));
|
$this->showForm(_('Not a valid email address.'));
|
||||||
} else if ($this->nicknameExists($nickname)) {
|
} else if ($this->nicknameExists($nickname)) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with an existing nickname.
|
||||||
$this->showForm(_('Nickname already in use. Try another one.'));
|
$this->showForm(_('Nickname already in use. Try another one.'));
|
||||||
} else if (!User::allowed_nickname($nickname)) {
|
} else if (!User::allowed_nickname($nickname)) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with an invalid nickname.
|
||||||
$this->showForm(_('Not a valid nickname.'));
|
$this->showForm(_('Not a valid nickname.'));
|
||||||
} else if ($this->emailExists($email)) {
|
} else if ($this->emailExists($email)) {
|
||||||
$this->showForm(_('Email address already exists.'));
|
$this->showForm(_('Email address already exists.'));
|
||||||
@ -205,25 +216,32 @@ class RegisterAction extends Action
|
|||||||
!Validate::uri($homepage,
|
!Validate::uri($homepage,
|
||||||
array('allowed_schemes' =>
|
array('allowed_schemes' =>
|
||||||
array('http', 'https')))) {
|
array('http', 'https')))) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with an invalid homepage URL.
|
||||||
$this->showForm(_('Homepage is not a valid URL.'));
|
$this->showForm(_('Homepage is not a valid URL.'));
|
||||||
return;
|
return;
|
||||||
} else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
|
} else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with a too long full name.
|
||||||
$this->showForm(_('Full name is too long (maximum 255 characters).'));
|
$this->showForm(_('Full name is too long (maximum 255 characters).'));
|
||||||
return;
|
return;
|
||||||
} else if (Profile::bioTooLong($bio)) {
|
} else if (Profile::bioTooLong($bio)) {
|
||||||
|
// TRANS: Form validation error on registration page when providing too long a bio text.
|
||||||
|
// TRANS: %d is the maximum number of characters for bio; used for plural.
|
||||||
$this->showForm(sprintf(_m('Bio is too long (maximum %d character).',
|
$this->showForm(sprintf(_m('Bio is too long (maximum %d character).',
|
||||||
'Bio is too long (maximum %d characters).',
|
'Bio is too long (maximum %d characters).',
|
||||||
Profile::maxBio()),
|
Profile::maxBio()),
|
||||||
Profile::maxBio()));
|
Profile::maxBio()));
|
||||||
return;
|
return;
|
||||||
} else if (!is_null($location) && mb_strlen($location) > 255) {
|
} else if (!is_null($location) && mb_strlen($location) > 255) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with a too long location.
|
||||||
$this->showForm(_('Location is too long (maximum 255 characters).'));
|
$this->showForm(_('Location is too long (maximum 255 characters).'));
|
||||||
return;
|
return;
|
||||||
} else if (strlen($password) < 6) {
|
} else if (strlen($password) < 6) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with too short a password.
|
||||||
$this->showForm(_('Password must be 6 or more characters.'));
|
$this->showForm(_('Password must be 6 or more characters.'));
|
||||||
return;
|
return;
|
||||||
} else if ($password != $confirm) {
|
} else if ($password != $confirm) {
|
||||||
$this->showForm(_('Passwords don\'t match.'));
|
// TRANS: Form validation error displayed when trying to register with non-matching passwords.
|
||||||
|
$this->showForm(_('Passwords do not match.'));
|
||||||
} else if ($user = User::register(array('nickname' => $nickname,
|
} else if ($user = User::register(array('nickname' => $nickname,
|
||||||
'password' => $password,
|
'password' => $password,
|
||||||
'email' => $email,
|
'email' => $email,
|
||||||
@ -233,11 +251,13 @@ class RegisterAction extends Action
|
|||||||
'location' => $location,
|
'location' => $location,
|
||||||
'code' => $code))) {
|
'code' => $code))) {
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with an invalid username or password.
|
||||||
$this->showForm(_('Invalid username or password.'));
|
$this->showForm(_('Invalid username or password.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// success!
|
// success!
|
||||||
if (!common_set_user($user)) {
|
if (!common_set_user($user)) {
|
||||||
|
// TRANS: Server error displayed when saving fails during user registration.
|
||||||
$this->serverError(_('Error setting user.'));
|
$this->serverError(_('Error setting user.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -255,6 +275,7 @@ class RegisterAction extends Action
|
|||||||
|
|
||||||
$this->showSuccess();
|
$this->showSuccess();
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Form validation error displayed when trying to register with an invalid username or password.
|
||||||
$this->showForm(_('Invalid username or password.'));
|
$this->showForm(_('Invalid username or password.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -330,6 +351,7 @@ class RegisterAction extends Action
|
|||||||
$this->element('p', 'error', $this->error);
|
$this->element('p', 'error', $this->error);
|
||||||
} else {
|
} else {
|
||||||
$instr =
|
$instr =
|
||||||
|
// TRANS: Page notice on registration page.
|
||||||
common_markup_to_html(_('With this form you can create '.
|
common_markup_to_html(_('With this form you can create '.
|
||||||
'a new account. ' .
|
'a new account. ' .
|
||||||
'You can then post notices and '.
|
'You can then post notices and '.
|
||||||
@ -389,6 +411,7 @@ class RegisterAction extends Action
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
if (common_config('site', 'inviteonly') && !($code && $invite)) {
|
||||||
|
// TRANS: Client error displayed when trying to register to an invite-only site without an invitation.
|
||||||
$this->clientError(_('Sorry, only invited people can register.'));
|
$this->clientError(_('Sorry, only invited people can register.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -398,6 +421,7 @@ class RegisterAction extends Action
|
|||||||
'class' => 'form_settings',
|
'class' => 'form_settings',
|
||||||
'action' => common_local_url('register')));
|
'action' => common_local_url('register')));
|
||||||
$this->elementStart('fieldset');
|
$this->elementStart('fieldset');
|
||||||
|
// TRANS: Fieldset legend on accout registration page.
|
||||||
$this->element('legend', null, 'Account settings');
|
$this->element('legend', null, 'Account settings');
|
||||||
$this->hidden('token', common_session_token());
|
$this->hidden('token', common_session_token());
|
||||||
|
|
||||||
@ -408,66 +432,86 @@ class RegisterAction extends Action
|
|||||||
$this->elementStart('ul', 'form_data');
|
$this->elementStart('ul', 'form_data');
|
||||||
if (Event::handle('StartRegistrationFormData', array($this))) {
|
if (Event::handle('StartRegistrationFormData', array($this))) {
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on account registration page.
|
||||||
$this->input('nickname', _('Nickname'), $this->trimmed('nickname'),
|
$this->input('nickname', _('Nickname'), $this->trimmed('nickname'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('1-64 lowercase letters or numbers, no punctuation or spaces.'));
|
_('1-64 lowercase letters or numbers, no punctuation or spaces.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on account registration page.
|
||||||
$this->password('password', _('Password'),
|
$this->password('password', _('Password'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('6 or more characters.'));
|
_('6 or more characters.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$this->password('confirm', _('Confirm'),
|
// TRANS: Field label on account registration page. In this field the password has to be entered a second time.
|
||||||
|
$this->password('confirm', _m('PASSWORD','Confirm'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('Same as password above.'));
|
_('Same as password above.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
if ($this->invite && $this->invite->address_type == 'email') {
|
if ($this->invite && $this->invite->address_type == 'email') {
|
||||||
$this->input('email', _('Email'), $this->invite->address,
|
// TRANS: Field label on account registration page.
|
||||||
|
$this->input('email', _m('LABEL','Email'), $this->invite->address,
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('Used only for updates, announcements, '.
|
_('Used only for updates, announcements, '.
|
||||||
'and password recovery.'));
|
'and password recovery.'));
|
||||||
} else {
|
} else {
|
||||||
$this->input('email', _('Email'), $this->trimmed('email'),
|
// TRANS: Field label on account registration page.
|
||||||
|
$this->input('email', _m('LABEL','Email'), $this->trimmed('email'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('Used only for updates, announcements, '.
|
_('Used only for updates, announcements, '.
|
||||||
'and password recovery.'));
|
'and password recovery.'));
|
||||||
}
|
}
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on account registration page.
|
||||||
$this->input('fullname', _('Full name'),
|
$this->input('fullname', _('Full name'),
|
||||||
$this->trimmed('fullname'),
|
$this->trimmed('fullname'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('Longer name, preferably your "real" name.'));
|
_('Longer name, preferably your "real" name.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on account registration page.
|
||||||
$this->input('homepage', _('Homepage'),
|
$this->input('homepage', _('Homepage'),
|
||||||
$this->trimmed('homepage'),
|
$this->trimmed('homepage'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('URL of your homepage, blog, '.
|
_('URL of your homepage, blog, '.
|
||||||
'or profile on another site.'));
|
'or profile on another site.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$maxBio = Profile::maxBio();
|
$maxBio = Profile::maxBio();
|
||||||
if ($maxBio > 0) {
|
if ($maxBio > 0) {
|
||||||
// TRANS: Tooltip for field label in form for profile settings. Plural
|
// TRANS: Text area title in form for account registration. Plural
|
||||||
// TRANS: is decided by the number of characters available for the
|
// TRANS: is decided by the number of characters available for the
|
||||||
// TRANS: biography (%d).
|
// TRANS: biography (%d).
|
||||||
$bioInstr = sprintf(_m('Describe yourself and your interests in %d character',
|
$bioInstr = sprintf(_m('Describe yourself and your interests in %d character.',
|
||||||
'Describe yourself and your interests in %d characters',
|
'Describe yourself and your interests in %d characters.',
|
||||||
$maxBio),
|
$maxBio),
|
||||||
$maxBio);
|
$maxBio);
|
||||||
} else {
|
} else {
|
||||||
$bioInstr = _('Describe yourself and your interests');
|
// TRANS: Text area title on account registration page.
|
||||||
|
$bioInstr = _('Describe yourself and your interests.');
|
||||||
}
|
}
|
||||||
|
// TRANS: Text area label on account registration page.
|
||||||
$this->textarea('bio', _('Bio'),
|
$this->textarea('bio', _('Bio'),
|
||||||
$this->trimmed('bio'),
|
$this->trimmed('bio'),
|
||||||
$bioInstr);
|
$bioInstr);
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on account registration page.
|
||||||
$this->input('location', _('Location'),
|
$this->input('location', _('Location'),
|
||||||
$this->trimmed('location'),
|
$this->trimmed('location'),
|
||||||
|
// TRANS: Field title on account registration page.
|
||||||
_('Where you are, like "City, '.
|
_('Where you are, like "City, '.
|
||||||
'State (or Region), Country".'));
|
'State (or Region), Country".'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
Event::handle('EndRegistrationFormData', array($this));
|
Event::handle('EndRegistrationFormData', array($this));
|
||||||
$this->elementStart('li', array('id' => 'settings_rememberme'));
|
$this->elementStart('li', array('id' => 'settings_rememberme'));
|
||||||
|
// TRANS: Checkbox label on account registration page.
|
||||||
$this->checkbox('rememberme', _('Remember me'),
|
$this->checkbox('rememberme', _('Remember me'),
|
||||||
$this->boolean('rememberme'),
|
$this->boolean('rememberme'),
|
||||||
|
// TRANS: Checkbox title on account registration page.
|
||||||
_('Automatically login in the future; '.
|
_('Automatically login in the future; '.
|
||||||
'not for shared computers!'));
|
'not for shared computers!'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
@ -487,7 +531,8 @@ class RegisterAction extends Action
|
|||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
}
|
}
|
||||||
$this->elementEnd('ul');
|
$this->elementEnd('ul');
|
||||||
$this->submit('submit', _('Register'));
|
// TRANS: Field label on account registration page.
|
||||||
|
$this->submit('submit', _m('BUTTON','Register'));
|
||||||
$this->elementEnd('fieldset');
|
$this->elementEnd('fieldset');
|
||||||
$this->elementEnd('form');
|
$this->elementEnd('form');
|
||||||
}
|
}
|
||||||
@ -497,9 +542,9 @@ class RegisterAction extends Action
|
|||||||
$out = '';
|
$out = '';
|
||||||
switch (common_config('license', 'type')) {
|
switch (common_config('license', 'type')) {
|
||||||
case 'private':
|
case 'private':
|
||||||
|
$out .= htmlspecialchars(sprintf(
|
||||||
// TRANS: Copyright checkbox label in registration dialog, for private sites.
|
// TRANS: Copyright checkbox label in registration dialog, for private sites.
|
||||||
// TRANS: %1$s is the StatusNet sitename.
|
// TRANS: %1$s is the StatusNet sitename.
|
||||||
$out .= htmlspecialchars(sprintf(
|
|
||||||
_('I understand that content and data of %1$s are private and confidential.'),
|
_('I understand that content and data of %1$s are private and confidential.'),
|
||||||
common_config('site', 'name')));
|
common_config('site', 'name')));
|
||||||
// fall through
|
// fall through
|
||||||
@ -508,8 +553,9 @@ class RegisterAction extends Action
|
|||||||
$out .= ' ';
|
$out .= ' ';
|
||||||
}
|
}
|
||||||
if (common_config('license', 'owner')) {
|
if (common_config('license', 'owner')) {
|
||||||
// TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner.
|
|
||||||
$out .= htmlspecialchars(sprintf(
|
$out .= htmlspecialchars(sprintf(
|
||||||
|
// TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner.
|
||||||
|
// TRANS: %1$s is the license owner.
|
||||||
_('My text and files are copyright by %1$s.'),
|
_('My text and files are copyright by %1$s.'),
|
||||||
common_config('license', 'owner')));
|
common_config('license', 'owner')));
|
||||||
} else {
|
} else {
|
||||||
@ -563,6 +609,10 @@ class RegisterAction extends Action
|
|||||||
array('nickname' => $nickname));
|
array('nickname' => $nickname));
|
||||||
|
|
||||||
$this->elementStart('div', 'success');
|
$this->elementStart('div', 'success');
|
||||||
|
// TRANS: Text displayed after successful account registration.
|
||||||
|
// TRANS: %1$s is the registered nickname, %2$s is the profile URL.
|
||||||
|
// TRANS: This message contains Markdown links in the form [link text](link)
|
||||||
|
// TRANS: and variables in the form %%%%variable%%%%. Please mind the syntax.
|
||||||
$instr = sprintf(_('Congratulations, %1$s! And welcome to %%%%site.name%%%%. '.
|
$instr = sprintf(_('Congratulations, %1$s! And welcome to %%%%site.name%%%%. '.
|
||||||
'From here, you may want to...'. "\n\n" .
|
'From here, you may want to...'. "\n\n" .
|
||||||
'* Go to [your profile](%2$s) '.
|
'* Go to [your profile](%2$s) '.
|
||||||
@ -587,6 +637,7 @@ class RegisterAction extends Action
|
|||||||
|
|
||||||
$have_email = $this->trimmed('email');
|
$have_email = $this->trimmed('email');
|
||||||
if ($have_email) {
|
if ($have_email) {
|
||||||
|
// TRANS: Instruction text on how to deal with the e-mail address confirmation e-mail.
|
||||||
$emailinstr = _('(You should receive a message by email '.
|
$emailinstr = _('(You should receive a message by email '.
|
||||||
'momentarily, with ' .
|
'momentarily, with ' .
|
||||||
'instructions on how to confirm '.
|
'instructions on how to confirm '.
|
||||||
@ -606,4 +657,12 @@ class RegisterAction extends Action
|
|||||||
$nav = new LoginGroupNav($this);
|
$nav = new LoginGroupNav($this);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showNoticeForm()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
function showProfileBlock()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,7 @@ class RemotesubscribeAction extends Action
|
|||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
|
|
||||||
if (common_logged_in()) {
|
if (common_logged_in()) {
|
||||||
|
// TRANS: Client error displayed when using remote subscribe for a local entity.
|
||||||
$this->clientError(_('You can use the local subscription!'));
|
$this->clientError(_('You can use the local subscription!'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -94,6 +95,8 @@ class RemotesubscribeAction extends Action
|
|||||||
if ($this->err) {
|
if ($this->err) {
|
||||||
$this->element('div', 'error', $this->err);
|
$this->element('div', 'error', $this->err);
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Page notice for remote subscribe. This message contains Markdown links.
|
||||||
|
// TRANS: Ensure to keep the correct markup of [link description](link).
|
||||||
$inst = _('To subscribe, you can [login](%%action.login%%),' .
|
$inst = _('To subscribe, you can [login](%%action.login%%),' .
|
||||||
' or [register](%%action.register%%) a new ' .
|
' or [register](%%action.register%%) a new ' .
|
||||||
' account. If you already have an account ' .
|
' account. If you already have an account ' .
|
||||||
@ -108,6 +111,7 @@ class RemotesubscribeAction extends Action
|
|||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
|
// TRANS: Page title for Remote subscribe.
|
||||||
return _('Remote subscribe');
|
return _('Remote subscribe');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,20 +124,26 @@ class RemotesubscribeAction extends Action
|
|||||||
'class' => 'form_settings',
|
'class' => 'form_settings',
|
||||||
'action' => common_local_url('remotesubscribe')));
|
'action' => common_local_url('remotesubscribe')));
|
||||||
$this->elementStart('fieldset');
|
$this->elementStart('fieldset');
|
||||||
|
// TRANS: Field legend on page for remote subscribe.
|
||||||
$this->element('legend', _('Subscribe to a remote user'));
|
$this->element('legend', _('Subscribe to a remote user'));
|
||||||
$this->hidden('token', common_session_token());
|
$this->hidden('token', common_session_token());
|
||||||
|
|
||||||
$this->elementStart('ul', 'form_data');
|
$this->elementStart('ul', 'form_data');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on page for remote subscribe.
|
||||||
$this->input('nickname', _('User nickname'), $this->nickname,
|
$this->input('nickname', _('User nickname'), $this->nickname,
|
||||||
|
// TRANS: Field title on page for remote subscribe.
|
||||||
_('Nickname of the user you want to follow.'));
|
_('Nickname of the user you want to follow.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
|
// TRANS: Field label on page for remote subscribe.
|
||||||
$this->input('profile_url', _('Profile URL'), $this->profile_url,
|
$this->input('profile_url', _('Profile URL'), $this->profile_url,
|
||||||
|
// TRANS: Field title on page for remote subscribe.
|
||||||
_('URL of your profile on another compatible microblogging service.'));
|
_('URL of your profile on another compatible microblogging service.'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
$this->elementEnd('ul');
|
$this->elementEnd('ul');
|
||||||
$this->submit('submit', _('Subscribe'));
|
// TRANS: Button text on page for remote subscribe.
|
||||||
|
$this->submit('submit', _m('BUTTON','Subscribe'));
|
||||||
$this->elementEnd('fieldset');
|
$this->elementEnd('fieldset');
|
||||||
$this->elementEnd('form');
|
$this->elementEnd('form');
|
||||||
}
|
}
|
||||||
@ -141,6 +151,7 @@ class RemotesubscribeAction extends Action
|
|||||||
function remoteSubscription()
|
function remoteSubscription()
|
||||||
{
|
{
|
||||||
if (!$this->nickname) {
|
if (!$this->nickname) {
|
||||||
|
// TRANS: Form validation error on page for remote subscribe when no user was provided.
|
||||||
$this->showForm(_('No such user.'));
|
$this->showForm(_('No such user.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -150,11 +161,13 @@ class RemotesubscribeAction extends Action
|
|||||||
$this->profile_url = $this->trimmed('profile_url');
|
$this->profile_url = $this->trimmed('profile_url');
|
||||||
|
|
||||||
if (!$this->profile_url) {
|
if (!$this->profile_url) {
|
||||||
|
// TRANS: Form validation error on page for remote subscribe when no user profile was found.
|
||||||
$this->showForm(_('No such user.'));
|
$this->showForm(_('No such user.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!common_valid_http_url($this->profile_url)) {
|
if (!common_valid_http_url($this->profile_url)) {
|
||||||
|
// TRANS: Form validation error on page for remote subscribe when an invalid profile URL was provided.
|
||||||
$this->showForm(_('Invalid profile URL (bad format).'));
|
$this->showForm(_('Invalid profile URL (bad format).'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -164,6 +177,8 @@ class RemotesubscribeAction extends Action
|
|||||||
common_root_url(),
|
common_root_url(),
|
||||||
omb_oauth_datastore());
|
omb_oauth_datastore());
|
||||||
} catch (OMB_InvalidYadisException $e) {
|
} catch (OMB_InvalidYadisException $e) {
|
||||||
|
// TRANS: Form validation error on page for remote subscribe when no the provided profile URL
|
||||||
|
// TRANS: does not contain expected data.
|
||||||
$this->showForm(_('Not a valid profile URL (no YADIS document or ' .
|
$this->showForm(_('Not a valid profile URL (no YADIS document or ' .
|
||||||
'invalid XRDS defined).'));
|
'invalid XRDS defined).'));
|
||||||
return;
|
return;
|
||||||
@ -172,6 +187,7 @@ class RemotesubscribeAction extends Action
|
|||||||
if ($service->getServiceURI(OAUTH_ENDPOINT_REQUEST) ==
|
if ($service->getServiceURI(OAUTH_ENDPOINT_REQUEST) ==
|
||||||
common_local_url('requesttoken') ||
|
common_local_url('requesttoken') ||
|
||||||
User::staticGet('uri', $service->getRemoteUserURI())) {
|
User::staticGet('uri', $service->getRemoteUserURI())) {
|
||||||
|
// TRANS: Form validation error on page for remote subscribe.
|
||||||
$this->showForm(_('That is a local profile! Login to subscribe.'));
|
$this->showForm(_('That is a local profile! Login to subscribe.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -179,6 +195,7 @@ class RemotesubscribeAction extends Action
|
|||||||
try {
|
try {
|
||||||
$service->requestToken();
|
$service->requestToken();
|
||||||
} catch (OMB_RemoteServiceException $e) {
|
} catch (OMB_RemoteServiceException $e) {
|
||||||
|
// TRANS: Form validation error on page for remote subscribe when the remote service is not providing a request token.
|
||||||
$this->showForm(_('Could not get a request token.'));
|
$this->showForm(_('Could not get a request token.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -187,6 +204,7 @@ class RemotesubscribeAction extends Action
|
|||||||
$profile = $user->getProfile();
|
$profile = $user->getProfile();
|
||||||
if (!$profile) {
|
if (!$profile) {
|
||||||
common_log_db_error($user, 'SELECT', __FILE__);
|
common_log_db_error($user, 'SELECT', __FILE__);
|
||||||
|
// TRANS: Server error displayed on page for remote subscribe when user does not have a matching profile.
|
||||||
$this->serverError(_('User without matching profile.'));
|
$this->serverError(_('User without matching profile.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repeat action.
|
* Repeat action.
|
||||||
*
|
*
|
||||||
@ -53,6 +52,7 @@ class RepeatAction extends Action
|
|||||||
$this->user = common_current_user();
|
$this->user = common_current_user();
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
|
// TRANS: Client error displayed when trying to repeat a notice while not logged in.
|
||||||
$this->clientError(_('Only logged-in users can repeat notices.'));
|
$this->clientError(_('Only logged-in users can repeat notices.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -60,6 +60,7 @@ class RepeatAction extends Action
|
|||||||
$id = $this->trimmed('notice');
|
$id = $this->trimmed('notice');
|
||||||
|
|
||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
|
// TRANS: Client error displayed when trying to repeat a notice while not providing a notice ID.
|
||||||
$this->clientError(_('No notice specified.'));
|
$this->clientError(_('No notice specified.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -67,11 +68,13 @@ class RepeatAction extends Action
|
|||||||
$this->notice = Notice::staticGet('id', $id);
|
$this->notice = Notice::staticGet('id', $id);
|
||||||
|
|
||||||
if (empty($this->notice)) {
|
if (empty($this->notice)) {
|
||||||
|
// TRANS: Client error displayed when trying to repeat a non-existing notice.
|
||||||
$this->clientError(_('No notice specified.'));
|
$this->clientError(_('No notice specified.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->user->id == $this->notice->profile_id) {
|
if ($this->user->id == $this->notice->profile_id) {
|
||||||
|
// TRANS: Client error displayed when trying to repeat an own notice.
|
||||||
$this->clientError(_('You cannot repeat your own notice.'));
|
$this->clientError(_('You cannot repeat your own notice.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -86,6 +89,7 @@ class RepeatAction extends Action
|
|||||||
$profile = $this->user->getProfile();
|
$profile = $this->user->getProfile();
|
||||||
|
|
||||||
if ($profile->hasRepeated($id)) {
|
if ($profile->hasRepeated($id)) {
|
||||||
|
// TRANS: Client error displayed when trying to repeat an already repeated notice.
|
||||||
$this->clientError(_('You already repeated that notice.'));
|
$this->clientError(_('You already repeated that notice.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -104,21 +108,21 @@ class RepeatAction extends Action
|
|||||||
{
|
{
|
||||||
$repeat = $this->notice->repeat($this->user->id, 'web');
|
$repeat = $this->notice->repeat($this->user->id, 'web');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($this->boolean('ajax')) {
|
if ($this->boolean('ajax')) {
|
||||||
$this->startHTML('text/xml;charset=utf-8');
|
$this->startHTML('text/xml;charset=utf-8');
|
||||||
$this->elementStart('head');
|
$this->elementStart('head');
|
||||||
|
// TRANS: Title after repeating a notice.
|
||||||
$this->element('title', null, _('Repeated'));
|
$this->element('title', null, _('Repeated'));
|
||||||
$this->elementEnd('head');
|
$this->elementEnd('head');
|
||||||
$this->elementStart('body');
|
$this->elementStart('body');
|
||||||
$this->element('p', array('id' => 'repeat_response',
|
$this->element('p', array('id' => 'repeat_response',
|
||||||
'class' => 'repeated'),
|
'class' => 'repeated'),
|
||||||
|
// TRANS: Confirmation text after repeating a notice.
|
||||||
_('Repeated!'));
|
_('Repeated!'));
|
||||||
$this->elementEnd('body');
|
$this->elementEnd('body');
|
||||||
$this->elementEnd('html');
|
$this->elementEnd('html');
|
||||||
} else {
|
} else {
|
||||||
// FIXME!
|
// @todo FIXME!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/feedlist.php';
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class RepliesAction extends OwnerDesignAction
|
class RepliesAction extends OwnerDesignAction
|
||||||
{
|
{
|
||||||
var $page = null;
|
var $page = null;
|
||||||
@ -60,7 +59,6 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return boolean success flag
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
@ -70,6 +68,7 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
$this->user = User::staticGet('nickname', $nickname);
|
$this->user = User::staticGet('nickname', $nickname);
|
||||||
|
|
||||||
if (!$this->user) {
|
if (!$this->user) {
|
||||||
|
// TRANS: Client error displayed when trying to reply to a non-exsting user.
|
||||||
$this->clientError(_('No such user.'));
|
$this->clientError(_('No such user.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -77,6 +76,7 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
$profile = $this->user->getProfile();
|
$profile = $this->user->getProfile();
|
||||||
|
|
||||||
if (!$profile) {
|
if (!$profile) {
|
||||||
|
// TRANS: Server error displayed when trying to reply to a user without a profile.
|
||||||
$this->serverError(_('User has no profile.'));
|
$this->serverError(_('User has no profile.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -105,7 +105,6 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
@ -119,12 +118,15 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
*
|
*
|
||||||
* @return string title of page
|
* @return string title of page
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
if ($this->page == 1) {
|
if ($this->page == 1) {
|
||||||
|
// TRANS: Title for first page of replies for a user.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
return sprintf(_("Replies to %s"), $this->user->nickname);
|
return sprintf(_("Replies to %s"), $this->user->nickname);
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Title for all but the first page of replies for a user.
|
||||||
|
// TRANS: %1$s is a user nickname, %2$d is a page number.
|
||||||
return sprintf(_('Replies to %1$s, page %2$d'),
|
return sprintf(_('Replies to %1$s, page %2$d'),
|
||||||
$this->user->nickname,
|
$this->user->nickname,
|
||||||
$this->page);
|
$this->page);
|
||||||
@ -136,12 +138,13 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function getFeeds()
|
function getFeeds()
|
||||||
{
|
{
|
||||||
return array(new Feed(Feed::RSS1,
|
return array(new Feed(Feed::RSS1,
|
||||||
common_local_url('repliesrss',
|
common_local_url('repliesrss',
|
||||||
array('nickname' => $this->user->nickname)),
|
array('nickname' => $this->user->nickname)),
|
||||||
|
// TRANS: Link for feed with replies for a user.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
sprintf(_('Replies feed for %s (RSS 1.0)'),
|
sprintf(_('Replies feed for %s (RSS 1.0)'),
|
||||||
$this->user->nickname)),
|
$this->user->nickname)),
|
||||||
new Feed(Feed::RSS2,
|
new Feed(Feed::RSS2,
|
||||||
@ -149,6 +152,8 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
array(
|
array(
|
||||||
'id' => $this->user->nickname,
|
'id' => $this->user->nickname,
|
||||||
'format' => 'rss')),
|
'format' => 'rss')),
|
||||||
|
// TRANS: Link for feed with replies for a user.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
sprintf(_('Replies feed for %s (RSS 2.0)'),
|
sprintf(_('Replies feed for %s (RSS 2.0)'),
|
||||||
$this->user->nickname)),
|
$this->user->nickname)),
|
||||||
new Feed(Feed::ATOM,
|
new Feed(Feed::ATOM,
|
||||||
@ -156,22 +161,12 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
array(
|
array(
|
||||||
'id' => $this->user->nickname,
|
'id' => $this->user->nickname,
|
||||||
'format' => 'atom')),
|
'format' => 'atom')),
|
||||||
|
// TRANS: Link for feed with replies for a user.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
sprintf(_('Replies feed for %s (Atom)'),
|
sprintf(_('Replies feed for %s (Atom)'),
|
||||||
$this->user->nickname)));
|
$this->user->nickname)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* show the personal group nav
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PersonalGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the content
|
* Show the content
|
||||||
*
|
*
|
||||||
@ -179,7 +174,6 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$nl = new NoticeList($this->notice, $this);
|
$nl = new NoticeList($this->notice, $this);
|
||||||
@ -196,17 +190,27 @@ class RepliesAction extends OwnerDesignAction
|
|||||||
|
|
||||||
function showEmptyListMessage()
|
function showEmptyListMessage()
|
||||||
{
|
{
|
||||||
$message = sprintf(_('This is the timeline showing replies to %1$s but %2$s hasn\'t received a notice to them yet.'), $this->user->nickname, $this->user->nickname) . ' ';
|
// TRANS: Empty list message for page with replies for a user.
|
||||||
|
// TRANS: %1$s and %s$s are the user nickname.
|
||||||
|
$message = sprintf(_('This is the timeline showing replies to %1$s but %2$s hasn\'t received a notice to them yet.'),
|
||||||
|
$this->user->nickname,
|
||||||
|
$this->user->nickname) . ' ';
|
||||||
|
|
||||||
if (common_logged_in()) {
|
if (common_logged_in()) {
|
||||||
$current_user = common_current_user();
|
$current_user = common_current_user();
|
||||||
if ($this->user->id === $current_user->id) {
|
if ($this->user->id === $current_user->id) {
|
||||||
|
// TRANS: Empty list message for page with replies for a user for the logged in user.
|
||||||
|
// TRANS: This message contains a Markdown link in the form [link text](link).
|
||||||
$message .= _('You can engage other users in a conversation, subscribe to more people or [join groups](%%action.groups%%).');
|
$message .= _('You can engage other users in a conversation, subscribe to more people or [join groups](%%action.groups%%).');
|
||||||
} else {
|
} else {
|
||||||
|
// TRANS: Empty list message for page with replies for a user for all logged in users but the user themselves.
|
||||||
|
// TRANS: %1$s, %2$s and %3$s are a user nickname. This message contains a Markdown link in the form [link text](link).
|
||||||
$message .= sprintf(_('You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname);
|
$message .= sprintf(_('You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// TRANS: Empty list message for page with replies for a user for not logged in users.
|
||||||
|
// TRANS: %1$s is a user nickname. This message contains a Markdown link in the form [link text](link).
|
||||||
$message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname);
|
$message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class RevokeRoleAction extends ProfileFormAction
|
class RevokeRoleAction extends ProfileFormAction
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -50,7 +49,6 @@ class RevokeRoleAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @return boolean success flag
|
* @return boolean success flag
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
if (!parent::prepare($args)) {
|
if (!parent::prepare($args)) {
|
||||||
@ -59,10 +57,12 @@ class RevokeRoleAction extends ProfileFormAction
|
|||||||
|
|
||||||
$this->role = $this->arg('role');
|
$this->role = $this->arg('role');
|
||||||
if (!Profile_role::isValid($this->role)) {
|
if (!Profile_role::isValid($this->role)) {
|
||||||
|
// TRANS: Client error displayed when trying to revoke an invalid role.
|
||||||
$this->clientError(_('Invalid role.'));
|
$this->clientError(_('Invalid role.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!Profile_role::isSettable($this->role)) {
|
if (!Profile_role::isSettable($this->role)) {
|
||||||
|
// TRANS: Client error displayed when trying to revoke a reserved role.
|
||||||
$this->clientError(_('This role is reserved and cannot be set.'));
|
$this->clientError(_('This role is reserved and cannot be set.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -72,6 +72,7 @@ class RevokeRoleAction extends ProfileFormAction
|
|||||||
assert(!empty($cur)); // checked by parent
|
assert(!empty($cur)); // checked by parent
|
||||||
|
|
||||||
if (!$cur->hasRight(Right::REVOKEROLE)) {
|
if (!$cur->hasRight(Right::REVOKEROLE)) {
|
||||||
|
// TRANS: Client error displayed when trying to revoke a role without having the right to do that.
|
||||||
$this->clientError(_('You cannot revoke user roles on this site.'));
|
$this->clientError(_('You cannot revoke user roles on this site.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -79,7 +80,8 @@ class RevokeRoleAction extends ProfileFormAction
|
|||||||
assert(!empty($this->profile)); // checked by parent
|
assert(!empty($this->profile)); // checked by parent
|
||||||
|
|
||||||
if (!$this->profile->hasRole($this->role)) {
|
if (!$this->profile->hasRole($this->role)) {
|
||||||
$this->clientError(_("User doesn't have this role."));
|
// TRANS: Client error displayed when trying to revoke a role that is not set.
|
||||||
|
$this->clientError(_('User does not have this role.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +93,6 @@ class RevokeRoleAction extends ProfileFormAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handlePost()
|
function handlePost()
|
||||||
{
|
{
|
||||||
$this->profile->revokeRole($this->role);
|
$this->profile->revokeRole($this->role);
|
||||||
|
@ -110,6 +110,7 @@ class RsdAction extends Action
|
|||||||
$this->user = User::staticGet('nickname', $nickname);
|
$this->user = User::staticGet('nickname', $nickname);
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
|
// TRANS: Client error.
|
||||||
$this->clientError(_('No such user.'), 404);
|
$this->clientError(_('No such user.'), 404);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -139,6 +140,7 @@ class RsdAction extends Action
|
|||||||
$this->elementStart('rsd', array('version' => '1.0',
|
$this->elementStart('rsd', array('version' => '1.0',
|
||||||
'xmlns' => $rsdNS));
|
'xmlns' => $rsdNS));
|
||||||
$this->elementStart('service');
|
$this->elementStart('service');
|
||||||
|
// TRANS: Engine name for RSD.
|
||||||
$this->element('engineName', null, _('StatusNet'));
|
$this->element('engineName', null, _('StatusNet'));
|
||||||
$this->element('engineLink', null, 'http://status.net/');
|
$this->element('engineLink', null, 'http://status.net/');
|
||||||
$this->elementStart('apis');
|
$this->elementStart('apis');
|
||||||
|
@ -44,7 +44,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
|||||||
*
|
*
|
||||||
* @see Action
|
* @see Action
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class SelftagAction extends Action
|
class SelftagAction extends Action
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -65,6 +64,8 @@ class SelftagAction extends Action
|
|||||||
$this->tag = $this->trimmed('tag');
|
$this->tag = $this->trimmed('tag');
|
||||||
|
|
||||||
if (!common_valid_profile_tag($this->tag)) {
|
if (!common_valid_profile_tag($this->tag)) {
|
||||||
|
// TRANS: Client error displayed when trying to tag a profile with an invalid tag.
|
||||||
|
// TRANS: %s is the invalid tag.
|
||||||
$this->clientError(sprintf(_('Not a valid people tag: %s.'),
|
$this->clientError(sprintf(_('Not a valid people tag: %s.'),
|
||||||
$this->tag));
|
$this->tag));
|
||||||
return;
|
return;
|
||||||
|
@ -189,17 +189,6 @@ class ShowfavoritesAction extends OwnerDesignAction
|
|||||||
$this->user->nickname)));
|
$this->user->nickname)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* show the personal group nav
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showLocalNav()
|
|
||||||
{
|
|
||||||
$nav = new PersonalGroupNav($this);
|
|
||||||
$nav->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function showEmptyListMessage()
|
function showEmptyListMessage()
|
||||||
{
|
{
|
||||||
if (common_logged_in()) {
|
if (common_logged_in()) {
|
||||||
|
@ -167,7 +167,7 @@ class ShowgroupAction extends GroupDesignAction
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new GroupNav($this, $this->group);
|
$nav = new GroupNav($this, $this->group);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
@ -180,8 +180,6 @@ class ShowgroupAction extends GroupDesignAction
|
|||||||
*/
|
*/
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$this->showGroupProfile();
|
|
||||||
$this->showGroupActions();
|
|
||||||
$this->showGroupNotices();
|
$this->showGroupNotices();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,121 +203,6 @@ class ShowgroupAction extends GroupDesignAction
|
|||||||
array('nickname' => $this->group->nickname));
|
array('nickname' => $this->group->nickname));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the group profile
|
|
||||||
*
|
|
||||||
* Information about the group
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function showGroupProfile()
|
|
||||||
{
|
|
||||||
$this->elementStart('div', array('id' => 'i',
|
|
||||||
'class' => 'entity_profile vcard author'));
|
|
||||||
|
|
||||||
$logo = ($this->group->homepage_logo) ?
|
|
||||||
$this->group->homepage_logo : User_group::defaultLogo(AVATAR_PROFILE_SIZE);
|
|
||||||
|
|
||||||
$this->element('img', array('src' => $logo,
|
|
||||||
'class' => 'photo avatar entity_depiction',
|
|
||||||
'width' => AVATAR_PROFILE_SIZE,
|
|
||||||
'height' => AVATAR_PROFILE_SIZE,
|
|
||||||
'alt' => $this->group->nickname));
|
|
||||||
|
|
||||||
$hasFN = ($this->group->fullname) ? 'entity_nickname nickname url uid' :
|
|
||||||
'entity_nickname fn org nickname url uid';
|
|
||||||
$this->element('a', array('href' => $this->group->homeUrl(),
|
|
||||||
'rel' => 'me', 'class' => $hasFN),
|
|
||||||
$this->group->nickname);
|
|
||||||
|
|
||||||
if ($this->group->fullname) {
|
|
||||||
$this->element('div', 'entity_fn fn org', $this->group->fullname);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->group->location) {
|
|
||||||
$this->element('div', 'entity_location label', $this->group->location);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->group->homepage) {
|
|
||||||
$this->element('a', array('href' => $this->group->homepage,
|
|
||||||
'rel' => 'me',
|
|
||||||
'class' => 'url entity_url'),
|
|
||||||
$this->group->homepage);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->group->description) {
|
|
||||||
$this->element('div', 'note entity_note', $this->group->description);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (common_config('group', 'maxaliases') > 0) {
|
|
||||||
$aliases = $this->group->getAliases();
|
|
||||||
|
|
||||||
if (!empty($aliases)) {
|
|
||||||
$this->element('div',
|
|
||||||
'aliases entity_aliases',
|
|
||||||
implode(' ', $aliases));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->group->description) {
|
|
||||||
$this->elementStart('dl', 'entity_note');
|
|
||||||
// TRANS: Label for group description or group note (dt). Text hidden by default.
|
|
||||||
$this->element('dt', null, _('Note'));
|
|
||||||
$this->element('dd', 'note', $this->group->description);
|
|
||||||
$this->elementEnd('dl');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (common_config('group', 'maxaliases') > 0) {
|
|
||||||
$aliases = $this->group->getAliases();
|
|
||||||
|
|
||||||
if (!empty($aliases)) {
|
|
||||||
$this->elementStart('dl', 'entity_aliases');
|
|
||||||
// TRANS: Label for group aliases (dt). Text hidden by default.
|
|
||||||
$this->element('dt', null, _('Aliases'));
|
|
||||||
$this->element('dd', 'aliases', implode(' ', $aliases));
|
|
||||||
$this->elementEnd('dl');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Event::handle('EndGroupProfileElements', array($this, $this->group));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->elementEnd('div');
|
|
||||||
}
|
|
||||||
|
|
||||||
function showGroupActions()
|
|
||||||
{
|
|
||||||
$cur = common_current_user();
|
|
||||||
$this->elementStart('div', 'entity_actions');
|
|
||||||
// TRANS: Group actions header (h2). Text hidden by default.
|
|
||||||
$this->element('h2', null, _('Group actions'));
|
|
||||||
$this->elementStart('ul');
|
|
||||||
if (Event::handle('StartGroupActionsList', array($this, $this->group))) {
|
|
||||||
$this->elementStart('li', 'entity_subscribe');
|
|
||||||
if (Event::handle('StartGroupSubscribe', array($this, $this->group))) {
|
|
||||||
if ($cur) {
|
|
||||||
if ($cur->isMember($this->group)) {
|
|
||||||
$lf = new LeaveForm($this, $this->group);
|
|
||||||
$lf->show();
|
|
||||||
} else if (!Group_block::isBlocked($this->group, $cur->getProfile())) {
|
|
||||||
$jf = new JoinForm($this, $this->group);
|
|
||||||
$jf->show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Event::handle('EndGroupSubscribe', array($this, $this->group));
|
|
||||||
}
|
|
||||||
$this->elementEnd('li');
|
|
||||||
if ($cur && $cur->hasRight(Right::DELETEGROUP)) {
|
|
||||||
$this->elementStart('li', 'entity_delete');
|
|
||||||
$df = new DeleteGroupForm($this, $this->group);
|
|
||||||
$df->show();
|
|
||||||
$this->elementEnd('li');
|
|
||||||
}
|
|
||||||
Event::handle('EndGroupActionsList', array($this, $this->group));
|
|
||||||
}
|
|
||||||
$this->elementEnd('ul');
|
|
||||||
$this->elementEnd('div');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of the feeds for this page
|
* Get a list of the feeds for this page
|
||||||
*
|
*
|
||||||
@ -440,7 +323,7 @@ class ShowgroupAction extends GroupDesignAction
|
|||||||
// TRANS: Header for group statistics on a group page (h2).
|
// TRANS: Header for group statistics on a group page (h2).
|
||||||
$this->element('h2', null, _('Statistics'));
|
$this->element('h2', null, _('Statistics'));
|
||||||
|
|
||||||
$this->elementEnd('dl');
|
$this->elementStart('dl');
|
||||||
$this->element('dt', null, _m('LABEL','Created'));
|
$this->element('dt', null, _m('LABEL','Created'));
|
||||||
$this->element('dd', 'entity_created', date('j M Y',
|
$this->element('dd', 'entity_created', date('j M Y',
|
||||||
strtotime($this->group->created)));
|
strtotime($this->group->created)));
|
||||||
|
@ -78,6 +78,9 @@ class ShownoticeAction extends OwnerDesignAction
|
|||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
|
if ($this->boolean('ajax')) {
|
||||||
|
StatusNet::setApi(true);
|
||||||
|
}
|
||||||
|
|
||||||
$id = $this->arg('notice');
|
$id = $this->arg('notice');
|
||||||
|
|
||||||
@ -188,6 +191,9 @@ class ShownoticeAction extends OwnerDesignAction
|
|||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
|
|
||||||
|
if ($this->boolean('ajax')) {
|
||||||
|
$this->showAjax();
|
||||||
|
} else {
|
||||||
if ($this->notice->is_local == Notice::REMOTE_OMB) {
|
if ($this->notice->is_local == Notice::REMOTE_OMB) {
|
||||||
if (!empty($this->notice->url)) {
|
if (!empty($this->notice->url)) {
|
||||||
$target = $this->notice->url;
|
$target = $this->notice->url;
|
||||||
@ -205,6 +211,7 @@ class ShownoticeAction extends OwnerDesignAction
|
|||||||
}
|
}
|
||||||
$this->showPage();
|
$this->showPage();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show local navigation
|
* Don't show local navigation
|
||||||
@ -232,6 +239,21 @@ class ShownoticeAction extends OwnerDesignAction
|
|||||||
$this->elementEnd('ol');
|
$this->elementEnd('ol');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showAjax()
|
||||||
|
{
|
||||||
|
header('Content-Type: text/xml;charset=utf-8');
|
||||||
|
$this->xw->startDocument('1.0', 'UTF-8');
|
||||||
|
$this->elementStart('html');
|
||||||
|
$this->elementStart('head');
|
||||||
|
$this->element('title', null, _('Notice'));
|
||||||
|
$this->elementEnd('head');
|
||||||
|
$this->elementStart('body');
|
||||||
|
$nli = new NoticeListItem($this->notice, $this);
|
||||||
|
$nli->show();
|
||||||
|
$this->elementEnd('body');
|
||||||
|
$this->elementEnd('html');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Don't show page notice
|
* Don't show page notice
|
||||||
*
|
*
|
||||||
|
@ -33,7 +33,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
require_once INSTALLDIR.'/lib/personalgroupnav.php';
|
require_once INSTALLDIR.'/lib/personalgroupnav.php';
|
||||||
require_once INSTALLDIR.'/lib/userprofile.php';
|
|
||||||
require_once INSTALLDIR.'/lib/noticelist.php';
|
require_once INSTALLDIR.'/lib/noticelist.php';
|
||||||
require_once INSTALLDIR.'/lib/profileminilist.php';
|
require_once INSTALLDIR.'/lib/profileminilist.php';
|
||||||
require_once INSTALLDIR.'/lib/groupminilist.php';
|
require_once INSTALLDIR.'/lib/groupminilist.php';
|
||||||
@ -100,16 +99,21 @@ class ShowstreamAction extends ProfileAction
|
|||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$this->showProfile();
|
|
||||||
$this->showNotices();
|
$this->showNotices();
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new SubGroupNav($this, $this->user);
|
$nav = new SubGroupNav($this, $this->user);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showProfileBlock()
|
||||||
|
{
|
||||||
|
$block = new AccountProfileBlock($this, $this->profile);
|
||||||
|
$block->show();
|
||||||
|
}
|
||||||
|
|
||||||
function showPageNoticeBlock()
|
function showPageNoticeBlock()
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -193,12 +197,6 @@ class ShowstreamAction extends ProfileAction
|
|||||||
'href' => $rsd));
|
'href' => $rsd));
|
||||||
}
|
}
|
||||||
|
|
||||||
function showProfile()
|
|
||||||
{
|
|
||||||
$profile = new UserProfile($this, $this->user, $this->profile);
|
|
||||||
$profile->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
function showEmptyListMessage()
|
function showEmptyListMessage()
|
||||||
{
|
{
|
||||||
// TRANS: First sentence of empty list message for a stream. $1%s is a user nickname.
|
// TRANS: First sentence of empty list message for a stream. $1%s is a user nickname.
|
||||||
@ -281,6 +279,18 @@ class ShowstreamAction extends ProfileAction
|
|||||||
|
|
||||||
// We don't show the author for a profile, since we already know who it is!
|
// We don't show the author for a profile, since we already know who it is!
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Slightly modified from standard list; the author & avatar are hidden
|
||||||
|
* in CSS. We used to remove them here too, but as it turns out that
|
||||||
|
* confuses the inline reply code... and we hide them in CSS anyway
|
||||||
|
* since realtime updates come through in original form.
|
||||||
|
*
|
||||||
|
* Remaining customization right now is for the repeat marker, where
|
||||||
|
* it'll list who the original poster was instead of who did the repeat
|
||||||
|
* (since the repeater is you, and the repeatee isn't shown!)
|
||||||
|
* This will remain inconsistent if realtime updates come through,
|
||||||
|
* since those'll get rendered as a regular NoticeListItem.
|
||||||
|
*/
|
||||||
class ProfileNoticeList extends NoticeList
|
class ProfileNoticeList extends NoticeList
|
||||||
{
|
{
|
||||||
function newListItem($notice)
|
function newListItem($notice)
|
||||||
@ -291,11 +301,6 @@ class ProfileNoticeList extends NoticeList
|
|||||||
|
|
||||||
class ProfileNoticeListItem extends DoFollowListItem
|
class ProfileNoticeListItem extends DoFollowListItem
|
||||||
{
|
{
|
||||||
function showAuthor()
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* show a link to the author of repeat
|
* show a link to the author of repeat
|
||||||
*
|
*
|
||||||
|
@ -409,7 +409,7 @@ class SmssettingsAction extends SettingsAction
|
|||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($confirm, 'DELETE', __FILE__);
|
common_log_db_error($confirm, 'DELETE', __FILE__);
|
||||||
// TRANS: Server error thrown on database error canceling SMS phone number confirmation.
|
// TRANS: Server error thrown on database error canceling SMS phone number confirmation.
|
||||||
$this->serverError(_('Could not delete email confirmation.'));
|
$this->serverError(_('Could not delete SMS confirmation.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,6 +142,7 @@ class UserauthorizationAction extends Action
|
|||||||
'alt' => $nickname));
|
'alt' => $nickname));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TRANS: Label for nickname on user authorisation page.
|
||||||
$this->element('div', 'entity_nickname', _('Nickname'));
|
$this->element('div', 'entity_nickname', _('Nickname'));
|
||||||
|
|
||||||
$hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
|
$hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
|
||||||
@ -196,12 +197,14 @@ class UserauthorizationAction extends Action
|
|||||||
'userauthorization')));
|
'userauthorization')));
|
||||||
$this->hidden('token', common_session_token());
|
$this->hidden('token', common_session_token());
|
||||||
|
|
||||||
|
$this->submit('accept',
|
||||||
// TRANS: Button text on Authorise Subscription page.
|
// TRANS: Button text on Authorise Subscription page.
|
||||||
$this->submit('accept', _m('BUTTON','Accept'), 'submit accept', null,
|
_m('BUTTON','Accept'), 'submit accept', null,
|
||||||
// TRANS: Title for button on Authorise Subscription page.
|
// TRANS: Title for button on Authorise Subscription page.
|
||||||
_('Subscribe to this user.'));
|
_('Subscribe to this user.'));
|
||||||
|
$this->submit('reject',
|
||||||
// TRANS: Button text on Authorise Subscription page.
|
// TRANS: Button text on Authorise Subscription page.
|
||||||
$this->submit('reject', _m('BUTTON','Reject'), 'submit reject', null,
|
_m('BUTTON','Reject'), 'submit reject', null,
|
||||||
// TRANS: Title for button on Authorise Subscription page.
|
// TRANS: Title for button on Authorise Subscription page.
|
||||||
_('Reject this subscription.'));
|
_('Reject this subscription.'));
|
||||||
$this->elementEnd('form');
|
$this->elementEnd('form');
|
||||||
|
@ -71,6 +71,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
*/
|
*/
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
|
// TRANS: Title for profile design page.
|
||||||
return _('Profile design');
|
return _('Profile design');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +82,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
*/
|
*/
|
||||||
function getInstructions()
|
function getInstructions()
|
||||||
{
|
{
|
||||||
|
// TRANS: Instructions for Profile design page.
|
||||||
return _('Customize the way your profile looks ' .
|
return _('Customize the way your profile looks ' .
|
||||||
'with a background image and a colour palette of your choice.');
|
'with a background image and a colour palette of your choice.');
|
||||||
}
|
}
|
||||||
@ -193,6 +195,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
common_log_db_error($design, 'UPDATE', __FILE__);
|
common_log_db_error($design, 'UPDATE', __FILE__);
|
||||||
|
// TRANS: Form validation error on Profile design page when updating design settings has failed.
|
||||||
$this->showForm(_('Could not update your design.'));
|
$this->showForm(_('Could not update your design.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -215,6 +218,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
common_log_db_error($id, 'INSERT', __FILE__);
|
common_log_db_error($id, 'INSERT', __FILE__);
|
||||||
|
// TRANS: Form validation error on Profile design page when saving design settings has failed.
|
||||||
$this->showForm(_('Unable to save your design settings.'));
|
$this->showForm(_('Unable to save your design settings.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -225,6 +229,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
if (empty($result)) {
|
if (empty($result)) {
|
||||||
common_log_db_error($original, 'UPDATE', __FILE__);
|
common_log_db_error($original, 'UPDATE', __FILE__);
|
||||||
|
// TRANS: Form validation error on Profile design page when saving design settings has failed.
|
||||||
$this->showForm(_('Unable to save your design settings.'));
|
$this->showForm(_('Unable to save your design settings.'));
|
||||||
$user->query('ROLLBACK');
|
$user->query('ROLLBACK');
|
||||||
return;
|
return;
|
||||||
@ -236,6 +241,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
$this->saveBackgroundImage($design);
|
$this->saveBackgroundImage($design);
|
||||||
|
|
||||||
|
// TRANS: Confirmation message on Profile design page when saving design settings has succeeded.
|
||||||
$this->showForm(_('Design preferences saved.'), true);
|
$this->showForm(_('Design preferences saved.'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +252,6 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
*/
|
*/
|
||||||
function sethd()
|
function sethd()
|
||||||
{
|
{
|
||||||
|
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
$design = $user->getDesign();
|
$design = $user->getDesign();
|
||||||
|
|
||||||
@ -267,6 +272,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
common_log_db_error($id, 'INSERT', __FILE__);
|
common_log_db_error($id, 'INSERT', __FILE__);
|
||||||
|
// TRANS: Form validation error on Profile design page when saving design settings has failed.
|
||||||
$this->showForm(_('Unable to save your design settings.'));
|
$this->showForm(_('Unable to save your design settings.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -277,6 +283,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
if (empty($result)) {
|
if (empty($result)) {
|
||||||
common_log_db_error($original, 'UPDATE', __FILE__);
|
common_log_db_error($original, 'UPDATE', __FILE__);
|
||||||
|
// TRANS: Form validation error on Profile design page when updating design settings has failed.
|
||||||
$this->showForm(_('Unable to save your design settings.'));
|
$this->showForm(_('Unable to save your design settings.'));
|
||||||
$user->query('ROLLBACK');
|
$user->query('ROLLBACK');
|
||||||
return;
|
return;
|
||||||
@ -286,6 +293,7 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
$this->saveBackgroundImage($design);
|
$this->saveBackgroundImage($design);
|
||||||
|
|
||||||
|
// TRANS: Succes message on Profile design page when finding an easter egg.
|
||||||
$this->showForm(_('Enjoy your hotdog!'), true);
|
$this->showForm(_('Enjoy your hotdog!'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,7 +311,8 @@ class UserDesignSettingsAction extends DesignSettingsAction
|
|||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
common_log_db_error($user, 'UPDATE', __FILE__);
|
common_log_db_error($user, 'UPDATE', __FILE__);
|
||||||
throw new ServerException(_('Couldn\'t update user.'));
|
// TRANS: Server exception thrown on Profile design page when updating design settings fails.
|
||||||
|
throw new ServerException(_('Could not update user.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,6 +331,7 @@ class UserDesignForm extends DesignForm
|
|||||||
*/
|
*/
|
||||||
function formLegend()
|
function formLegend()
|
||||||
{
|
{
|
||||||
|
// TRANS: Form legend on Profile design page.
|
||||||
$this->out->element('legend', null, _('Design settings'));
|
$this->out->element('legend', null, _('Design settings'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,7 +347,9 @@ class UserDesignForm extends DesignForm
|
|||||||
|
|
||||||
$this->out->elementStart('ul', 'form_data');
|
$this->out->elementStart('ul', 'form_data');
|
||||||
$this->out->elementStart('li');
|
$this->out->elementStart('li');
|
||||||
|
// TRANS: Checkbox label on Profile design page.
|
||||||
$this->out->checkbox('viewdesigns', _('View profile designs'),
|
$this->out->checkbox('viewdesigns', _('View profile designs'),
|
||||||
|
// TRANS: Title for checkbox on Profile design page.
|
||||||
- $user->viewdesigns, _('Show or hide profile designs.'));
|
- $user->viewdesigns, _('Show or hide profile designs.'));
|
||||||
$this->out->elementEnd('li');
|
$this->out->elementEnd('li');
|
||||||
$this->out->elementEnd('ul');
|
$this->out->elementEnd('ul');
|
||||||
@ -345,6 +357,7 @@ class UserDesignForm extends DesignForm
|
|||||||
$this->out->elementEnd('fieldset');
|
$this->out->elementEnd('fieldset');
|
||||||
|
|
||||||
$this->out->elementStart('fieldset');
|
$this->out->elementStart('fieldset');
|
||||||
|
// TRANS: Form legend on Profile design page for form to choose a background image.
|
||||||
$this->out->element('legend', null, _('Background file'));
|
$this->out->element('legend', null, _('Background file'));
|
||||||
|
|
||||||
parent::formData();
|
parent::formData();
|
||||||
|
@ -45,7 +45,6 @@ require_once INSTALLDIR.'/lib/grouplist.php';
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class UsergroupsAction extends OwnerDesignAction
|
class UsergroupsAction extends OwnerDesignAction
|
||||||
{
|
{
|
||||||
var $page = null;
|
var $page = null;
|
||||||
@ -59,10 +58,12 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
if ($this->page == 1) {
|
if ($this->page == 1) {
|
||||||
// TRANS: Message is used as a page title. %s is a nick name.
|
// TRANS: Page title for first page of groups for a user.
|
||||||
|
// TRANS: %s is a nickname.
|
||||||
return sprintf(_('%s groups'), $this->user->nickname);
|
return sprintf(_('%s groups'), $this->user->nickname);
|
||||||
} else {
|
} else {
|
||||||
// TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
|
// TRANS: Page title for all but the first page of groups for a user.
|
||||||
|
// TRANS: %1$s is a nickname, %2$d is a page number.
|
||||||
return sprintf(_('%1$s groups, page %2$d'),
|
return sprintf(_('%1$s groups, page %2$d'),
|
||||||
$this->user->nickname,
|
$this->user->nickname,
|
||||||
$this->page);
|
$this->page);
|
||||||
@ -90,6 +91,7 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
$this->user = User::staticGet('nickname', $nickname);
|
$this->user = User::staticGet('nickname', $nickname);
|
||||||
|
|
||||||
if (!$this->user) {
|
if (!$this->user) {
|
||||||
|
// TRANS: Client error displayed requesting groups for a non-existing user.
|
||||||
$this->clientError(_('No such user.'), 404);
|
$this->clientError(_('No such user.'), 404);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -97,6 +99,7 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
$this->profile = $this->user->getProfile();
|
$this->profile = $this->user->getProfile();
|
||||||
|
|
||||||
if (!$this->profile) {
|
if (!$this->profile) {
|
||||||
|
// TRANS: Server error displayed requesting groups for a user without a profile.
|
||||||
$this->serverError(_('User has no profile.'));
|
$this->serverError(_('User has no profile.'));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -112,7 +115,7 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
$this->showPage();
|
$this->showPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
function showLocalNav()
|
function showObjectNav()
|
||||||
{
|
{
|
||||||
$nav = new SubGroupNav($this, $this->user);
|
$nav = new SubGroupNav($this, $this->user);
|
||||||
$nav->show();
|
$nav->show();
|
||||||
@ -123,12 +126,14 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
$this->elementStart('p', array('id' => 'new_group'));
|
$this->elementStart('p', array('id' => 'new_group'));
|
||||||
$this->element('a', array('href' => common_local_url('newgroup'),
|
$this->element('a', array('href' => common_local_url('newgroup'),
|
||||||
'class' => 'more'),
|
'class' => 'more'),
|
||||||
|
// TRANS: Link text on group page to create a new group.
|
||||||
_('Create a new group'));
|
_('Create a new group'));
|
||||||
$this->elementEnd('p');
|
$this->elementEnd('p');
|
||||||
|
|
||||||
$this->elementStart('p', array('id' => 'group_search'));
|
$this->elementStart('p', array('id' => 'group_search'));
|
||||||
$this->element('a', array('href' => common_local_url('groupsearch'),
|
$this->element('a', array('href' => common_local_url('groupsearch'),
|
||||||
'class' => 'more'),
|
'class' => 'more'),
|
||||||
|
// TRANS: Link text on group page to search for groups.
|
||||||
_('Search for more groups'));
|
_('Search for more groups'));
|
||||||
$this->elementEnd('p');
|
$this->elementEnd('p');
|
||||||
|
|
||||||
@ -156,11 +161,15 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
|
|
||||||
function showEmptyListMessage()
|
function showEmptyListMessage()
|
||||||
{
|
{
|
||||||
|
// TRANS: Text on group page for a user that is not a member of any group.
|
||||||
|
// TRANS: %s is a user nickname.
|
||||||
$message = sprintf(_('%s is not a member of any group.'), $this->user->nickname) . ' ';
|
$message = sprintf(_('%s is not a member of any group.'), $this->user->nickname) . ' ';
|
||||||
|
|
||||||
if (common_logged_in()) {
|
if (common_logged_in()) {
|
||||||
$current_user = common_current_user();
|
$current_user = common_current_user();
|
||||||
if ($this->user->id === $current_user->id) {
|
if ($this->user->id === $current_user->id) {
|
||||||
|
// TRANS: Text on group page for a user that is not a member of any group. This message contains
|
||||||
|
// TRANS: a Markdown link in the form [link text](link) and a variable that should not be changed.
|
||||||
$message .= _('Try [searching for groups](%%action.groupsearch%%) and joining them.');
|
$message .= _('Try [searching for groups](%%action.groupsearch%%) and joining them.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -168,4 +177,10 @@ class UsergroupsAction extends OwnerDesignAction
|
|||||||
$this->raw(common_markup_to_html($message));
|
$this->raw(common_markup_to_html($message));
|
||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showProfileBlock()
|
||||||
|
{
|
||||||
|
$block = new AccountProfileBlock($this, $this->profile);
|
||||||
|
$block->show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
|
|||||||
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
* @link http://status.net/
|
* @link http://status.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class VersionAction extends Action
|
class VersionAction extends Action
|
||||||
{
|
{
|
||||||
var $pluginVersions = array();
|
var $pluginVersions = array();
|
||||||
@ -58,7 +57,6 @@ class VersionAction extends Action
|
|||||||
*
|
*
|
||||||
* @return boolean is read only action?
|
* @return boolean is read only action?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function isReadOnly($args)
|
function isReadOnly($args)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@ -69,9 +67,9 @@ class VersionAction extends Action
|
|||||||
*
|
*
|
||||||
* @return string page title
|
* @return string page title
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
{
|
{
|
||||||
|
// TRANS: Title for version page. %s is the StatusNet version.
|
||||||
return sprintf(_("StatusNet %s"), STATUSNET_VERSION);
|
return sprintf(_("StatusNet %s"), STATUSNET_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +83,6 @@ class VersionAction extends Action
|
|||||||
*
|
*
|
||||||
* @return boolean true
|
* @return boolean true
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function prepare($args)
|
function prepare($args)
|
||||||
{
|
{
|
||||||
parent::prepare($args);
|
parent::prepare($args);
|
||||||
@ -105,7 +102,6 @@ class VersionAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function handle($args)
|
function handle($args)
|
||||||
{
|
{
|
||||||
parent::handle($args);
|
parent::handle($args);
|
||||||
@ -131,7 +127,6 @@ class VersionAction extends Action
|
|||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Overrride to add entry-title class
|
* Overrride to add entry-title class
|
||||||
*
|
*
|
||||||
@ -147,38 +142,46 @@ class VersionAction extends Action
|
|||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$this->elementStart('p');
|
$this->elementStart('p');
|
||||||
|
|
||||||
|
// TRANS: Content part of StatusNet version page.
|
||||||
|
// TRANS: %1$s is the engine name (StatusNet) and %2$s is the StatusNet version.
|
||||||
$this->raw(sprintf(_('This site is powered by %1$s version %2$s, '.
|
$this->raw(sprintf(_('This site is powered by %1$s version %2$s, '.
|
||||||
'Copyright 2008-2010 StatusNet, Inc. '.
|
'Copyright 2008-2010 StatusNet, Inc. '.
|
||||||
'and contributors.'),
|
'and contributors.'),
|
||||||
XMLStringer::estring('a', array('href' => 'http://status.net/'),
|
XMLStringer::estring('a', array('href' => 'http://status.net/'),
|
||||||
|
// TRANS: Engine name.
|
||||||
_('StatusNet')),
|
_('StatusNet')),
|
||||||
STATUSNET_VERSION));
|
STATUSNET_VERSION));
|
||||||
$this->elementEnd('p');
|
$this->elementEnd('p');
|
||||||
|
|
||||||
|
// TRANS: Header for StatusNet contributors section on the version page.
|
||||||
$this->element('h2', null, _('Contributors'));
|
$this->element('h2', null, _('Contributors'));
|
||||||
|
|
||||||
$this->element('p', null, implode(', ', $this->contributors));
|
$this->element('p', null, implode(', ', $this->contributors));
|
||||||
|
|
||||||
|
// TRANS: Header for StatusNet license section on the version page.
|
||||||
$this->element('h2', null, _('License'));
|
$this->element('h2', null, _('License'));
|
||||||
|
|
||||||
$this->element('p', null,
|
$this->element('p', null,
|
||||||
|
// TRANS: Content part of StatusNet version page.
|
||||||
_('StatusNet is free software: you can redistribute it and/or modify '.
|
_('StatusNet is free software: you can redistribute it and/or modify '.
|
||||||
'it under the terms of the GNU Affero General Public License as published by '.
|
'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 '.
|
'the Free Software Foundation, either version 3 of the License, or '.
|
||||||
'(at your option) any later version. '));
|
'(at your option) any later version. '));
|
||||||
|
|
||||||
$this->element('p', null,
|
$this->element('p', null,
|
||||||
|
// TRANS: Content part of StatusNet version page.
|
||||||
_('This program is distributed in the hope that it will be useful, '.
|
_('This program is distributed in the hope that it will be useful, '.
|
||||||
'but WITHOUT ANY WARRANTY; without even the implied warranty of '.
|
'but WITHOUT ANY WARRANTY; without even the implied warranty of '.
|
||||||
'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the '.
|
'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the '.
|
||||||
'GNU Affero General Public License for more details. '));
|
'GNU Affero General Public License for more details. '));
|
||||||
|
|
||||||
$this->elementStart('p');
|
$this->elementStart('p');
|
||||||
|
// TRANS: Content part of StatusNet version page.
|
||||||
|
// TRANS: %s is a link to the AGPL license with link description "http://www.gnu.org/licenses/agpl.html".
|
||||||
$this->raw(sprintf(_('You should have received a copy of the GNU Affero General Public License '.
|
$this->raw(sprintf(_('You should have received a copy of the GNU Affero General Public License '.
|
||||||
'along with this program. If not, see %s.'),
|
'along with this program. If not, see %s.'),
|
||||||
XMLStringer::estring('a', array('href' => 'http://www.gnu.org/licenses/agpl.html'),
|
XMLStringer::estring('a', array('href' => 'http://www.gnu.org/licenses/agpl.html'),
|
||||||
@ -188,16 +191,21 @@ class VersionAction extends Action
|
|||||||
// XXX: Theme information?
|
// XXX: Theme information?
|
||||||
|
|
||||||
if (count($this->pluginVersions)) {
|
if (count($this->pluginVersions)) {
|
||||||
|
// TRANS: Header for StatusNet plugins section on the version page.
|
||||||
$this->element('h2', null, _('Plugins'));
|
$this->element('h2', null, _('Plugins'));
|
||||||
|
|
||||||
$this->elementStart('table', array('id' => 'plugins_enabled'));
|
$this->elementStart('table', array('id' => 'plugins_enabled'));
|
||||||
|
|
||||||
$this->elementStart('thead');
|
$this->elementStart('thead');
|
||||||
$this->elementStart('tr');
|
$this->elementStart('tr');
|
||||||
$this->element('th', array('id' => 'plugin_name'), _('Name'));
|
// TRANS: Column header for plugins table on version page.
|
||||||
$this->element('th', array('id' => 'plugin_version'), _('Version'));
|
$this->element('th', array('id' => 'plugin_name'), _m('HEADER','Name'));
|
||||||
$this->element('th', array('id' => 'plugin_authors'), _('Author(s)'));
|
// TRANS: Column header for plugins table on version page.
|
||||||
$this->element('th', array('id' => 'plugin_description'), _('Description'));
|
$this->element('th', array('id' => 'plugin_version'), _m('HEADER','Version'));
|
||||||
|
// TRANS: Column header for plugins table on version page.
|
||||||
|
$this->element('th', array('id' => 'plugin_authors'), _m('HEADER','Author(s)'));
|
||||||
|
// TRANS: Column header for plugins table on version page.
|
||||||
|
$this->element('th', array('id' => 'plugin_description'), _m('HEADER','Description'));
|
||||||
$this->elementEnd('tr');
|
$this->elementEnd('tr');
|
||||||
$this->elementEnd('thead');
|
$this->elementEnd('thead');
|
||||||
|
|
||||||
@ -269,5 +277,6 @@ class VersionAction extends Action
|
|||||||
'mEDI',
|
'mEDI',
|
||||||
'Brett Taylor',
|
'Brett Taylor',
|
||||||
'Brigitte Schuster',
|
'Brigitte Schuster',
|
||||||
'Brion Vibber');
|
'Brion Vibber',
|
||||||
|
'Siebrand Mazeland');
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,7 @@ class Fave extends Memcached_DataObject
|
|||||||
common_log_db_error($fave, 'INSERT', __FILE__);
|
common_log_db_error($fave, 'INSERT', __FILE__);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
self::blow('fave:by_notice:%d', $fave->notice_id);
|
||||||
|
|
||||||
Event::handle('EndFavorNotice', array($profile, $notice));
|
Event::handle('EndFavorNotice', array($profile, $notice));
|
||||||
}
|
}
|
||||||
@ -61,6 +62,7 @@ class Fave extends Memcached_DataObject
|
|||||||
if (Event::handle('StartDisfavorNotice', array($profile, $notice, &$result))) {
|
if (Event::handle('StartDisfavorNotice', array($profile, $notice, &$result))) {
|
||||||
|
|
||||||
$result = parent::delete();
|
$result = parent::delete();
|
||||||
|
self::blow('fave:by_notice:%d', $this->notice_id);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
Event::handle('EndDisfavorNotice', array($profile, $notice));
|
Event::handle('EndDisfavorNotice', array($profile, $notice));
|
||||||
@ -208,4 +210,31 @@ class Fave extends Memcached_DataObject
|
|||||||
|
|
||||||
return $fav;
|
return $fav;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grab a list of profile who have favored this notice.
|
||||||
|
*
|
||||||
|
* @return ArrayWrapper masquerading as a Fave
|
||||||
|
*/
|
||||||
|
static function byNotice($noticeId)
|
||||||
|
{
|
||||||
|
$c = self::memcache();
|
||||||
|
$key = Cache::key('fave:by_notice:' . $noticeId);
|
||||||
|
|
||||||
|
$wrapper = $c->get($key);
|
||||||
|
if (!$wrapper) {
|
||||||
|
// @fixme caching & scalability!
|
||||||
|
$fave = new Fave();
|
||||||
|
$fave->notice_id = $noticeId;
|
||||||
|
$fave->find();
|
||||||
|
|
||||||
|
$list = array();
|
||||||
|
while ($fave->fetch()) {
|
||||||
|
$list[] = clone($fave);
|
||||||
|
}
|
||||||
|
$wrapper = new ArrayWrapper($list);
|
||||||
|
$c->set($key, $wrapper);
|
||||||
|
}
|
||||||
|
return $wrapper;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,7 @@ class Notice extends Memcached_DataObject
|
|||||||
public $location_id; // int(4)
|
public $location_id; // int(4)
|
||||||
public $location_ns; // int(4)
|
public $location_ns; // int(4)
|
||||||
public $repeat_of; // int(4)
|
public $repeat_of; // int(4)
|
||||||
|
public $object_type; // varchar(255)
|
||||||
|
|
||||||
/* Static get */
|
/* Static get */
|
||||||
function staticGet($k,$v=NULL)
|
function staticGet($k,$v=NULL)
|
||||||
@ -241,6 +242,7 @@ class Notice extends Memcached_DataObject
|
|||||||
* array 'urls' list of attached/referred URLs to save with the
|
* array 'urls' list of attached/referred URLs to save with the
|
||||||
* notice in place of extracting links from content
|
* notice in place of extracting links from content
|
||||||
* boolean 'distribute' whether to distribute the notice, default true
|
* boolean 'distribute' whether to distribute the notice, default true
|
||||||
|
* string 'object_type' URL of the associated object type (default ActivityObject::NOTE)
|
||||||
*
|
*
|
||||||
* @fixme tag override
|
* @fixme tag override
|
||||||
*
|
*
|
||||||
@ -360,6 +362,12 @@ class Notice extends Memcached_DataObject
|
|||||||
$notice->rendered = common_render_content($final, $notice);
|
$notice->rendered = common_render_content($final, $notice);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($object_type)) {
|
||||||
|
$notice->object_type = (empty($notice->reply_to)) ? ActivityObject::NOTE : ActivityObject::COMMENT;
|
||||||
|
} else {
|
||||||
|
$notice->object_type = $object_type;
|
||||||
|
}
|
||||||
|
|
||||||
if (Event::handle('StartNoticeSave', array(&$notice))) {
|
if (Event::handle('StartNoticeSave', array(&$notice))) {
|
||||||
|
|
||||||
// XXX: some of these functions write to the DB
|
// XXX: some of these functions write to the DB
|
||||||
@ -494,6 +502,13 @@ class Notice extends Memcached_DataObject
|
|||||||
if ($this->isPublic()) {
|
if ($this->isPublic()) {
|
||||||
self::blow('public;last');
|
self::blow('public;last');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self::blow('fave:by_notice', $this->id);
|
||||||
|
|
||||||
|
if ($this->conversation) {
|
||||||
|
// In case we're the first, will need to calc a new root.
|
||||||
|
self::blow('notice:conversation_root:%d', $this->conversation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** save all urls in the notice to the db
|
/** save all urls in the notice to the db
|
||||||
@ -772,6 +787,35 @@ class Notice extends Memcached_DataObject
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grab the earliest notice from this conversation.
|
||||||
|
*
|
||||||
|
* @return Notice or null
|
||||||
|
*/
|
||||||
|
function conversationRoot()
|
||||||
|
{
|
||||||
|
if (!empty($this->conversation)) {
|
||||||
|
$c = self::memcache();
|
||||||
|
|
||||||
|
$key = Cache::key('notice:conversation_root:' . $this->conversation);
|
||||||
|
$notice = $c->get($key);
|
||||||
|
if ($notice) {
|
||||||
|
return $notice;
|
||||||
|
}
|
||||||
|
|
||||||
|
$notice = new Notice();
|
||||||
|
$notice->conversation = $this->conversation;
|
||||||
|
$notice->orderBy('CREATED');
|
||||||
|
$notice->limit(1);
|
||||||
|
$notice->find(true);
|
||||||
|
|
||||||
|
if ($notice->N) {
|
||||||
|
$c->set($key, $notice);
|
||||||
|
return $notice;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Pull up a full list of local recipients who will be getting
|
* Pull up a full list of local recipients who will be getting
|
||||||
* this notice in their inbox. Results will be cached, so don't
|
* this notice in their inbox. Results will be cached, so don't
|
||||||
@ -811,6 +855,9 @@ class Notice extends Memcached_DataObject
|
|||||||
|
|
||||||
$ni = array();
|
$ni = array();
|
||||||
|
|
||||||
|
// Give plugins a chance to add folks in at start...
|
||||||
|
if (Event::handle('StartNoticeWhoGets', array($this, &$ni))) {
|
||||||
|
|
||||||
foreach ($users as $id) {
|
foreach ($users as $id) {
|
||||||
$ni[$id] = NOTICE_INBOX_SOURCE_SUB;
|
$ni[$id] = NOTICE_INBOX_SOURCE_SUB;
|
||||||
}
|
}
|
||||||
@ -840,7 +887,6 @@ class Notice extends Memcached_DataObject
|
|||||||
if (!array_key_exists($recipient, $ni)) {
|
if (!array_key_exists($recipient, $ni)) {
|
||||||
$ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY;
|
$ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Exclude any deleted, non-local, or blocking recipients.
|
// Exclude any deleted, non-local, or blocking recipients.
|
||||||
$profile = $this->getProfile();
|
$profile = $this->getProfile();
|
||||||
@ -860,6 +906,10 @@ class Notice extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Give plugins a chance to filter out...
|
||||||
|
Event::handle('EndNoticeWhoGets', array($this, &$ni));
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($c)) {
|
if (!empty($c)) {
|
||||||
// XXX: pack this data better
|
// XXX: pack this data better
|
||||||
$c->set(Cache::key('notice:who_gets:'.$this->id), $ni);
|
$c->set(Cache::key('notice:who_gets:'.$this->id), $ni);
|
||||||
@ -2106,6 +2156,11 @@ class Notice extends Memcached_DataObject
|
|||||||
$this->is_local == Notice::LOCAL_NONPUBLIC);
|
$this->is_local == Notice::LOCAL_NONPUBLIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of hash tags saved with this notice.
|
||||||
|
*
|
||||||
|
* @return array of strings
|
||||||
|
*/
|
||||||
public function getTags()
|
public function getTags()
|
||||||
{
|
{
|
||||||
$tags = array();
|
$tags = array();
|
||||||
|
@ -336,6 +336,7 @@ lon = 1
|
|||||||
location_id = 1
|
location_id = 1
|
||||||
location_ns = 1
|
location_ns = 1
|
||||||
repeat_of = 1
|
repeat_of = 1
|
||||||
|
object_type = 2
|
||||||
|
|
||||||
[notice__keys]
|
[notice__keys]
|
||||||
id = N
|
id = N
|
||||||
|
@ -201,6 +201,7 @@ $schema['notice'] = array(
|
|||||||
'location_id' => array('type' => 'int', 'description' => 'location id if possible'),
|
'location_id' => array('type' => 'int', 'description' => 'location id if possible'),
|
||||||
'location_ns' => array('type' => 'int', 'description' => 'namespace for location'),
|
'location_ns' => array('type' => 'int', 'description' => 'namespace for location'),
|
||||||
'repeat_of' => array('type' => 'int', 'description' => 'notice this is a repeat of'),
|
'repeat_of' => array('type' => 'int', 'description' => 'notice this is a repeat of'),
|
||||||
|
'object_type' => array('type' => 'varchar', 'length' => 255, 'description' => 'URI representing activity streams object type', 'default' => 'http://activitystrea.ms/schema/1.0/note'),
|
||||||
),
|
),
|
||||||
'primary key' => array('id'),
|
'primary key' => array('id'),
|
||||||
'unique keys' => array(
|
'unique keys' => array(
|
||||||
|
BIN
favicon.ico
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
js/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
Normal file
After Width: | Height: | Size: 180 B |
BIN
js/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
Normal file
After Width: | Height: | Size: 178 B |
BIN
js/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
Normal file
After Width: | Height: | Size: 120 B |
BIN
js/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
Normal file
After Width: | Height: | Size: 105 B |
BIN
js/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
Normal file
After Width: | Height: | Size: 111 B |
BIN
js/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
Normal file
After Width: | Height: | Size: 110 B |
BIN
js/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
Normal file
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 101 B |
BIN
js/css/smoothness/images/ui-icons_222222_256x240.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
js/css/smoothness/images/ui-icons_2e83ff_256x240.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
js/css/smoothness/images/ui-icons_454545_256x240.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
js/css/smoothness/images/ui-icons_888888_256x240.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
js/css/smoothness/images/ui-icons_cd0a0a_256x240.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
573
js/css/smoothness/jquery-ui.css
vendored
Normal file
@ -0,0 +1,573 @@
|
|||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Layout helpers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-helper-hidden { display: none; }
|
||||||
|
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||||
|
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||||
|
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
||||||
|
.ui-helper-clearfix { display: inline-block; }
|
||||||
|
/* required comment for clearfix to work in Opera \*/
|
||||||
|
* html .ui-helper-clearfix { height:1%; }
|
||||||
|
.ui-helper-clearfix { display:block; }
|
||||||
|
/* end clearfix */
|
||||||
|
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||||
|
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-disabled { cursor: default !important; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI CSS Framework 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Theming/API
|
||||||
|
*
|
||||||
|
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Component containers
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
|
||||||
|
.ui-widget .ui-widget { font-size: 1em; }
|
||||||
|
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
|
||||||
|
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
|
||||||
|
.ui-widget-content a { color: #222222; }
|
||||||
|
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
|
||||||
|
.ui-widget-header a { color: #222222; }
|
||||||
|
|
||||||
|
/* Interaction states
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
|
||||||
|
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
|
||||||
|
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||||
|
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
|
||||||
|
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
|
||||||
|
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
|
||||||
|
.ui-widget :active { outline: none; }
|
||||||
|
|
||||||
|
/* Interaction Cues
|
||||||
|
----------------------------------*/
|
||||||
|
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
|
||||||
|
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||||
|
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
|
||||||
|
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
|
||||||
|
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
|
||||||
|
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||||
|
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||||
|
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||||
|
|
||||||
|
/* Icons
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* states and images */
|
||||||
|
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||||
|
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||||
|
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||||
|
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
||||||
|
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||||
|
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||||
|
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||||
|
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||||
|
|
||||||
|
/* positioning */
|
||||||
|
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||||
|
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||||
|
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||||
|
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||||
|
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||||
|
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||||
|
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||||
|
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||||
|
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||||
|
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||||
|
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||||
|
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||||
|
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||||
|
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||||
|
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||||
|
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||||
|
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||||
|
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||||
|
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||||
|
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||||
|
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||||
|
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||||
|
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||||
|
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||||
|
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||||
|
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||||
|
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||||
|
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||||
|
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||||
|
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||||
|
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||||
|
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||||
|
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||||
|
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||||
|
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||||
|
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||||
|
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||||
|
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||||
|
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||||
|
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||||
|
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||||
|
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||||
|
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||||
|
.ui-icon-extlink { background-position: -32px -80px; }
|
||||||
|
.ui-icon-newwin { background-position: -48px -80px; }
|
||||||
|
.ui-icon-refresh { background-position: -64px -80px; }
|
||||||
|
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||||
|
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||||
|
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||||
|
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||||
|
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||||
|
.ui-icon-document { background-position: -32px -96px; }
|
||||||
|
.ui-icon-document-b { background-position: -48px -96px; }
|
||||||
|
.ui-icon-note { background-position: -64px -96px; }
|
||||||
|
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||||
|
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||||
|
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||||
|
.ui-icon-comment { background-position: -128px -96px; }
|
||||||
|
.ui-icon-person { background-position: -144px -96px; }
|
||||||
|
.ui-icon-print { background-position: -160px -96px; }
|
||||||
|
.ui-icon-trash { background-position: -176px -96px; }
|
||||||
|
.ui-icon-locked { background-position: -192px -96px; }
|
||||||
|
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||||
|
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||||
|
.ui-icon-tag { background-position: -240px -96px; }
|
||||||
|
.ui-icon-home { background-position: 0 -112px; }
|
||||||
|
.ui-icon-flag { background-position: -16px -112px; }
|
||||||
|
.ui-icon-calendar { background-position: -32px -112px; }
|
||||||
|
.ui-icon-cart { background-position: -48px -112px; }
|
||||||
|
.ui-icon-pencil { background-position: -64px -112px; }
|
||||||
|
.ui-icon-clock { background-position: -80px -112px; }
|
||||||
|
.ui-icon-disk { background-position: -96px -112px; }
|
||||||
|
.ui-icon-calculator { background-position: -112px -112px; }
|
||||||
|
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||||
|
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||||
|
.ui-icon-search { background-position: -160px -112px; }
|
||||||
|
.ui-icon-wrench { background-position: -176px -112px; }
|
||||||
|
.ui-icon-gear { background-position: -192px -112px; }
|
||||||
|
.ui-icon-heart { background-position: -208px -112px; }
|
||||||
|
.ui-icon-star { background-position: -224px -112px; }
|
||||||
|
.ui-icon-link { background-position: -240px -112px; }
|
||||||
|
.ui-icon-cancel { background-position: 0 -128px; }
|
||||||
|
.ui-icon-plus { background-position: -16px -128px; }
|
||||||
|
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||||
|
.ui-icon-minus { background-position: -48px -128px; }
|
||||||
|
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||||
|
.ui-icon-close { background-position: -80px -128px; }
|
||||||
|
.ui-icon-closethick { background-position: -96px -128px; }
|
||||||
|
.ui-icon-key { background-position: -112px -128px; }
|
||||||
|
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||||
|
.ui-icon-scissors { background-position: -144px -128px; }
|
||||||
|
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||||
|
.ui-icon-copy { background-position: -176px -128px; }
|
||||||
|
.ui-icon-contact { background-position: -192px -128px; }
|
||||||
|
.ui-icon-image { background-position: -208px -128px; }
|
||||||
|
.ui-icon-video { background-position: -224px -128px; }
|
||||||
|
.ui-icon-script { background-position: -240px -128px; }
|
||||||
|
.ui-icon-alert { background-position: 0 -144px; }
|
||||||
|
.ui-icon-info { background-position: -16px -144px; }
|
||||||
|
.ui-icon-notice { background-position: -32px -144px; }
|
||||||
|
.ui-icon-help { background-position: -48px -144px; }
|
||||||
|
.ui-icon-check { background-position: -64px -144px; }
|
||||||
|
.ui-icon-bullet { background-position: -80px -144px; }
|
||||||
|
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||||
|
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||||
|
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||||
|
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||||
|
.ui-icon-play { background-position: 0 -160px; }
|
||||||
|
.ui-icon-pause { background-position: -16px -160px; }
|
||||||
|
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||||
|
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||||
|
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||||
|
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||||
|
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||||
|
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||||
|
.ui-icon-stop { background-position: -96px -160px; }
|
||||||
|
.ui-icon-eject { background-position: -112px -160px; }
|
||||||
|
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||||
|
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||||
|
.ui-icon-power { background-position: 0 -176px; }
|
||||||
|
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||||
|
.ui-icon-signal { background-position: -32px -176px; }
|
||||||
|
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||||
|
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||||
|
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||||
|
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||||
|
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||||
|
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||||
|
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||||
|
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||||
|
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||||
|
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||||
|
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||||
|
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||||
|
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||||
|
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||||
|
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||||
|
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||||
|
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||||
|
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||||
|
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||||
|
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||||
|
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||||
|
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||||
|
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||||
|
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||||
|
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||||
|
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||||
|
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||||
|
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||||
|
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||||
|
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||||
|
|
||||||
|
|
||||||
|
/* Misc visuals
|
||||||
|
----------------------------------*/
|
||||||
|
|
||||||
|
/* Corner radius */
|
||||||
|
.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||||
|
.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||||
|
.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||||
|
.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||||
|
.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||||
|
.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||||
|
.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||||
|
.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||||
|
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
|
||||||
|
|
||||||
|
/* Overlays */
|
||||||
|
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
|
||||||
|
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
|
||||||
|
* jQuery UI Resizable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Resizable#theming
|
||||||
|
*/
|
||||||
|
.ui-resizable { position: relative;}
|
||||||
|
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
||||||
|
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||||
|
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||||
|
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||||
|
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||||
|
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||||
|
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||||
|
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||||
|
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||||
|
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
|
||||||
|
* jQuery UI Selectable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Selectable#theming
|
||||||
|
*/
|
||||||
|
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Accordion 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Accordion#theming
|
||||||
|
*/
|
||||||
|
/* IE/Win - Fix animation bug - #4615 */
|
||||||
|
.ui-accordion { width: 100%; }
|
||||||
|
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||||
|
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||||
|
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||||
|
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
|
||||||
|
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
|
||||||
|
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
|
||||||
|
.ui-accordion .ui-accordion-content-active { display: block; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Autocomplete 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Autocomplete#theming
|
||||||
|
*/
|
||||||
|
.ui-autocomplete { position: absolute; cursor: default; }
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* jQuery UI Menu 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Menu#theming
|
||||||
|
*/
|
||||||
|
.ui-menu {
|
||||||
|
list-style:none;
|
||||||
|
padding: 2px;
|
||||||
|
margin: 0;
|
||||||
|
display:block;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu {
|
||||||
|
margin-top: -3px;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item {
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
zoom: 1;
|
||||||
|
float: left;
|
||||||
|
clear: left;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item a {
|
||||||
|
text-decoration:none;
|
||||||
|
display:block;
|
||||||
|
padding:.2em .4em;
|
||||||
|
line-height:1.5;
|
||||||
|
zoom:1;
|
||||||
|
}
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-hover,
|
||||||
|
.ui-menu .ui-menu-item a.ui-state-active {
|
||||||
|
font-weight: normal;
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* jQuery UI Button 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Button#theming
|
||||||
|
*/
|
||||||
|
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
||||||
|
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
||||||
|
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
||||||
|
.ui-button-icons-only { width: 3.4em; }
|
||||||
|
button.ui-button-icons-only { width: 3.7em; }
|
||||||
|
|
||||||
|
/*button text element */
|
||||||
|
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
||||||
|
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
||||||
|
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
||||||
|
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
||||||
|
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
||||||
|
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
||||||
|
/* no icon support for input elements, provide padding by default */
|
||||||
|
input.ui-button { padding: .4em 1em; }
|
||||||
|
|
||||||
|
/*button icon element(s) */
|
||||||
|
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
||||||
|
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
||||||
|
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||||
|
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||||
|
|
||||||
|
/*button sets*/
|
||||||
|
.ui-buttonset { margin-right: 7px; }
|
||||||
|
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
||||||
|
|
||||||
|
/* workarounds */
|
||||||
|
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
||||||
|
/*
|
||||||
|
* jQuery UI Dialog 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Dialog#theming
|
||||||
|
*/
|
||||||
|
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
|
||||||
|
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
||||||
|
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||||
|
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
|
||||||
|
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
|
||||||
|
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||||
|
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Slider 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Slider#theming
|
||||||
|
*/
|
||||||
|
.ui-slider { position: relative; text-align: left; }
|
||||||
|
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||||
|
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
|
||||||
|
|
||||||
|
.ui-slider-horizontal { height: .8em; }
|
||||||
|
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||||
|
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||||
|
|
||||||
|
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||||
|
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||||
|
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||||
|
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||||
|
.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
|
||||||
|
* jQuery UI Tabs 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Tabs#theming
|
||||||
|
*/
|
||||||
|
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||||
|
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
||||||
|
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
||||||
|
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
||||||
|
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||||
|
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||||
|
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
||||||
|
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||||
|
/*
|
||||||
|
* jQuery UI Datepicker 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Datepicker#theming
|
||||||
|
*/
|
||||||
|
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
||||||
|
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||||
|
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||||
|
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||||
|
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||||
|
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
||||||
|
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||||
|
.ui-datepicker select.ui-datepicker-month,
|
||||||
|
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||||
|
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||||
|
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||||
|
.ui-datepicker td { border: 0; padding: 1px; }
|
||||||
|
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||||
|
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||||
|
|
||||||
|
/* with multiple calendars */
|
||||||
|
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||||
|
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||||
|
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||||
|
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||||
|
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||||
|
.ui-datepicker-row-break { clear:both; width:100%; }
|
||||||
|
|
||||||
|
/* RTL support */
|
||||||
|
.ui-datepicker-rtl { direction: rtl; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||||
|
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||||
|
|
||||||
|
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||||
|
.ui-datepicker-cover {
|
||||||
|
display: none; /*sorry for IE5*/
|
||||||
|
display/**/: block; /*sorry for IE5*/
|
||||||
|
position: absolute; /*must have*/
|
||||||
|
z-index: -1; /*must have*/
|
||||||
|
filter: mask(); /*must have*/
|
||||||
|
top: -4px; /*must have*/
|
||||||
|
left: -4px; /*must have*/
|
||||||
|
width: 200px; /*must have*/
|
||||||
|
height: 200px; /*must have*/
|
||||||
|
}/*
|
||||||
|
* jQuery UI Progressbar 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Progressbar#theming
|
||||||
|
*/
|
||||||
|
.ui-progressbar { height:2em; text-align: left; }
|
||||||
|
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
|
782
js/jquery-ui.min.js
vendored
Normal file
@ -0,0 +1,782 @@
|
|||||||
|
/*!
|
||||||
|
* jQuery UI 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI
|
||||||
|
*/
|
||||||
|
(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.10",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
|
||||||
|
NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
|
||||||
|
"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
|
||||||
|
if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
|
||||||
|
"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
|
||||||
|
d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
|
||||||
|
c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
|
||||||
|
b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
|
||||||
|
;/*!
|
||||||
|
* jQuery UI Widget 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Widget
|
||||||
|
*/
|
||||||
|
(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
|
||||||
|
a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
|
||||||
|
e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
|
||||||
|
this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
|
||||||
|
widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
|
||||||
|
enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
|
||||||
|
;/*!
|
||||||
|
* jQuery UI Mouse 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Mouse
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(true===c.data(b.target,a.widgetName+".preventClickEvent")){c.removeData(b.target,a.widgetName+".preventClickEvent");b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
|
||||||
|
a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
|
||||||
|
this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);
|
||||||
|
return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",
|
||||||
|
true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Position 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Position
|
||||||
|
*/
|
||||||
|
(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
|
||||||
|
left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
|
||||||
|
k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
|
||||||
|
m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
|
||||||
|
d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
|
||||||
|
a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
|
||||||
|
g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Draggable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Draggables
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
|
||||||
|
"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
|
||||||
|
this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
|
||||||
|
this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
|
||||||
|
d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
|
||||||
|
this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&
|
||||||
|
this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
|
||||||
|
a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
|
||||||
|
0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
|
||||||
|
this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
|
||||||
|
(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
|
||||||
|
"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?
|
||||||
|
0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
|
||||||
|
10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==
|
||||||
|
Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
|
||||||
|
f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;
|
||||||
|
if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/
|
||||||
|
b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-
|
||||||
|
this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=
|
||||||
|
this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.10"});
|
||||||
|
d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=
|
||||||
|
0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=
|
||||||
|
c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,
|
||||||
|
true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=
|
||||||
|
0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=
|
||||||
|
a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},
|
||||||
|
stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=
|
||||||
|
document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-
|
||||||
|
c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-
|
||||||
|
(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable",
|
||||||
|
"snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=
|
||||||
|
c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",
|
||||||
|
{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,
|
||||||
|
left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,
|
||||||
|
a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,
|
||||||
|
b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Droppable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Droppables
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.draggable.js
|
||||||
|
*/
|
||||||
|
(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
|
||||||
|
a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
|
||||||
|
this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
|
||||||
|
this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
|
||||||
|
d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
|
||||||
|
a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.10"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
|
||||||
|
switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
|
||||||
|
i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
|
||||||
|
"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
|
||||||
|
a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
|
||||||
|
d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Resizable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Resizables
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
|
||||||
|
_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
|
||||||
|
top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
|
||||||
|
this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
|
||||||
|
nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
|
||||||
|
String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
|
||||||
|
this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
|
||||||
|
if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
|
||||||
|
d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
|
||||||
|
this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
|
||||||
|
this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
|
||||||
|
b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
|
||||||
|
f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");
|
||||||
|
this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=
|
||||||
|
null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+
|
||||||
|
this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=
|
||||||
|
[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=
|
||||||
|
this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,
|
||||||
|
a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,
|
||||||
|
c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,
|
||||||
|
originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.10"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=
|
||||||
|
b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width",
|
||||||
|
"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};
|
||||||
|
if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-
|
||||||
|
g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,
|
||||||
|
height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=
|
||||||
|
e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,
|
||||||
|
d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?
|
||||||
|
d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=
|
||||||
|
a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&
|
||||||
|
/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");
|
||||||
|
b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/
|
||||||
|
(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Selectable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Selectables
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
|
||||||
|
selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
|
||||||
|
c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
|
||||||
|
c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
|
||||||
|
this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
|
||||||
|
a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
|
||||||
|
!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
|
||||||
|
e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.10"})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Sortable 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Sortables
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
|
||||||
|
this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
|
||||||
|
arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
|
||||||
|
c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
|
||||||
|
{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
|
||||||
|
if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
|
||||||
|
a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
|
||||||
|
if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
|
||||||
|
this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
|
||||||
|
b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
|
||||||
|
"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
|
||||||
|
c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
|
||||||
|
document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-
|
||||||
|
1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});
|
||||||
|
this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&
|
||||||
|
a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?
|
||||||
|
"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?
|
||||||
|
c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;
|
||||||
|
return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=
|
||||||
|
d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});
|
||||||
|
return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=
|
||||||
|
d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=
|
||||||
|
this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=
|
||||||
|
e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
|
||||||
|
if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);
|
||||||
|
c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===
|
||||||
|
1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=
|
||||||
|
this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):
|
||||||
|
b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==
|
||||||
|
""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
|
||||||
|
this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
|
||||||
|
10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions=
|
||||||
|
{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||
|
||||||
|
document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,
|
||||||
|
b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=
|
||||||
|
document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
|
||||||
|
e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
|
||||||
|
this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<
|
||||||
|
this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&
|
||||||
|
this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=
|
||||||
|
this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();
|
||||||
|
this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],
|
||||||
|
this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",
|
||||||
|
g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||
|
||||||
|
this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,
|
||||||
|
originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.10"})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Accordion 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Accordion
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
|
||||||
|
a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
|
||||||
|
if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
|
||||||
|
function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+
|
||||||
|
a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
|
||||||
|
this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
|
||||||
|
b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
|
||||||
|
a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
|
||||||
|
c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
|
||||||
|
if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
|
||||||
|
if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
|
||||||
|
e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
|
||||||
|
e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
|
||||||
|
tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.10",animations:{slide:function(a,b){a=
|
||||||
|
c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1],
|
||||||
|
unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",
|
||||||
|
paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Autocomplete 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Autocomplete
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
* jquery.ui.position.js
|
||||||
|
*/
|
||||||
|
(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g=false;var f=d.ui.keyCode;
|
||||||
|
switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=
|
||||||
|
null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||
|
||||||
|
"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),
|
||||||
|
i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
|
||||||
|
this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source===
|
||||||
|
"string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},
|
||||||
|
_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==
|
||||||
|
this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position))},
|
||||||
|
_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);
|
||||||
|
else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
|
||||||
|
(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
|
||||||
|
-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},
|
||||||
|
deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);
|
||||||
|
e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,
|
||||||
|
g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
|
||||||
|
this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Button 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Button
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,f=a([]);if(c)f=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return f};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
|
||||||
|
i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
|
||||||
|
function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(f)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
|
||||||
|
b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var e=b.element[0];h(e).not(e).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
|
||||||
|
g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(e){if(c.disabled)return false;if(e.keyCode==a.ui.keyCode.SPACE||e.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
|
||||||
|
c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=
|
||||||
|
this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
|
||||||
|
this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
|
||||||
|
true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
|
||||||
|
c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){e.push(f?"ui-button-icons-only":"ui-button-icon-only");
|
||||||
|
b.removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,
|
||||||
|
arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
|
||||||
|
a.Widget.prototype.destroy.call(this)}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Dialog 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Dialog
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
* jquery.ui.button.js
|
||||||
|
* jquery.ui.draggable.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.position.js
|
||||||
|
* jquery.ui.resizable.js
|
||||||
|
*/
|
||||||
|
(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&
|
||||||
|
c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
|
||||||
|
-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
|
||||||
|
"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
|
||||||
|
b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
|
||||||
|
a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");
|
||||||
|
isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);
|
||||||
|
d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});
|
||||||
|
c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,
|
||||||
|
h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=
|
||||||
|
d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,
|
||||||
|
position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,
|
||||||
|
h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===
|
||||||
|
1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
|
||||||
|
l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");
|
||||||
|
break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=
|
||||||
|
this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&
|
||||||
|
this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.10",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===
|
||||||
|
0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
|
||||||
|
height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
|
||||||
|
b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,
|
||||||
|
function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Slider 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Slider
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.mouse.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
|
||||||
|
this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
|
||||||
|
if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();
|
||||||
|
else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
|
||||||
|
false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
|
||||||
|
b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
|
||||||
|
this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,
|
||||||
|
g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},
|
||||||
|
_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;
|
||||||
|
if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=
|
||||||
|
this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],
|
||||||
|
value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=
|
||||||
|
this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();
|
||||||
|
else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case "disabled":if(a){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
|
||||||
|
this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];
|
||||||
|
return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},
|
||||||
|
_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);
|
||||||
|
if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,
|
||||||
|
1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.10"})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Tabs 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Tabs
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
|
||||||
|
e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
|
||||||
|
d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
|
||||||
|
(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
|
||||||
|
this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
|
||||||
|
this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
|
||||||
|
if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
|
||||||
|
this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
|
||||||
|
g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
|
||||||
|
function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
|
||||||
|
this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
|
||||||
|
-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
|
||||||
|
d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
|
||||||
|
d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
|
||||||
|
e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
|
||||||
|
j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
|
||||||
|
if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
|
||||||
|
this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
|
||||||
|
load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
|
||||||
|
"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
|
||||||
|
url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.10"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
|
||||||
|
a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Datepicker 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Datepicker
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
*/
|
||||||
|
(function(d,G){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
|
||||||
|
"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
|
||||||
|
"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
|
||||||
|
minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]==
|
||||||
|
null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.10"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();
|
||||||
|
f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
|
||||||
|
_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
|
||||||
|
b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
|
||||||
|
""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
|
||||||
|
c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
|
||||||
|
true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});
|
||||||
|
b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);
|
||||||
|
this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",
|
||||||
|
this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,
|
||||||
|
function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:
|
||||||
|
f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},
|
||||||
|
e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);
|
||||||
|
this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?
|
||||||
|
d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||
|
||||||
|
a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,
|
||||||
|
e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,
|
||||||
|
"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},
|
||||||
|
_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=
|
||||||
|
d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,
|
||||||
|
c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&
|
||||||
|
d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",
|
||||||
|
function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=
|
||||||
|
-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,
|
||||||
|
"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),
|
||||||
|
parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,
|
||||||
|
b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);
|
||||||
|
this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
|
||||||
|
_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
|
||||||
|
0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=
|
||||||
|
false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=
|
||||||
|
d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);
|
||||||
|
else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=
|
||||||
|
a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,
|
||||||
|
g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
|
||||||
|
s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case "!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
|
||||||
|
1;l=w.getDate();break;case "'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",
|
||||||
|
RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&
|
||||||
|
a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",
|
||||||
|
b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+=
|
||||||
|
"0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=
|
||||||
|
f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=
|
||||||
|
(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,
|
||||||
|
l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=
|
||||||
|
a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),
|
||||||
|
b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=
|
||||||
|
this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
|
||||||
|
(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
|
||||||
|
(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,
|
||||||
|
"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=
|
||||||
|
this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var M="",D=0;D<i[1];D++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
|
||||||
|
1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=
|
||||||
|
(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=
|
||||||
|
p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!v?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":
|
||||||
|
""))+'"'+((!B||v)&&F[2]?' title="'+F[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!v?" ":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=
|
||||||
|
P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',
|
||||||
|
o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&
|
||||||
|
l)?" ":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
|
||||||
|
a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=
|
||||||
|
a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
|
||||||
|
"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
|
||||||
|
c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
|
||||||
|
"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
|
||||||
|
function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,
|
||||||
|
[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.10";window["DP_jQuery_"+y]=d})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Progressbar 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Progressbar
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.ui.core.js
|
||||||
|
* jquery.ui.widget.js
|
||||||
|
*/
|
||||||
|
(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
|
||||||
|
this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
|
||||||
|
this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.10"})})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/
|
||||||
|
*/
|
||||||
|
jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
|
||||||
|
16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
|
||||||
|
a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
|
||||||
|
a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
|
||||||
|
"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
|
||||||
|
0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
|
||||||
|
211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
|
||||||
|
d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];
|
||||||
|
h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,
|
||||||
|
a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.10",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,
|
||||||
|
a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",
|
||||||
|
border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
|
||||||
|
return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);
|
||||||
|
else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),
|
||||||
|
b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,
|
||||||
|
a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,
|
||||||
|
a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==
|
||||||
|
e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=
|
||||||
|
g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
|
||||||
|
h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,
|
||||||
|
a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Blind 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Blind
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
|
||||||
|
g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Bounce 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Bounce
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
|
||||||
|
3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
|
||||||
|
b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Clip 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Clip
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
|
||||||
|
c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Drop 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Drop
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
|
||||||
|
"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Explode 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Explode
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
|
||||||
|
0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
|
||||||
|
e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Fade 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Fade
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Fold 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Fold
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
|
||||||
|
10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Highlight 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Highlight
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
|
||||||
|
this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Pulsate 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Pulsate
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
|
||||||
|
a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Scale 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Scale
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
|
||||||
|
b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
|
||||||
|
1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
|
||||||
|
p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
|
||||||
|
if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
|
||||||
|
a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
|
||||||
|
child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
|
||||||
|
n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Shake 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Shake
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
|
||||||
|
(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Slide 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Slide
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
|
||||||
|
var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
|
||||||
|
;/*
|
||||||
|
* jQuery UI Effects Transfer 1.8.10
|
||||||
|
*
|
||||||
|
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||||
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||||
|
* http://jquery.org/license
|
||||||
|
*
|
||||||
|
* http://docs.jquery.com/UI/Effects/Transfer
|
||||||
|
*
|
||||||
|
* Depends:
|
||||||
|
* jquery.effects.core.js
|
||||||
|
*/
|
||||||
|
(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
|
||||||
|
b.dequeue()})})}})(jQuery);
|
||||||
|
;
|
1357
js/ui/i18n/jquery-ui-i18n.js
vendored
Normal file
23
js/ui/i18n/jquery.ui.datepicker-af.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Afrikaans initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Renier Pretorius. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['af'] = {
|
||||||
|
closeText: 'Selekteer',
|
||||||
|
prevText: 'Vorige',
|
||||||
|
nextText: 'Volgende',
|
||||||
|
currentText: 'Vandag',
|
||||||
|
monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
|
||||||
|
'Julie','Augustus','September','Oktober','November','Desember'],
|
||||||
|
monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
|
||||||
|
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
|
||||||
|
dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
|
||||||
|
dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
|
||||||
|
dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['af']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-ar-DZ.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
|
||||||
|
/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
|
||||||
|
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['ar-DZ'] = {
|
||||||
|
closeText: 'إغلاق',
|
||||||
|
prevText: '<السابق',
|
||||||
|
nextText: 'التالي>',
|
||||||
|
currentText: 'اليوم',
|
||||||
|
monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',
|
||||||
|
'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'],
|
||||||
|
monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
|
||||||
|
dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
||||||
|
dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
||||||
|
dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
||||||
|
weekHeader: 'أسبوع',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 6,
|
||||||
|
isRTL: true,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['ar-DZ']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-ar.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Arabic Translation for jQuery UI date picker plugin. */
|
||||||
|
/* Khaled Alhourani -- me@khaledalhourani.com */
|
||||||
|
/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['ar'] = {
|
||||||
|
closeText: 'إغلاق',
|
||||||
|
prevText: '<السابق',
|
||||||
|
nextText: 'التالي>',
|
||||||
|
currentText: 'اليوم',
|
||||||
|
monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران',
|
||||||
|
'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
|
||||||
|
monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
|
||||||
|
dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
||||||
|
dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
||||||
|
dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
|
||||||
|
weekHeader: 'أسبوع',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 6,
|
||||||
|
isRTL: true,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['ar']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-az.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Jamil Najafov (necefov33@gmail.com). */
|
||||||
|
jQuery(function($) {
|
||||||
|
$.datepicker.regional['az'] = {
|
||||||
|
closeText: 'Bağla',
|
||||||
|
prevText: '<Geri',
|
||||||
|
nextText: 'İrəli>',
|
||||||
|
currentText: 'Bugün',
|
||||||
|
monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
|
||||||
|
'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
|
||||||
|
monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
|
||||||
|
'İyul','Avq','Sen','Okt','Noy','Dek'],
|
||||||
|
dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
|
||||||
|
dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
|
||||||
|
dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
|
||||||
|
weekHeader: 'Hf',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['az']);
|
||||||
|
});
|
24
js/ui/i18n/jquery.ui.datepicker-bg.js
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/* Bulgarian initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Stoyan Kyosev (http://svest.org). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['bg'] = {
|
||||||
|
closeText: 'затвори',
|
||||||
|
prevText: '<назад',
|
||||||
|
nextText: 'напред>',
|
||||||
|
nextBigText: '>>',
|
||||||
|
currentText: 'днес',
|
||||||
|
monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
|
||||||
|
'Юли','Август','Септември','Октомври','Ноември','Декември'],
|
||||||
|
monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
|
||||||
|
'Юли','Авг','Сеп','Окт','Нов','Дек'],
|
||||||
|
dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
|
||||||
|
dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
|
||||||
|
dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['bg']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-bs.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Bosnian i18n for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Kenan Konjo. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['bs'] = {
|
||||||
|
closeText: 'Zatvori',
|
||||||
|
prevText: '<',
|
||||||
|
nextText: '>',
|
||||||
|
currentText: 'Danas',
|
||||||
|
monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
|
||||||
|
'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
||||||
|
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
||||||
|
dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
|
||||||
|
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
|
||||||
|
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['bs']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-ca.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Inicialització en català per a l'extenció 'calendar' per jQuery. */
|
||||||
|
/* Writers: (joan.leon@gmail.com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['ca'] = {
|
||||||
|
closeText: 'Tancar',
|
||||||
|
prevText: '<Ant',
|
||||||
|
nextText: 'Seg>',
|
||||||
|
currentText: 'Avui',
|
||||||
|
monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny',
|
||||||
|
'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
|
||||||
|
monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
|
||||||
|
'Jul','Ago','Set','Oct','Nov','Des'],
|
||||||
|
dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
|
||||||
|
dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
|
||||||
|
dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
|
||||||
|
weekHeader: 'Sm',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['ca']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-cs.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Czech initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Tomas Muller (tomas@tomas-muller.net). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['cs'] = {
|
||||||
|
closeText: 'Zavřít',
|
||||||
|
prevText: '<Dříve',
|
||||||
|
nextText: 'Později>',
|
||||||
|
currentText: 'Nyní',
|
||||||
|
monthNames: ['leden','únor','březen','duben','květen','červen',
|
||||||
|
'červenec','srpen','září','říjen','listopad','prosinec'],
|
||||||
|
monthNamesShort: ['led','úno','bře','dub','kvě','čer',
|
||||||
|
'čvc','srp','zář','říj','lis','pro'],
|
||||||
|
dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
|
||||||
|
dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
|
||||||
|
dayNamesMin: ['ne','po','út','st','čt','pá','so'],
|
||||||
|
weekHeader: 'Týd',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['cs']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-da.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Danish initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Jan Christensen ( deletestuff@gmail.com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['da'] = {
|
||||||
|
closeText: 'Luk',
|
||||||
|
prevText: '<Forrige',
|
||||||
|
nextText: 'Næste>',
|
||||||
|
currentText: 'Idag',
|
||||||
|
monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
|
||||||
|
'Juli','August','September','Oktober','November','December'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
||||||
|
'Jul','Aug','Sep','Okt','Nov','Dec'],
|
||||||
|
dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
|
||||||
|
dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
|
||||||
|
dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
|
||||||
|
weekHeader: 'Uge',
|
||||||
|
dateFormat: 'dd-mm-yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['da']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-de.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* German initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Milian Wolff (mail@milianw.de). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['de'] = {
|
||||||
|
closeText: 'schließen',
|
||||||
|
prevText: '<zurück',
|
||||||
|
nextText: 'Vor>',
|
||||||
|
currentText: 'heute',
|
||||||
|
monthNames: ['Januar','Februar','März','April','Mai','Juni',
|
||||||
|
'Juli','August','September','Oktober','November','Dezember'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
|
||||||
|
'Jul','Aug','Sep','Okt','Nov','Dez'],
|
||||||
|
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
||||||
|
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||||
|
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||||
|
weekHeader: 'Wo',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['de']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-el.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Greek (el) initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Alex Cicovic (http://www.alexcicovic.com) */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['el'] = {
|
||||||
|
closeText: 'Κλείσιμο',
|
||||||
|
prevText: 'Προηγούμενος',
|
||||||
|
nextText: 'Επόμενος',
|
||||||
|
currentText: 'Τρέχων Μήνας',
|
||||||
|
monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
|
||||||
|
'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
|
||||||
|
monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
|
||||||
|
'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
|
||||||
|
dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
|
||||||
|
dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
|
||||||
|
dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
|
||||||
|
weekHeader: 'Εβδ',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['el']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-en-AU.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* English/Australia initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Based on the en-GB initialisation. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['en-AU'] = {
|
||||||
|
closeText: 'Done',
|
||||||
|
prevText: 'Prev',
|
||||||
|
nextText: 'Next',
|
||||||
|
currentText: 'Today',
|
||||||
|
monthNames: ['January','February','March','April','May','June',
|
||||||
|
'July','August','September','October','November','December'],
|
||||||
|
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
||||||
|
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||||
|
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||||
|
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||||
|
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['en-AU']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-en-GB.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* English/UK initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Stuart. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['en-GB'] = {
|
||||||
|
closeText: 'Done',
|
||||||
|
prevText: 'Prev',
|
||||||
|
nextText: 'Next',
|
||||||
|
currentText: 'Today',
|
||||||
|
monthNames: ['January','February','March','April','May','June',
|
||||||
|
'July','August','September','October','November','December'],
|
||||||
|
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
||||||
|
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||||
|
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||||
|
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||||
|
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-en-NZ.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* English/New Zealand initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Based on the en-GB initialisation. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['en-NZ'] = {
|
||||||
|
closeText: 'Done',
|
||||||
|
prevText: 'Prev',
|
||||||
|
nextText: 'Next',
|
||||||
|
currentText: 'Today',
|
||||||
|
monthNames: ['January','February','March','April','May','June',
|
||||||
|
'July','August','September','October','November','December'],
|
||||||
|
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
||||||
|
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||||
|
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||||
|
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||||
|
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['en-NZ']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-eo.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Esperanto initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Olivier M. (olivierweb@ifrance.com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['eo'] = {
|
||||||
|
closeText: 'Fermi',
|
||||||
|
prevText: '<Anta',
|
||||||
|
nextText: 'Sekv>',
|
||||||
|
currentText: 'Nuna',
|
||||||
|
monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
|
||||||
|
'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
|
||||||
|
'Jul','Aŭg','Sep','Okt','Nov','Dec'],
|
||||||
|
dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
|
||||||
|
dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
|
||||||
|
dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
|
||||||
|
weekHeader: 'Sb',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 0,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['eo']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-es.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
|
||||||
|
/* Traducido por Vester (xvester@gmail.com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['es'] = {
|
||||||
|
closeText: 'Cerrar',
|
||||||
|
prevText: '<Ant',
|
||||||
|
nextText: 'Sig>',
|
||||||
|
currentText: 'Hoy',
|
||||||
|
monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
|
||||||
|
'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
|
||||||
|
monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
|
||||||
|
'Jul','Ago','Sep','Oct','Nov','Dic'],
|
||||||
|
dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'],
|
||||||
|
dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'],
|
||||||
|
dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'],
|
||||||
|
weekHeader: 'Sm',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['es']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-et.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Estonian initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['et'] = {
|
||||||
|
closeText: 'Sulge',
|
||||||
|
prevText: 'Eelnev',
|
||||||
|
nextText: 'Järgnev',
|
||||||
|
currentText: 'Täna',
|
||||||
|
monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
|
||||||
|
'Juuli','August','September','Oktoober','November','Detsember'],
|
||||||
|
monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
|
||||||
|
'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
|
||||||
|
dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
|
||||||
|
dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
|
||||||
|
dayNamesMin: ['P','E','T','K','N','R','L'],
|
||||||
|
weekHeader: 'Sm',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['et']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-eu.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
|
||||||
|
/* Karrikas-ek itzulia (karrikas@karrikas.com) */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['eu'] = {
|
||||||
|
closeText: 'Egina',
|
||||||
|
prevText: '<Aur',
|
||||||
|
nextText: 'Hur>',
|
||||||
|
currentText: 'Gaur',
|
||||||
|
monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina',
|
||||||
|
'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'],
|
||||||
|
monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka',
|
||||||
|
'Uzt','Abu','Ira','Urr','Aza','Abe'],
|
||||||
|
dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'],
|
||||||
|
dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'],
|
||||||
|
dayNamesMin: ['Ig','As','As','As','Os','Os','La'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'yy/mm/dd',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['eu']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-fa.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
|
||||||
|
/* Javad Mowlanezhad -- jmowla@gmail.com */
|
||||||
|
/* Jalali calendar should supported soon! (Its implemented but I have to test it) */
|
||||||
|
jQuery(function($) {
|
||||||
|
$.datepicker.regional['fa'] = {
|
||||||
|
closeText: 'بستن',
|
||||||
|
prevText: '<قبلي',
|
||||||
|
nextText: 'بعدي>',
|
||||||
|
currentText: 'امروز',
|
||||||
|
monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور',
|
||||||
|
'مهر','آبان','آذر','دي','بهمن','اسفند'],
|
||||||
|
monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
|
||||||
|
dayNames: ['يکشنبه','دوشنبه','سهشنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'],
|
||||||
|
dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'],
|
||||||
|
dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'],
|
||||||
|
weekHeader: 'هف',
|
||||||
|
dateFormat: 'yy/mm/dd',
|
||||||
|
firstDay: 6,
|
||||||
|
isRTL: true,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['fa']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-fi.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Finnish initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Harri Kilpi<70> (harrikilpio@gmail.com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['fi'] = {
|
||||||
|
closeText: 'Sulje',
|
||||||
|
prevText: '«Edellinen',
|
||||||
|
nextText: 'Seuraava»',
|
||||||
|
currentText: 'Tänään',
|
||||||
|
monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu',
|
||||||
|
'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
|
||||||
|
monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä',
|
||||||
|
'Heinä','Elo','Syys','Loka','Marras','Joulu'],
|
||||||
|
dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
|
||||||
|
dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
|
||||||
|
dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
|
||||||
|
weekHeader: 'Vk',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['fi']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-fo.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Faroese initialisation for the jQuery UI date picker plugin */
|
||||||
|
/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['fo'] = {
|
||||||
|
closeText: 'Lat aftur',
|
||||||
|
prevText: '<Fyrra',
|
||||||
|
nextText: 'Næsta>',
|
||||||
|
currentText: 'Í dag',
|
||||||
|
monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
|
||||||
|
'Juli','August','September','Oktober','November','Desember'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
|
||||||
|
'Jul','Aug','Sep','Okt','Nov','Des'],
|
||||||
|
dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
|
||||||
|
dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
|
||||||
|
dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
|
||||||
|
weekHeader: 'Vk',
|
||||||
|
dateFormat: 'dd-mm-yy',
|
||||||
|
firstDay: 0,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['fo']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-fr-CH.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Swiss-French initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['fr-CH'] = {
|
||||||
|
closeText: 'Fermer',
|
||||||
|
prevText: '<Préc',
|
||||||
|
nextText: 'Suiv>',
|
||||||
|
currentText: 'Courant',
|
||||||
|
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
|
||||||
|
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
|
||||||
|
monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
|
||||||
|
'Jul','Aoû','Sep','Oct','Nov','Déc'],
|
||||||
|
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
|
||||||
|
dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
|
||||||
|
dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
|
||||||
|
weekHeader: 'Sm',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['fr-CH']);
|
||||||
|
});
|
25
js/ui/i18n/jquery.ui.datepicker-fr.js
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/* French initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Keith Wood (kbwood{at}iinet.com.au),
|
||||||
|
Stéphane Nahmani (sholby@sholby.net),
|
||||||
|
Stéphane Raimbault <stephane.raimbault@gmail.com> */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['fr'] = {
|
||||||
|
closeText: 'Fermer',
|
||||||
|
prevText: 'Précédent',
|
||||||
|
nextText: 'Suivant',
|
||||||
|
currentText: 'Aujourd\'hui',
|
||||||
|
monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
|
||||||
|
'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
|
||||||
|
monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
|
||||||
|
'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
|
||||||
|
dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
|
||||||
|
dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
|
||||||
|
dayNamesMin: ['D','L','M','M','J','V','S'],
|
||||||
|
weekHeader: 'Sem.',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['fr']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-gl.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Galician localization for 'UI date picker' jQuery extension. */
|
||||||
|
/* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['gl'] = {
|
||||||
|
closeText: 'Pechar',
|
||||||
|
prevText: '<Ant',
|
||||||
|
nextText: 'Seg>',
|
||||||
|
currentText: 'Hoxe',
|
||||||
|
monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño',
|
||||||
|
'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'],
|
||||||
|
monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ',
|
||||||
|
'Xul','Ago','Set','Out','Nov','Dec'],
|
||||||
|
dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'],
|
||||||
|
dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'],
|
||||||
|
dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'],
|
||||||
|
weekHeader: 'Sm',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['gl']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-he.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Hebrew initialisation for the UI Datepicker extension. */
|
||||||
|
/* Written by Amir Hardon (ahardon at gmail dot com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['he'] = {
|
||||||
|
closeText: 'סגור',
|
||||||
|
prevText: '<הקודם',
|
||||||
|
nextText: 'הבא>',
|
||||||
|
currentText: 'היום',
|
||||||
|
monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
|
||||||
|
'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
|
||||||
|
monthNamesShort: ['1','2','3','4','5','6',
|
||||||
|
'7','8','9','10','11','12'],
|
||||||
|
dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
|
||||||
|
dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
|
||||||
|
dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
|
||||||
|
weekHeader: 'Wk',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 0,
|
||||||
|
isRTL: true,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['he']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-hr.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Croatian i18n for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Vjekoslav Nesek. */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['hr'] = {
|
||||||
|
closeText: 'Zatvori',
|
||||||
|
prevText: '<',
|
||||||
|
nextText: '>',
|
||||||
|
currentText: 'Danas',
|
||||||
|
monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
|
||||||
|
'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
|
||||||
|
monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
|
||||||
|
'Srp','Kol','Ruj','Lis','Stu','Pro'],
|
||||||
|
dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
|
||||||
|
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
|
||||||
|
dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
|
||||||
|
weekHeader: 'Tje',
|
||||||
|
dateFormat: 'dd.mm.yy.',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['hr']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-hu.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Hungarian initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['hu'] = {
|
||||||
|
closeText: 'bezárás',
|
||||||
|
prevText: '« vissza',
|
||||||
|
nextText: 'előre »',
|
||||||
|
currentText: 'ma',
|
||||||
|
monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
|
||||||
|
'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
|
||||||
|
monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
|
||||||
|
'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
|
||||||
|
dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
|
||||||
|
dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
|
||||||
|
dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
|
||||||
|
weekHeader: 'Hé',
|
||||||
|
dateFormat: 'yy-mm-dd',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: true,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['hu']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-hy.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['hy'] = {
|
||||||
|
closeText: 'Փակել',
|
||||||
|
prevText: '<Նախ.',
|
||||||
|
nextText: 'Հաջ.>',
|
||||||
|
currentText: 'Այսօր',
|
||||||
|
monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
|
||||||
|
'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
|
||||||
|
monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
|
||||||
|
'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
|
||||||
|
dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
|
||||||
|
dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
|
||||||
|
dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
|
||||||
|
weekHeader: 'ՇԲՏ',
|
||||||
|
dateFormat: 'dd.mm.yy',
|
||||||
|
firstDay: 1,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['hy']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-id.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Indonesian initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Deden Fathurahman (dedenf@gmail.com). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['id'] = {
|
||||||
|
closeText: 'Tutup',
|
||||||
|
prevText: '<mundur',
|
||||||
|
nextText: 'maju>',
|
||||||
|
currentText: 'hari ini',
|
||||||
|
monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
|
||||||
|
'Juli','Agustus','September','Oktober','Nopember','Desember'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
|
||||||
|
'Jul','Agus','Sep','Okt','Nop','Des'],
|
||||||
|
dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
|
||||||
|
dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
|
||||||
|
dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
|
||||||
|
weekHeader: 'Mg',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 0,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['id']);
|
||||||
|
});
|
23
js/ui/i18n/jquery.ui.datepicker-is.js
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/* Icelandic initialisation for the jQuery UI date picker plugin. */
|
||||||
|
/* Written by Haukur H. Thorsson (haukur@eskill.is). */
|
||||||
|
jQuery(function($){
|
||||||
|
$.datepicker.regional['is'] = {
|
||||||
|
closeText: 'Loka',
|
||||||
|
prevText: '< Fyrri',
|
||||||
|
nextText: 'Næsti >',
|
||||||
|
currentText: 'Í dag',
|
||||||
|
monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní',
|
||||||
|
'Júlí','Ágúst','September','Október','Nóvember','Desember'],
|
||||||
|
monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún',
|
||||||
|
'Júl','Ágú','Sep','Okt','Nóv','Des'],
|
||||||
|
dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'],
|
||||||
|
dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'],
|
||||||
|
dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'],
|
||||||
|
weekHeader: 'Vika',
|
||||||
|
dateFormat: 'dd/mm/yy',
|
||||||
|
firstDay: 0,
|
||||||
|
isRTL: false,
|
||||||
|
showMonthAfterYear: false,
|
||||||
|
yearSuffix: ''};
|
||||||
|
$.datepicker.setDefaults($.datepicker.regional['is']);
|
||||||
|
});
|