mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-22 16:03:47 +01:00
Some changes:
- Inclusion of the following javascript directories: * Connector: javascript object to interface xmlhttprequest object. This object allows asynchronous posts and support for messages while this post is being done, such as "wait, contacting server", etc. * JsAPI: general javascript functions and methods * jsolait: performs conversion from a xmlrpc message to a javascript object * xmlRpcMsgCreator: performs conversion from a javascript object to a xmlrpc message * dynapi: cross-browser class to draw layers - Update in setup version: now is 1.0.1.008; Update your versions. There was made a change in phpgw_vfs2_files table in handling of modified files. - Upgrade of vfs2 classes and PclZip class - Changes in javascript object and common object to allow the javascript backend to applications to work (now just filescenter will use it...)
This commit is contained in:
parent
e66d26d0c1
commit
0a28f3812e
File diff suppressed because it is too large
Load Diff
@ -1313,6 +1313,29 @@
|
||||
{
|
||||
$java_script = '';
|
||||
|
||||
//viniciuscb: in Concisus this condition is inexistent, and in all
|
||||
//pages the javascript globals are inserted. Today, because
|
||||
//filescenter needs these javascript globals, this
|
||||
//include_jsbackend is a must to the javascript globals be
|
||||
//included.
|
||||
if ($GLOBALS['egw_info']['flags']['include_jsbackend'])
|
||||
{
|
||||
if (!$GLOBALS['egw_info']['flags']['nojsapi'])
|
||||
{
|
||||
if(!@is_object($GLOBALS['egw']->js))
|
||||
{
|
||||
$GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
|
||||
}
|
||||
|
||||
$GLOBALS['egw']->js->validate_jsapi();
|
||||
}
|
||||
|
||||
if(@is_object($GLOBALS['egw']->js))
|
||||
{
|
||||
$java_script .= $GLOBALS['egw']->js->get_javascript_globals();
|
||||
}
|
||||
}
|
||||
|
||||
/* this flag is for all javascript code that has to be put before other jscode.
|
||||
Think of conf vars etc... (pim@lingewoud.nl) */
|
||||
if (isset($GLOBALS['egw_info']['flags']['java_script_thirst']))
|
||||
|
@ -1,44 +1,51 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - JavaScript *
|
||||
* Written by Dave Hall skwashd at phpgroupware.org *
|
||||
* Copyright (C) 2003 Free Software Foundation Inc *
|
||||
* -------------------------------------------------------------------------*
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This program is Free Software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\**************************************************************************/
|
||||
/* $Id$ */
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - JavaScript *
|
||||
* Written by Dave Hall skwashd at phpgroupware.org *
|
||||
* Copyright (C) 2003 Free Software Foundation Inc *
|
||||
* -------------------------------------------------------------------------*
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This program is Free Software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\**************************************************************************/
|
||||
/* $Id$ */
|
||||
|
||||
/**
|
||||
* eGroupWare javascript support class
|
||||
*
|
||||
* Only instanstiate this class using:
|
||||
* <code>
|
||||
* if(!@is_object($GLOBALS['phpgw']->js))
|
||||
* {
|
||||
* $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* This way a theme can see if this is a defined object and include the data,
|
||||
* while the is_object() wrapper prevents whiping out existing data held in
|
||||
* this instance variables, primarily the $files variable.
|
||||
*
|
||||
* Note: The package arguement is the subdirectory of js - all js should live in subdirectories
|
||||
*
|
||||
* @package phpgwapi
|
||||
* @subpackage sessions
|
||||
* @abstract
|
||||
* @author Dave Hall
|
||||
* @copyright © 2003 Free Software Foundation
|
||||
* @license GPL
|
||||
* @uses template
|
||||
*/
|
||||
// On production sites, remove this lines below! \\
|
||||
if (file_exists(EGW_INCLUDE_ROOT . '/uncompressed_thyapi')) define(EGW_UNCOMPRESSED_THYAPI, true);
|
||||
else define(EGW_UNCOMPRESSED_THYAPI, false);
|
||||
|
||||
$GLOBALS['concisus_system']['javascript'] = array();
|
||||
|
||||
/**
|
||||
* eGroupWare javascript support class
|
||||
*
|
||||
* Only instanstiate this class using:
|
||||
* <code>
|
||||
* if(!@is_object($GLOBALS['egw']->js))
|
||||
* {
|
||||
* $GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* This way a theme can see if this is a defined object and include the data,
|
||||
* while the is_object() wrapper prevents whiping out existing data held in
|
||||
* this instance variables, primarily the $files variable.
|
||||
*
|
||||
* Note: The package argument is the subdirectory of js - all js should live in subdirectories
|
||||
*
|
||||
* @package phpgwapi
|
||||
* @subpackage sessions
|
||||
* @abstract
|
||||
* @author Dave Hall
|
||||
* @copyright © 2003 Free Software Foundation
|
||||
* @license GPL
|
||||
* @uses template
|
||||
*
|
||||
*/
|
||||
class javascript
|
||||
{
|
||||
/**
|
||||
@ -55,6 +62,11 @@
|
||||
* @var object used for holding an instance of the Template class
|
||||
*/
|
||||
var $t;
|
||||
|
||||
/**
|
||||
* @var boolean Load JS API ?
|
||||
*/
|
||||
var $js_api;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
@ -63,8 +75,9 @@
|
||||
*/
|
||||
function javascript()
|
||||
{
|
||||
//$this->t = CreateObject('phpgwapi.Template', ExecMethod('phpgwapi.phpgw.common.get_tpl_dir','phpgwapi'));
|
||||
//$this->t =& CreateObject('phpgwapi.Template', ExecMethod('phpgwapi.phpgw.common.get_tpl_dir','phpgwapi'));
|
||||
//not currently used, but will be soon - I hope :)
|
||||
$this->included_files =& $GLOBALS['concisus_system']['javascript']['included_files'];
|
||||
}
|
||||
|
||||
|
||||
@ -76,7 +89,7 @@
|
||||
*/
|
||||
function get_alert($msg)
|
||||
{
|
||||
return 'return alert("'.lang($msg).'");';
|
||||
return 'return alert("'.lang($msg).'");';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -119,9 +132,12 @@
|
||||
function get_script_links()
|
||||
{
|
||||
$links = '';
|
||||
$links_api = '';
|
||||
$links_api_main = '';
|
||||
|
||||
if(!empty($this->files) && is_array($this->files))
|
||||
{
|
||||
$links = "<!--JS Imports from phpGW javascript class -->\n";
|
||||
$links_head = "<!--JS Imports from phpGW javascript class -->\n";
|
||||
foreach($this->files as $app => $packages)
|
||||
{
|
||||
if(!empty($packages) && is_array($packages))
|
||||
@ -132,17 +148,58 @@
|
||||
{
|
||||
foreach($files as $file => $browser)
|
||||
{
|
||||
$links .= '<script type="text/javascript" src="'
|
||||
. $GLOBALS['phpgw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$browser/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
if ($app === 'phpgwapi' && $pkg === 'jsapi' && $file === 'jsapi')
|
||||
{
|
||||
$links_api_main = '<script type="text/javascript" src="'
|
||||
. $GLOBALS['egw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$browser/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
|
||||
if ($browser !== '.')
|
||||
{
|
||||
$links_api_main = '<script type="text/javascript" src="'
|
||||
. $GLOBALS['egw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
}
|
||||
}
|
||||
else if ($app === 'phpgwapi')
|
||||
{
|
||||
if ($browser !== '.')
|
||||
{
|
||||
$links_api .= '<script type="text/javascript" src="'
|
||||
. $GLOBALS['egw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
}
|
||||
|
||||
$links_api .= '<script type="text/javascript" src="'
|
||||
. $GLOBALS['egw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$browser/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($browser !== '.')
|
||||
{
|
||||
$links .= '<script type="text/javascript" src="'
|
||||
. $GLOBALS['egw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
}
|
||||
|
||||
$links .= '<script type="text/javascript" src="'
|
||||
. $GLOBALS['egw_info']['server']['webserver_url']
|
||||
. "/$app/js/$pkg/$browser/$file" . '.js">'
|
||||
. "</script>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $links;
|
||||
return $links_head.$links_api_main.$links_api.$links;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -204,7 +261,7 @@
|
||||
* @param string $file file to be included - no ".js" on the end
|
||||
* @param string $app application directory to search - default = phpgwapi
|
||||
* @param bool $browser insert specific browser javascript.
|
||||
*
|
||||
*
|
||||
* @discuss The browser specific option loads the file which is in the correct
|
||||
* browser folder. Supported folder are those supported by class.browser.inc.php
|
||||
*
|
||||
@ -221,30 +278,196 @@
|
||||
$browser_folder = '.';
|
||||
}
|
||||
|
||||
if(is_readable(PHPGW_INCLUDE_ROOT .SEP .$app .SEP .'js' .SEP . $package . SEP . $browser_folder . SEP . $file . '.js'))
|
||||
if ($this->included_files[$app][$package][$file]) return true;
|
||||
|
||||
if(is_readable(EGW_INCLUDE_ROOT .SEP .$app .SEP .'js' .SEP . $package . SEP . $browser_folder . SEP . $file . '.js'))
|
||||
{
|
||||
$this->files[$app][$package][$file] = $browser_folder;
|
||||
$this->included_files[$app][$package][$file] = $browser_folder;
|
||||
return True;
|
||||
}
|
||||
elseif (is_readable(PHPGW_INCLUDE_ROOT .SEP .$app .SEP .'js' .SEP . $package . SEP . $file . '.js'))
|
||||
elseif (is_readable(EGW_INCLUDE_ROOT .SEP .$app .SEP .'js' .SEP . $package . SEP . $file . '.js'))
|
||||
{
|
||||
$this->files[$app][$package][$file] = '.';
|
||||
$this->included_files[$app][$package][$file] = '.';
|
||||
return True;
|
||||
}
|
||||
elseif($app != 'phpgwapi')
|
||||
{
|
||||
if(is_readable(PHPGW_INCLUDE_ROOT .SEP .'phpgwapi' .SEP .'js' .SEP . $package .SEP . $browser_folder . SEP . $file . '.js'))
|
||||
if(is_readable(EGW_INCLUDE_ROOT .SEP .'phpgwapi' .SEP .'js' .SEP . $package .SEP . $browser_folder . SEP . $file . '.js'))
|
||||
{
|
||||
$this->files['phpgwapi'][$package][$file] = $browser_folder;
|
||||
$this->included_files['phpgwapi'][$package][$file] = $browser_folder;
|
||||
return True;
|
||||
}
|
||||
elseif(is_readable(PHPGW_INCLUDE_ROOT .SEP .'phpgwapi' .SEP .'js' .SEP . $package .SEP . $file . '.js'))
|
||||
elseif(is_readable(EGW_INCLUDE_ROOT .SEP .'phpgwapi' .SEP .'js' .SEP . $package .SEP . $file . '.js'))
|
||||
{
|
||||
$this->files['phpgwapi'][$package][$file] = '.';
|
||||
$this->included_files['phpgwapi'][$package][$file] = '.';
|
||||
return True;
|
||||
}
|
||||
return False;
|
||||
}
|
||||
}
|
||||
|
||||
function validate_jsapi()
|
||||
{
|
||||
if (EGW_UNCOMPRESSED_THYAPI)
|
||||
{
|
||||
$this->validate_file('plugins', 'thyPlugins');
|
||||
}
|
||||
|
||||
/* This was included together with javascript globals to garantee prior load of dynapi. But it doesn't seems
|
||||
* right to me... maybe on class common, it should load dynapi before everything... */
|
||||
$this->validate_file('dynapi','dynapi');
|
||||
|
||||
// Initialize DynAPI
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= '<script language="javascript">'."\n";
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= "dynapi.library.setPath(GLOBALS['serverRoot']+'/phpgwapi/js/dynapi/')\n";
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= "dynapi.library.include('dynapi.library')\n";
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= "dynapi.library.include('dynapi.api')\n";
|
||||
$GLOBALS['egw_info']['flags']['java_script'] .= "</script>\n";/**/
|
||||
|
||||
//FIXME: These files are temporary! They should be included inside DynAPI or substituted by
|
||||
// other ones
|
||||
$this->validate_file('jsapi', 'jsapi');
|
||||
$this->validate_file('wz_dragdrop', 'wz_dragdrop');
|
||||
$this->validate_file('dJSWin', 'dJSWin');
|
||||
$this->validate_file('dTabs', 'dTabs');
|
||||
$this->validate_file('connector', 'connector');
|
||||
$this->validate_file('xmlrpcMsgCreator','xmlrpc');
|
||||
$this->validate_file('jsolait','init');
|
||||
return true;
|
||||
}
|
||||
|
||||
function get_javascript_globals()
|
||||
{
|
||||
/* Default Global Messages */
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['messages']['jsapi']['parseError'] = lang('Failed to Contact Server or Invalid Response from Server. Try to relogin. Contact Admin in case of faliure.');
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['messages']['jsapi']['serverTimeout'] = lang('Could not contact server. Operation Timed Out!');
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['messages']['jsapi']['dataSourceStartup'] = lang('Starting Up...');
|
||||
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['messages']['jsapi']['connector_1'] = lang('Contacting Server...');
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['messages']['jsapi']['connector_2'] = lang('Server Contacted. Waiting for response...');
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['messages']['jsapi']['connector_3'] = lang('Server answered. Processing response...');
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['preferences']['common'] =& $GLOBALS['egw_info']['user']['preferences']['common'];
|
||||
|
||||
/* Default Global API Variables */
|
||||
$browser = strtolower(ExecMethod('phpgwapi.browser.get_agent'));
|
||||
switch ($browser)
|
||||
{
|
||||
case 'ie':
|
||||
case 'opera':
|
||||
$thyapi_comp = 'thyapi_comp_'.$browser.'.js';
|
||||
break;
|
||||
default:
|
||||
$thyapi_comp = 'thyapi_comp_gecko.js';
|
||||
}
|
||||
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['jsapi']['imgDir'] = $GLOBALS['egw_info']['server']['webserver_url'].'/'.'phpgwapi/images';
|
||||
if (EGW_UNCOMPRESSED_THYAPI)
|
||||
{
|
||||
$jsCode = "<!-- JS Global Variables and ThyAPI Insertion -->\n" .
|
||||
'<script type="text/javascript" src="'.($GLOBALS['egw_info']['server']['webserver_url'] ? $GLOBALS['egw_info']['server']['webserver_url'].'/' : '/').
|
||||
'/phpgwapi/js/dynapi/dynapi.js"></script>'."\n".
|
||||
'<script language="javascript">'."\n".
|
||||
'var GLOBALS = new Object();'."\n" .
|
||||
"GLOBALS['serverRoot'] = '".($GLOBALS['egw_info']['server']['webserver_url'] ? $GLOBALS['egw_info']['server']['webserver_url'].'/' : '/')."';\n".
|
||||
"GLOBALS['appname'] = '".$GLOBALS['egw_info']['flags']['currentapp']."';\n".
|
||||
|
||||
"GLOBALS['httpProtocol'] = '".($_SERVER['HTTPS'] ? 'https://' : 'http://')."';\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$jsCode = "<!-- JS Global Variables and ThyAPI Insertion -->\n" .
|
||||
'<script type="text/javascript" src="'.($GLOBALS['egw_info']['server']['webserver_url'] ? $GLOBALS['egw_info']['server']['webserver_url'].'/' : '/').
|
||||
'/phpgwapi/js/'.$thyapi_comp.'"></script>'."\n".
|
||||
'<script language="javascript">'."\n".
|
||||
'var GLOBALS = new Object();'."\n" .
|
||||
"GLOBALS['serverRoot'] = '".($GLOBALS['egw_info']['server']['webserver_url'] ? $GLOBALS['egw_info']['server']['webserver_url'].'/' : '/')."';\n".
|
||||
"GLOBALS['appname'] = '".$GLOBALS['egw_info']['flags']['currentapp']."';\n".
|
||||
|
||||
"GLOBALS['httpProtocol'] = '".($_SERVER['HTTPS'] ? 'https://' : 'http://')."';\n";
|
||||
}
|
||||
|
||||
if ($GLOBALS['egw_info']['extra_get_vars'])
|
||||
{
|
||||
$GLOBALS['egw_info']['flags']['java_script_globals']['extra_get_vars'] = $GLOBALS['egw_info']['extra_get_vars'];
|
||||
}
|
||||
|
||||
$jsCode .= $this->convert_phparray_jsarray("GLOBALS", $GLOBALS['egw_info']['flags']['java_script_globals'], false);
|
||||
|
||||
if (EGW_UNCOMPRESSED_THYAPI)
|
||||
{
|
||||
$jsCode .= "\ndynapi.library.setPath(GLOBALS['serverRoot']+'/phpgwapi/js/dynapi/');\n".
|
||||
"dynapi.library.include('dynapi.library');\n".
|
||||
"dynapi.library.include('dynapi.api');\n\n";
|
||||
}
|
||||
|
||||
// Enable Debug?
|
||||
$config =& CreateObject('phpgwapi.config', 'phpgwapi');
|
||||
$config_values = $config->read_repository();
|
||||
|
||||
if ($config_values['js_debug'])
|
||||
{
|
||||
$jsCode .= "if (dynapi.ua.gecko) dynapi.library.include('dynapi.debug')\n";
|
||||
}
|
||||
|
||||
$jsCode .= '</script>'."\n";
|
||||
|
||||
return $jsCode;
|
||||
}
|
||||
|
||||
function convert_phparray_jsarray($name, $array, $new=true)
|
||||
{
|
||||
if (!is_array($array))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($new)
|
||||
{
|
||||
$jsCode = "$name = new Object();\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$jsCode = '';
|
||||
}
|
||||
|
||||
foreach ($array as $index => $value)
|
||||
{
|
||||
if (is_array($value))
|
||||
{
|
||||
$jsCode .= $name."['".$index."'] = new Object();\n";
|
||||
$jsCode .= $this->convert_phparray_jsarray($name."['".$index."']", $value,false);
|
||||
continue;
|
||||
}
|
||||
|
||||
switch(gettype($value))
|
||||
{
|
||||
case 'string':
|
||||
$value = "'".str_replace(array("\n","\r"),'\n',addslashes($value))."'";
|
||||
break;
|
||||
|
||||
case 'boolean':
|
||||
if ($value)
|
||||
{
|
||||
$value = 'true';
|
||||
}
|
||||
else
|
||||
{
|
||||
$value = 'false';
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
$value = 'null';
|
||||
}
|
||||
|
||||
$jsCode .= $name."['".$index."'] = ".$value.";\n";
|
||||
}
|
||||
|
||||
return $jsCode;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -67,9 +67,9 @@
|
||||
'file_id' => 'phpgw_vfs2_files',
|
||||
'owner_id' => 'phpgw_vfs2_files',
|
||||
'createdby_id' => 'phpgw_vfs2_files',
|
||||
'modifiedby_id' => 'phpgw_vfs2_versioning',
|
||||
'modifiedby_id' => 'phpgw_vfs2_files',
|
||||
'created' => 'phpgw_vfs2_files',
|
||||
'modified' => 'phpgw_vfs2_versioning',
|
||||
'modified' => 'phpgw_vfs2_files',
|
||||
'size' => 'phpgw_vfs2_files',
|
||||
'mime_type' => 'phpgw_vfs2_mimetypes',
|
||||
'comment' => 'phpgw_vfs2_files',
|
||||
@ -90,6 +90,9 @@
|
||||
//searching in files for a particular value in a particular property.
|
||||
var $search_support = 1;
|
||||
|
||||
var $compress_support = 1;
|
||||
var $extract_support = 1;
|
||||
|
||||
|
||||
/*!
|
||||
@function vfs
|
||||
@ -1088,12 +1091,6 @@
|
||||
*/
|
||||
function mv ($data)
|
||||
{
|
||||
//FIXME unknown bug tricky solving (temp)
|
||||
if (!is_object($this->vfs_versionsystem))
|
||||
{
|
||||
$this->vfs_versionsystem =& $GLOBALS['object_keeper']->GetObject('phpgwapi.vfs_versionsystem');
|
||||
}
|
||||
|
||||
if (!is_array ($data))
|
||||
{
|
||||
$data = array ();
|
||||
@ -1251,6 +1248,7 @@
|
||||
'relatives' => array ($t->mask)
|
||||
)
|
||||
);
|
||||
|
||||
$query = $GLOBALS['phpgw']->db->query ("UPDATE phpgw_vfs2_files SET size=$size WHERE directory='".
|
||||
$GLOBALS['phpgw']->db->db_addslashes($t->fake_leading_dirs_clean)."' AND name='".
|
||||
$GLOBALS['phpgw']->db->db_addslashes($t->fake_name_clean)."'", __LINE__, __FILE__);
|
||||
@ -1269,7 +1267,7 @@
|
||||
/* $this->set_attributes(array(
|
||||
'string' => $t->fake_full_path,
|
||||
'relatives' => array ($t->mask),
|
||||
'attributes' => array (
|
||||
'attributes' => array (
|
||||
'modifiedby_id' => $account_id,
|
||||
'modified' => $this->now
|
||||
)
|
||||
@ -1284,7 +1282,31 @@
|
||||
|
||||
if ($this->file_actions)
|
||||
{
|
||||
$rr = rename ($f->real_full_path, $t->real_full_path);
|
||||
if(file_exists($t->real_full_path))
|
||||
{
|
||||
unlink($t->real_full_path);
|
||||
$ok = rename($f->real_full_path, $t->real_full_path);
|
||||
}
|
||||
else
|
||||
{
|
||||
$ok = rename($f->real_full_path, $t->real_full_path);
|
||||
}
|
||||
|
||||
if (!$ok)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_dir($t->real_full_path) && $f->outside)
|
||||
{
|
||||
$this->update_real(array(
|
||||
'string' => $t->fake_full_path,
|
||||
'relatives' => array($t->mask)
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
//$rr = rename ($f->real_full_path, $t->real_full_path);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1295,7 +1317,7 @@
|
||||
{
|
||||
$this->rm (array(
|
||||
'string' => $f->fake_full_path,
|
||||
'relatives' => $f->mask
|
||||
'relatives' => array($f->mask)
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -1578,6 +1600,10 @@
|
||||
{
|
||||
if (!@is_dir($p->real_leading_dirs_clean)) // eg. /home or /group does not exist
|
||||
{
|
||||
if (!ereg_replace('^/','',$p->fake_leading_dirs))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!@$this->mkdir(array(
|
||||
'string' => $p->fake_leading_dirs,
|
||||
'relatives' => array(RELATIVE_NONE) ))) // ==> create it
|
||||
@ -1588,7 +1614,9 @@
|
||||
|
||||
if (@is_dir($p->real_full_path)) // directory already exists
|
||||
{
|
||||
$this->update_real($data,True); // update its contents
|
||||
//WITH Serious BUG when registrys are in database, but not
|
||||
//in filesystem. Correct this ASAP.
|
||||
//$this->update_real($data,True); // update its contents
|
||||
}
|
||||
elseif (!@mkdir ($p->real_full_path, 0770))
|
||||
{
|
||||
@ -2297,7 +2325,8 @@
|
||||
'orderby' => 'directory,name',
|
||||
'backups' => false, /* show or hide backups */
|
||||
'files_specified' => array(),
|
||||
'allow_outside' => true
|
||||
'allow_outside' => true,
|
||||
'modifiedby_information' => false
|
||||
);
|
||||
|
||||
//check if orderby is a valid field (or is composed by valid fields)
|
||||
@ -2367,6 +2396,7 @@
|
||||
$sql .= "directory='".$GLOBALS['phpgw']->db->db_addslashes($p->fake_leading_dirs_clean).
|
||||
"' AND name='".$GLOBALS['phpgw']->db->db_addslashes($p->fake_name_clean)."'".$sql_backups;
|
||||
}
|
||||
|
||||
// echo " select1: dir=".$p->fake_leading_dirs_clean." name=".$p->fake_name_clean." <br>\n";
|
||||
$query = $GLOBALS['phpgw']->db->query ($sql, __LINE__, __FILE__);
|
||||
|
||||
@ -2382,37 +2412,44 @@
|
||||
$rarray = array ();
|
||||
foreach($this->attributes as $attribute)
|
||||
{
|
||||
if ($attribute == 'mime_type')
|
||||
switch ($attribute)
|
||||
{
|
||||
if (!is_numeric($record['mime_id']))
|
||||
{
|
||||
//no mime type registered for file, must find one and if not exist add one.
|
||||
$extension = $this->get_file_extension($record['name']);
|
||||
|
||||
if (!$res = $this->vfs_mimetypes->get_type(array('extension' => $extension)))
|
||||
case 'mime_type':
|
||||
if (!is_numeric($record['mime_id']))
|
||||
{
|
||||
$res = $this->vfs_mimetypes->add_filetype(array('extension' => $extension));
|
||||
//no mime type registered for file, must find one and if not exist add one.
|
||||
$extension = $this->get_file_extension($record['name']);
|
||||
|
||||
if (!$res = $this->vfs_mimetypes->get_type(array('extension' => $extension)))
|
||||
{
|
||||
$res = $this->vfs_mimetypes->add_filetype(array('extension' => $extension));
|
||||
}
|
||||
|
||||
if ($res)
|
||||
{
|
||||
$this->db->update('phpgw_vfs2_files',
|
||||
array('mime_id' => $res['mime_id']),
|
||||
array('directory' => $p->fake_leading_dirs_clean,
|
||||
'name' => $p->fake_name_clean
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = $this->vfs_mimetypes->get_type(array(
|
||||
'mime_id' => $record['mime_id']
|
||||
));
|
||||
}
|
||||
|
||||
if ($res)
|
||||
{
|
||||
$this->db->update('phpgw_vfs2_files',
|
||||
array('mime_id' => $res['mime_id']),
|
||||
array('directory' => $p->fake_leading_dirs_clean,
|
||||
'name' => $p->fake_name_clean
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = $this->vfs_mimetypes->get_type(array(
|
||||
'mime_id' => $record['mime_id']
|
||||
));
|
||||
}
|
||||
|
||||
$record['mime_type'] = $res['mime'];
|
||||
$record['mime_friendly'] = $res['friendly'];
|
||||
$record['mime_type'] = $res['mime'];
|
||||
$record['mime_friendly'] = $res['friendly'];
|
||||
break;
|
||||
case 'created':
|
||||
case 'modified':
|
||||
$record[$attribute] = $this->db->from_timestamp($record[$attribute]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -2589,38 +2626,44 @@
|
||||
|
||||
foreach($this->attributes as $attribute)
|
||||
{
|
||||
if ($attribute == 'mime_type')
|
||||
switch($attribute)
|
||||
{
|
||||
if (!is_numeric($record['mime_id']))
|
||||
{
|
||||
$extension = $this->get_file_extension($record['name']);
|
||||
if(!$res = $this->vfs_mimetypes->get_type(array(
|
||||
'extension' => $extension)) )
|
||||
case 'mime_type':
|
||||
if (!is_numeric($record['mime_id']))
|
||||
{
|
||||
$res = $this->vfs_mimetypes->add_filetype(array(
|
||||
'extension'
|
||||
));
|
||||
|
||||
if ($res)
|
||||
$extension = $this->get_file_extension($record['name']);
|
||||
if(!$res = $this->vfs_mimetypes->get_type(array(
|
||||
'extension' => $extension)) )
|
||||
{
|
||||
$this->db->update('phpgw_vfs2_files',
|
||||
array('mime_id' => $res['mime_id']),
|
||||
array('directory' => $p->fake_leading_dirs_clean,
|
||||
'name' => $p->fake_name_clean
|
||||
),__LINE__,__FILE__);
|
||||
$res = $this->vfs_mimetypes->add_filetype(array(
|
||||
'extension'
|
||||
));
|
||||
|
||||
if ($res)
|
||||
{
|
||||
$this->db->update('phpgw_vfs2_files',
|
||||
array('mime_id' => $res['mime_id']),
|
||||
array('directory' => $p->fake_leading_dirs_clean,
|
||||
'name' => $p->fake_name_clean
|
||||
),__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = $this->vfs_mimetypes->get_type(array(
|
||||
'mime_id' => $record['mime_id']
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = $this->vfs_mimetypes->get_type(array(
|
||||
'mime_id' => $record['mime_id']
|
||||
));
|
||||
}
|
||||
|
||||
$record['mime_type'] = $res['mime'];
|
||||
$rarray[$i]['mime_friendly'] = $res['friendly'];
|
||||
$record['mime_type'] = $res['mime'];
|
||||
$rarray[$i]['mime_friendly'] = $res['friendly'];
|
||||
break;
|
||||
case 'created':
|
||||
case 'modified':
|
||||
$record[$attribute] = $this->db->from_timestamp($record[$attribute]);
|
||||
break;
|
||||
}
|
||||
|
||||
$rarray[$i][$attribute] = $record[$attribute];
|
||||
@ -2650,7 +2693,7 @@
|
||||
//FIXME this method does not work when there are registrys in
|
||||
//database, but not in filesystem. It starts corromping the
|
||||
//database by putting wrong things that are in the partition root.
|
||||
return false;
|
||||
//return false;
|
||||
if (!is_array ($data))
|
||||
{
|
||||
$data = array ();
|
||||
@ -3351,9 +3394,7 @@
|
||||
|
||||
foreach ($filelist as $file)
|
||||
{
|
||||
|
||||
|
||||
$this->mv(array(
|
||||
$res = $this->mv(array(
|
||||
'from' => $file['directory'].'/'.$file['name'],
|
||||
'to' => $dest->fake_full_path.'/'.$file['name'],
|
||||
'relatives' => array(RELATIVE_NONE|VFS_REAL,$dest->mask)
|
||||
|
@ -156,6 +156,13 @@
|
||||
|
||||
$res = $this->db->insert('phpgw_vfs2_versioning',$insert_data,null,
|
||||
__LINE__,__FILE__);
|
||||
|
||||
/* $this->db->update('phpgw_vfs2_files',array(
|
||||
'modified' => $insert_data['modified'],
|
||||
'modifiedby_id' => $insert_data['modifiedby_id']
|
||||
),
|
||||
array('file_id' => $insert_data['file_id']).__LINE__,__FILE__
|
||||
);*/
|
||||
|
||||
|
||||
|
||||
@ -188,7 +195,6 @@
|
||||
*/
|
||||
function save_snapshot($file_id,$operation,$comment='',$other='')
|
||||
{
|
||||
|
||||
//Prevent recursive reentrant when working in vfs->copy, f.inst
|
||||
if ($GLOBALS['phpgw']->banish_journal)
|
||||
{
|
||||
@ -467,7 +473,11 @@
|
||||
{
|
||||
|
||||
$this->db->update('phpgw_vfs2_files',
|
||||
array('version' => $this->inc($file_data['insert_data']['version'])),
|
||||
array(
|
||||
'version' => $this->inc($file_data['insert_data']['version']),
|
||||
'modified' => $file_data['insert_data']['modified'],
|
||||
'modifiedby_id' => $file_data['insert_data']['modifiedby_id']
|
||||
),
|
||||
array('file_id' => $file_data['insert_data']['file_id']),
|
||||
__LINE__, __FILE__
|
||||
);
|
||||
|
@ -9,42 +9,18 @@
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\****************************************************************************/
|
||||
|
||||
if (!window.__DEFINE_DJSWIN__)
|
||||
{
|
||||
__DEFINE_DJSWIN__ = true;
|
||||
|
||||
if (document.all)
|
||||
{
|
||||
navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 ? is_ie5 = true : is_ie5 = false;
|
||||
is_ie = true;
|
||||
is_moz1_6 = false;
|
||||
is_mozilla = false;
|
||||
is_ns4 = false;
|
||||
}
|
||||
else if (document.getElementById)
|
||||
{
|
||||
navigator.userAgent.toLowerCase().match('mozilla.*rv[:]1\.6.*gecko') ? is_moz1_6 = true : is_moz1_6 = false;
|
||||
is_ie = false;
|
||||
is_ie5 = false;
|
||||
is_mozilla = true;
|
||||
is_ns4 = false;
|
||||
}
|
||||
else if (document.layers)
|
||||
{
|
||||
is_ie = false;
|
||||
is_ie5 = false
|
||||
is_moz1_6 = false;
|
||||
is_mozilla = false;
|
||||
is_ns4 = true;
|
||||
}
|
||||
|
||||
if (!window.dd)
|
||||
{
|
||||
throw("wz_dragdrop lib must be loaded!");
|
||||
}
|
||||
|
||||
function dJSWin(params)
|
||||
{
|
||||
this.init(params);
|
||||
}
|
||||
|
||||
dJSWin.prototype.init = function(params)
|
||||
{
|
||||
if (!params || typeof(params) != 'object' || !params.id || !params.width || !params.height || !params.content_id)
|
||||
{
|
||||
@ -52,19 +28,22 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
}
|
||||
|
||||
/* Internal Variables */
|
||||
if (is_ie)
|
||||
{
|
||||
this.winContainer = document.createElement('iframe');
|
||||
}
|
||||
this.clientArea = document.createElement('div');
|
||||
this.title = document.createElement('div');
|
||||
this.title_text = document.createElement('span');
|
||||
this.buttons = new Array();
|
||||
this.shadows = new Array();
|
||||
this.border = new Array();
|
||||
this.content = _dJSWinElement(params.content_id);
|
||||
this.content = Element(params.content_id);
|
||||
this.includedContents = params['include_contents'];
|
||||
var _this = this;
|
||||
var style;
|
||||
|
||||
style = document.createElement('link');
|
||||
style.href = GLOBALS['serverRoot'] + "phpgwapi/js/dJSWin/dJSWin.css";
|
||||
style.rel = "stylesheet";
|
||||
style.type = "text/css";
|
||||
document.body.appendChild(style);
|
||||
|
||||
if (is_moz1_6)
|
||||
{
|
||||
@ -103,36 +82,18 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
this.title.style.visibility = 'hidden';
|
||||
this.title.style.width = parseInt(params['width']) + 2 + 'px';
|
||||
this.title.style.height = params['title_height'] ? params['title_height'] : '18px';
|
||||
this.title.style.backgroundColor = params['title_color'];
|
||||
this.title.style.backgroundColor = '#3978d6';
|
||||
// this.title.className = 'dJSWin_title';
|
||||
this.title.style.top = '0px';
|
||||
this.title.style.left = '0px';
|
||||
this.title.style.zIndex = '1';
|
||||
|
||||
this.title_text.style.position = 'relative';
|
||||
this.title_text.className = params['title_class'];
|
||||
this.title_text.style.fontWeight = 'bold';
|
||||
this.title_text.style.color = params['title_text_color'] ? params['title_text_color'] : 'black';
|
||||
this.title_text.className = 'dJSWin_title_text';
|
||||
// this.title_text.style.cursor = 'move';
|
||||
this.title_text.innerHTML = params['title'];
|
||||
this.title_text.style.zIndex = '1';
|
||||
|
||||
if (is_ie)
|
||||
{
|
||||
this.winContainer.id = params['id']+'_winContainer';
|
||||
this.winContainer.style.position = 'absolute';
|
||||
this.winContainer.style.visibility = 'hidden';
|
||||
this.winContainer.style.width = params['width'];
|
||||
//this.winContainer.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 'px';
|
||||
this.winContainer.style.height = params['height'];
|
||||
// this.winContainer.style.top = '0px';
|
||||
this.winContainer.style.top = this.title.style.height;
|
||||
this.winContainer.style.left = '0px';
|
||||
this.winContainer.style.zIndex = '-1';
|
||||
// this.winContainer.style.backgroundColor = params['bg_color'];
|
||||
// this.winContainer.className = params['win_class'];
|
||||
this.winContainer.src = '';
|
||||
}
|
||||
|
||||
this.clientArea.id = params['id']+'_clientArea';
|
||||
this.clientArea.style.position = 'absolute';
|
||||
this.clientArea.style.visibility = 'hidden';
|
||||
@ -140,9 +101,9 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
this.clientArea.style.height = params['height'];
|
||||
this.clientArea.style.top = parseInt(this.title.style.height) + 'px';
|
||||
this.clientArea.style.left = '0px';
|
||||
this.clientArea.style.backgroundColor = params['bg_color'];
|
||||
// this.clientArea.style.backgroundColor = params['bg_color'];
|
||||
// this.clientArea.style.overflow = 'auto';
|
||||
this.clientArea.className = params['win_class'];
|
||||
this.clientArea.className = 'dJSWin_main';
|
||||
|
||||
this.buttons.xDIV.id = params['id']+'_button';
|
||||
this.buttons.xDIV.style.position = 'absolute';
|
||||
@ -191,16 +152,11 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
this.border.l.style.visibility = 'hidden';
|
||||
this.border.r.style.visibility = 'hidden';
|
||||
|
||||
this.border.t.style.backgroundColor = params['title_color'];
|
||||
this.border.b.style.backgroundColor = params['title_color'];
|
||||
this.border.l.style.backgroundColor = params['title_color'];
|
||||
this.border.r.style.backgroundColor = params['title_color'];
|
||||
this.border.t.className = 'dJSWin_title';
|
||||
this.border.b.className = 'dJSWin_title';
|
||||
this.border.l.className = 'dJSWin_title';
|
||||
this.border.r.className = 'dJSWin_title';
|
||||
|
||||
this.border.t.className = params['title_class'];
|
||||
this.border.b.className = params['title_class'];
|
||||
this.border.l.className = params['title_class'];
|
||||
this.border.r.className = params['title_class'];
|
||||
|
||||
this.border.t.style.border = '0px';
|
||||
this.border.b.style.border = '0px';
|
||||
this.border.l.style.border = '0px';
|
||||
@ -213,54 +169,25 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
this.border.l.style.width = '2px';
|
||||
this.border.r.style.width = '2px';
|
||||
|
||||
if (is_ie)
|
||||
{
|
||||
this.border.t.style.height = '0';
|
||||
this.border.b.style.height = '0';
|
||||
this.border.l.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 2 + 'px';
|
||||
this.border.r.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 2 + 'px';
|
||||
this.border.t.style.height = '2px';
|
||||
this.border.b.style.height = '2px';
|
||||
this.border.l.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 4 + 'px';
|
||||
this.border.r.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 4 + 'px';
|
||||
|
||||
this.border.t.style.top = '0';
|
||||
this.border.b.style.top = parseInt(params['height']) + parseInt(this.title.style.height) + 'px';
|
||||
this.border.l.style.top = '0';
|
||||
this.border.r.style.top = '0';
|
||||
}
|
||||
else
|
||||
{
|
||||
this.border.t.style.height = '2px';
|
||||
this.border.b.style.height = '2px';
|
||||
this.border.l.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 4 + 'px';
|
||||
this.border.r.style.height = parseInt(params['height']) + parseInt(this.title.style.height) + 4 + 'px';
|
||||
|
||||
this.border.t.style.top = '-2px';
|
||||
this.border.b.style.top = parseInt(params['height']) + parseInt(this.title.style.height) + 'px';
|
||||
this.border.l.style.top = '-2px';
|
||||
this.border.r.style.top = '-2px';
|
||||
}
|
||||
this.border.t.style.top = '-2px';
|
||||
this.border.b.style.top = parseInt(params['height']) + parseInt(this.title.style.height) + 'px';
|
||||
this.border.l.style.top = '-2px';
|
||||
this.border.r.style.top = '-2px';
|
||||
|
||||
this.border.t.style.left = '-2px';
|
||||
this.border.b.style.left = '-2px';
|
||||
this.border.l.style.left = '-2px';
|
||||
this.border.r.style.left = params['width'];
|
||||
|
||||
//this.winContainer.style.width = parseInt(this.winContainer.style.width) + 4 + 'px';
|
||||
//this.winContainer.style.height = parseInt(this.winContainer.style.height) + 4 + 'px';
|
||||
//this.clientArea.style.width = parseInt(this.clientArea.style.width) + 4 + 'px';
|
||||
//this.clientArea.style.height = parseInt(this.clientArea.style.height) + 4 + 'px';
|
||||
|
||||
//this.title.style.top = parseInt(this.title.style.top) + 2 + 'px';
|
||||
//this.clientArea.style.top = parseInt(this.clientArea.style.top) + 2 + 'px';
|
||||
//this.buttons.xDIV.style.top = parseInt(this.buttons.xDIV.style.top) + 2 + 'px';
|
||||
this.shadows.b.style.top = parseInt(this.shadows.b.style.top) + 2 + 'px';
|
||||
this.shadows.r.style.top = parseInt(this.shadows.r.style.top) + 2 + 'px';
|
||||
//this.content.style.top = parseInt(this.content.style.top) + 2 + 'px';
|
||||
|
||||
//this.title.style.left = parseInt(this.title.style.left) + 2 + 'px';
|
||||
//this.clientArea.style.left = parseInt(this.clientArea.style.left) + 2 + 'px';
|
||||
//this.buttons.xDIV.style.left = parseInt(this.buttons.xDIV.style.left) + 2 + 'px';
|
||||
this.shadows.b.style.left = parseInt(this.shadows.b.style.left) + 2 + 'px';
|
||||
this.shadows.r.style.left = parseInt(this.shadows.r.style.left) + 2 + 'px';
|
||||
//this.content.style.left = '2px';
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -274,28 +201,11 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
{
|
||||
this.content.parentNode.removeChild(this.content);
|
||||
}
|
||||
/*
|
||||
this.winContainer.appendChild(this.title);
|
||||
this.winContainer.appendChild(this.buttons.xDIV);
|
||||
this.winContainer.appendChild(this.border.t);
|
||||
this.winContainer.appendChild(this.border.b);
|
||||
this.winContainer.appendChild(this.border.l);
|
||||
this.winContainer.appendChild(this.border.r);
|
||||
this.winContainer.appendChild(this.shadows.r);
|
||||
this.winContainer.appendChild(this.shadows.b);
|
||||
this.winContainer.appendChild(this.content);
|
||||
*/
|
||||
if (is_ie)
|
||||
{
|
||||
this.title.appendChild(this.winContainer);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.title.appendChild(this.border.t);
|
||||
}
|
||||
|
||||
this.title.appendChild(this.title_text);
|
||||
this.title.appendChild(this.clientArea);
|
||||
this.title.appendChild(this.buttons.xDIV);
|
||||
this.title.appendChild(this.border.t);
|
||||
this.title.appendChild(this.border.b);
|
||||
this.title.appendChild(this.border.l);
|
||||
this.title.appendChild(this.border.r);
|
||||
@ -304,7 +214,7 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
this.clientArea.appendChild(this.content);
|
||||
|
||||
document.body.appendChild(this.title);
|
||||
|
||||
this.draw();
|
||||
}
|
||||
|
||||
dJSWin.prototype.close = function()
|
||||
@ -314,27 +224,8 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
|
||||
dJSWin.prototype.open = function()
|
||||
{
|
||||
/* if (is_ie)
|
||||
{
|
||||
this.moveTo(document.body.offsetWidth/2 - dd.elements[this.title.id].w/2,
|
||||
document.body.offsetHeight/2 - dd.elements[this.winContainer.id].h/2);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.moveTo(window.innerWidth/2 - dd.elements[this.title.id].w/2,
|
||||
window.innerHeight/2 - dd.elements[this.clientArea.id].h/2);
|
||||
}
|
||||
*/
|
||||
if (is_ie)
|
||||
{
|
||||
this.moveTo(document.body.offsetWidth/2 + document.body.scrollLeft - dd.elements[this.title.id].w/2,
|
||||
document.body.offsetHeight/2 + document.body.scrollTop - dd.elements[this.winContainer.id].h/2);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.moveTo(window.innerWidth/2 + window.pageXOffset - dd.elements[this.title.id].w/2,
|
||||
window.innerHeight/2 + window.pageYOffset - dd.elements[this.clientArea.id].h/2);
|
||||
}
|
||||
this.moveTo(window.innerWidth/2 + window.pageXOffset - dd.elements[this.title.id].w/2,
|
||||
window.innerHeight/2 + window.pageYOffset - dd.elements[this.clientArea.id].h/2);
|
||||
|
||||
dd.elements[this.title.id].maximizeZ();
|
||||
dd.elements[this.title.id].show();
|
||||
@ -372,34 +263,25 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
return;
|
||||
}
|
||||
|
||||
if (is_ie)
|
||||
if (this.drawn)
|
||||
{
|
||||
ADD_DHTML(this.winContainer.id+NO_DRAG);
|
||||
}
|
||||
else
|
||||
{
|
||||
ADD_DHTML(this.border.t.id+NO_DRAG);
|
||||
return;
|
||||
}
|
||||
|
||||
this.drawn = true;
|
||||
|
||||
ADD_DHTML(this.title.id+CURSOR_MOVE);
|
||||
ADD_DHTML(this.clientArea.id+NO_DRAG);
|
||||
ADD_DHTML(this.buttons.xDIV.id+NO_DRAG);
|
||||
ADD_DHTML(this.content.id+NO_DRAG);
|
||||
ADD_DHTML(this.shadows.r.id+NO_DRAG);
|
||||
ADD_DHTML(this.shadows.b.id+NO_DRAG);
|
||||
ADD_DHTML(this.border.t.id+NO_DRAG);
|
||||
ADD_DHTML(this.border.b.id+NO_DRAG);
|
||||
ADD_DHTML(this.border.l.id+NO_DRAG);
|
||||
ADD_DHTML(this.border.r.id+NO_DRAG);
|
||||
|
||||
if (is_ie)
|
||||
{
|
||||
dd.elements[this.title.id].addChild(dd.elements[this.winContainer.id]);
|
||||
}
|
||||
else
|
||||
{
|
||||
dd.elements[this.title.id].addChild(dd.elements[this.border.t.id]);
|
||||
}
|
||||
//dd.elements[this.title.id].setZ(dd.elements[this.border.t.id].z+1);
|
||||
//dd.elements[this.title.id].maximizeZ();
|
||||
dd.elements[this.title.id].addChild(dd.elements[this.border.t.id]);
|
||||
|
||||
dd.elements[this.title.id].addChild(dd.elements[this.clientArea.id]);
|
||||
dd.elements[this.title.id].addChild(dd.elements[this.buttons.xDIV.id]);
|
||||
@ -420,36 +302,10 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
}
|
||||
}
|
||||
|
||||
// dd.elements[this.title.id].setZ('-1');
|
||||
|
||||
if (is_ie)
|
||||
{
|
||||
dd.elements[this.title.id].moveTo(document.body.offsetWidth/2 - dd.elements[this.winContainer.id].w/2,
|
||||
document.body.offsetHeight/2 - dd.elements[this.winContainer.id].h/2)
|
||||
}
|
||||
else
|
||||
{
|
||||
dd.elements[this.title.id].moveTo(window.innerWidth/2 - dd.elements[this.clientArea.id].w/2,
|
||||
window.innerHeight/2 - dd.elements[this.clientArea.id].h/2);
|
||||
}
|
||||
|
||||
dd.elements[this.title.id].hide();
|
||||
}
|
||||
|
||||
function _dJSWinElement(id)
|
||||
{
|
||||
if (document.getElementById)
|
||||
{
|
||||
return document.getElementById(id);
|
||||
}
|
||||
else if (document.all)
|
||||
{
|
||||
return document.all[id];
|
||||
}
|
||||
else
|
||||
{
|
||||
throw("Browser Not Supported!");
|
||||
}
|
||||
dd.elements[this.title.id].moveTo(window.innerWidth/2 - dd.elements[this.clientArea.id].w/2,
|
||||
window.innerHeight/2 - dd.elements[this.clientArea.id].h/2);
|
||||
|
||||
}
|
||||
|
||||
if (!dd.elements)
|
||||
@ -460,4 +316,3 @@ if (!window.__DEFINE_DJSWIN__)
|
||||
|
||||
SET_DHTML(div.id);
|
||||
}
|
||||
}
|
||||
|
@ -21,61 +21,19 @@
|
||||
* 'selectedClass': <name of the class to be used when Tab is selected>,
|
||||
* 'unselectedClass': <name of the class to be used when Tab is not selected>});
|
||||
*/
|
||||
|
||||
if (document.all)
|
||||
{
|
||||
navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 ? is_ie5 = true : is_ie5 = false;
|
||||
is_ie = true;
|
||||
is_moz1_6 = false;
|
||||
is_mozilla = false;
|
||||
is_ns4 = false;
|
||||
}
|
||||
else if (document.getElementById)
|
||||
{
|
||||
navigator.userAgent.toLowerCase().match('mozilla.*rv[:]1\.6.*gecko') ? is_moz1_6 = true : is_moz1_6 = false;
|
||||
is_ie = false;
|
||||
is_ie5 = false;
|
||||
is_mozilla = true;
|
||||
is_ns4 = false;
|
||||
}
|
||||
else if (document.layers)
|
||||
{
|
||||
is_ie = false;
|
||||
is_ie5 = false
|
||||
is_moz1_6 = false;
|
||||
is_mozilla = false;
|
||||
is_ns4 = true;
|
||||
}
|
||||
|
||||
/* The code below is a wrapper to call the dTabs content insertion
|
||||
* just after the document is loaded in IE... I still don't know why people
|
||||
* use this crap!
|
||||
|
||||
/* Mozilla 1.6 has a bug which impossibilitates it to manage DOM contents that are defined in the
|
||||
* original document. So we have to workaround it.
|
||||
*/
|
||||
var _dTabs_onload;
|
||||
|
||||
if (document.all)
|
||||
{
|
||||
_dTabs_onload = false;
|
||||
|
||||
var _dTabs_onload_f = document.body.onload;
|
||||
var _dTabs_f = function(e)
|
||||
{
|
||||
_dTabs_onload = true;
|
||||
|
||||
if (_dTabs_onload_f)
|
||||
{
|
||||
_dTabs_onload_f();
|
||||
}
|
||||
};
|
||||
|
||||
document.body.onload = _dTabs_f;
|
||||
}
|
||||
else
|
||||
{
|
||||
_dTabs_onload = true;
|
||||
}
|
||||
|
||||
navigator.userAgent.toLowerCase().match('mozilla.*rv[:]1\.6.*gecko') ? is_moz1_6 = true : is_moz1_6 = false;
|
||||
|
||||
function dTabsManager(params)
|
||||
{
|
||||
this._tabEvents = { show: {}, hide: {}};
|
||||
this.init(params);
|
||||
}
|
||||
|
||||
dTabsManager.prototype.init = function(params)
|
||||
{
|
||||
/* Attributes definition */
|
||||
this._Tabs = new Array();
|
||||
@ -91,7 +49,13 @@
|
||||
|
||||
|
||||
/* Create and insert the container */
|
||||
var table, tbody, tr, td;
|
||||
var table, tbody, tr, td, style;
|
||||
|
||||
style = document.createElement('link');
|
||||
style.href = GLOBALS['serverRoot'] + "phpgwapi/js/dTabs/dTabs.css";
|
||||
style.rel = "stylesheet";
|
||||
style.type = "text/css";
|
||||
document.body.appendChild(style);
|
||||
|
||||
this._Tabs['root'] = document.createElement('div');
|
||||
this._Tabs['root'].id = params['id'];
|
||||
@ -106,11 +70,18 @@
|
||||
table.style.border = '0px solid black';
|
||||
table.style.width = '100%';
|
||||
table.style.height = '100%';
|
||||
table.cellpadding = '10px';
|
||||
|
||||
this._Tabs['tabIndexTR'] = document.createElement('tr');
|
||||
this._Tabs['tabIndexTR'].style.height = '30px';
|
||||
this._Tabs['tabIndexTR'].className = 'dTabs_tr_index';
|
||||
//this._Tabs['tabIndexTR'].style.width = '100%';
|
||||
|
||||
this._Tabs['emptyTab'] = document.createElement('td');
|
||||
this._Tabs['emptyTab'].className = 'dTabs_noTabs';
|
||||
this._Tabs['emptyTab'].innerHTML = ' ';
|
||||
this._Tabs['tabIndexTR'].appendChild(this._Tabs['emptyTab']);
|
||||
|
||||
tr = document.createElement('tr');
|
||||
td = document.createElement('td');
|
||||
|
||||
@ -131,29 +102,7 @@
|
||||
|
||||
this._Tabs['contents'] = new Array();
|
||||
|
||||
if (!_dTabs_onload)
|
||||
{
|
||||
if (document.getElementById && !document.all)
|
||||
{
|
||||
document.body.appendChild(this._Tabs['root']);
|
||||
}
|
||||
else
|
||||
{
|
||||
var _this = this;
|
||||
var now = document.body.onload ? document.body.onload : null;
|
||||
var f = function(e)
|
||||
{
|
||||
document.body.appendChild(_this._Tabs['root']);
|
||||
now ? now() : false;
|
||||
};
|
||||
|
||||
document.body.onload = f;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
document.body.appendChild(this._Tabs['root']);
|
||||
}
|
||||
document.body.appendChild(this._Tabs['root']);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -167,9 +116,9 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!params['id'] || !_dtElement(params['id']) ||
|
||||
_dtElement(params['id']).tagName.toLowerCase() != 'div' ||
|
||||
_dtElement(params['id']).style.position.toLowerCase() != 'absolute')
|
||||
if (!params['id'] || !Element(params['id']) ||
|
||||
Element(params['id']).tagName.toLowerCase() != 'div' ||
|
||||
Element(params['id']).style.position.toLowerCase() != 'absolute')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -181,7 +130,7 @@
|
||||
}
|
||||
|
||||
//var contents, tdIndex;
|
||||
var element = _dtElement(params['id']);
|
||||
var element = Element(params['id']);
|
||||
|
||||
if (is_moz1_6)
|
||||
{/*
|
||||
@ -205,23 +154,23 @@
|
||||
this._Tabs.tabIndexTDs[params['id']] = document.createElement('td');
|
||||
|
||||
var _this = this;
|
||||
this._Tabs.tabIndexTDs[params['id']].innerHTML = ' '+(params['name'] ? params['name'] : 'undefined')+' ';
|
||||
this._Tabs.tabIndexTDs[params['id']].selectedClassName = 'dTabs_selected';
|
||||
this._Tabs.tabIndexTDs[params['id']].unselectedClassName = 'dTabs_unselected';
|
||||
this._Tabs.tabIndexTDs[params['id']].className = 'dTabs_unselected';
|
||||
this._Tabs.tabIndexTDs[params['id']].onclick = function() {_this._showTab(params['id']);};
|
||||
|
||||
/* Old Version
|
||||
this._Tabs.tabIndexTDs[params['id']].innerHTML = params['name'] ? params['name'] : 'undefined';
|
||||
this._Tabs.tabIndexTDs[params['id']].selectedClassName = params['selectedClass'];
|
||||
this._Tabs.tabIndexTDs[params['id']].unselectedClassName = params['unselectedClass'];
|
||||
this._Tabs.tabIndexTDs[params['id']].className = params['unselectedClass'];
|
||||
this._Tabs.tabIndexTDs[params['id']].onclick = function() {_this._showTab(params['id']);};
|
||||
*/
|
||||
|
||||
for (var i in this._Tabs.tabIndexTDs)
|
||||
{
|
||||
if (i == 'length')
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this._Tabs.tabIndexTDs[i].style.width = (100/(this._nTabs+1)) + '%';
|
||||
}
|
||||
|
||||
this._Tabs.tabIndexTR.removeChild(this._Tabs['emptyTab']);
|
||||
this._Tabs.tabIndexTR.appendChild(this._Tabs.tabIndexTDs[params['id']]);
|
||||
this._Tabs.tabIndexTR.appendChild(this._Tabs['emptyTab']);
|
||||
|
||||
if (!is_moz1_6)
|
||||
{
|
||||
@ -258,6 +207,25 @@
|
||||
return this._Tabs.root;
|
||||
}
|
||||
|
||||
dTabsManager.prototype.enableTab = function(id)
|
||||
{
|
||||
if (this._Tabs.contents[id])
|
||||
{
|
||||
var _this = this;
|
||||
this._Tabs.tabIndexTDs[id].className = 'dTabs_unselected';
|
||||
this._Tabs.tabIndexTDs[id].onclick = function() {_this._showTab(id);};
|
||||
}
|
||||
}
|
||||
|
||||
dTabsManager.prototype.disableTab = function(id)
|
||||
{
|
||||
if (this._Tabs.contents[id])
|
||||
{
|
||||
this._Tabs.tabIndexTDs[id].className = 'dTabs_disabled';
|
||||
this._Tabs.tabIndexTDs[id].onclick = false;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************\
|
||||
* Private Methods *
|
||||
\****************************************************************************/
|
||||
@ -290,20 +258,25 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
this._Tabs.contents[i].style.visibility = 'hidden';
|
||||
this._Tabs.contents[i].style.zIndex = '-1';
|
||||
//viniciuscb: mystery
|
||||
if (this._Tabs.contents[i].style != null)
|
||||
{
|
||||
this._Tabs.contents[i].style.visibility = 'hidden';
|
||||
this._Tabs.contents[i].style.display = 'none';
|
||||
this._Tabs.contents[i].style.zIndex = '-1';
|
||||
if (this._tabEvents['hide'][i]) this._tabEvents['hide'][i]();
|
||||
}
|
||||
}
|
||||
|
||||
this._Tabs.contents[id].style.visibility = 'visible';
|
||||
this._Tabs.contents[id].style.display = '';
|
||||
this._Tabs.contents[id].style.zIndex = '10';
|
||||
if (this._tabEvents['show'][id]) this._tabEvents['show'][id]();
|
||||
|
||||
if (this._selectedIndex && this._selectedIndex != id)
|
||||
{
|
||||
this._Tabs.tabIndexTDs[this._selectedIndex].className = this._Tabs.tabIndexTDs[this._selectedIndex].unselectedClassName;
|
||||
if (!document.all)
|
||||
{
|
||||
this._focus(this._Tabs.contents[id]);
|
||||
}
|
||||
this._focus(this._Tabs.contents[id]);
|
||||
}
|
||||
|
||||
this._selectedIndex = id;
|
||||
@ -327,19 +300,3 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _dtElement(id)
|
||||
{
|
||||
if (document.getElementById)
|
||||
{
|
||||
return document.getElementById(id);
|
||||
}
|
||||
else if (document.all)
|
||||
{
|
||||
return document.all[id];
|
||||
}
|
||||
else
|
||||
{
|
||||
throw('Browser not supported');
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,7 @@
|
||||
_editor_lang = "en";
|
||||
</script>
|
||||
<script type="text/javascript" src="../htmlarea.js"></script>
|
||||
<script type="text/javascript" src="../htmlarea_css.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
html, body {
|
||||
|
@ -18,11 +18,13 @@
|
||||
editor.registerPlugin(FullPage);
|
||||
editor.generate();
|
||||
}
|
||||
|
||||
HTMLArea.onload = initDocument;
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="initDocument()">
|
||||
<body onload="HTMLArea.init()">
|
||||
<h1>Test of FullPage plugin</h1>
|
||||
|
||||
<textarea id="editor" style="height: 30em; width: 100%;">
|
||||
@ -69,7 +71,7 @@
|
||||
<hr />
|
||||
<address><a href="http://dynarch.com/mishoo/">Mihai Bazon</a></address>
|
||||
<!-- Created: Wed Oct 1 19:55:37 EEST 2003 -->
|
||||
<!-- hhmts start --> Last modified: Wed Jan 28 11:10:07 EET 2004 <!-- hhmts end -->
|
||||
<!-- hhmts start --> Last modified: Wed Aug 11 13:59:07 CEST 2004 <!-- hhmts end -->
|
||||
<!-- doc-lang: English -->
|
||||
</body>
|
||||
</html>
|
||||
|
@ -28,15 +28,17 @@
|
||||
// in our case "lang/en.js" loaded above).
|
||||
|
||||
// If this lang file is not found the plugin will fail to
|
||||
// load correctly and nothing will work.
|
||||
// load correctly and NOTHING WILL WORK.
|
||||
|
||||
HTMLArea.loadPlugin("TableOperations");
|
||||
HTMLArea.loadPlugin("SpellChecker");
|
||||
HTMLArea.loadPlugin("FullPage");
|
||||
HTMLArea.loadPlugin("CSS");
|
||||
HTMLArea.loadPlugin("ContextMenu");
|
||||
HTMLArea.loadPlugin("HtmlTidy");
|
||||
//HTMLArea.loadPlugin("HtmlTidy");
|
||||
HTMLArea.loadPlugin("ListType");
|
||||
HTMLArea.loadPlugin("CharacterMap");
|
||||
HTMLArea.loadPlugin("DynamicCSS");
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
@ -54,6 +56,7 @@ textarea { background-color: #fff; border: 1px solid 00f; }
|
||||
|
||||
<script type="text/javascript">
|
||||
var editor = null;
|
||||
|
||||
function initEditor() {
|
||||
|
||||
// create an editor for the "ta" textbox
|
||||
@ -69,11 +72,14 @@ function initEditor() {
|
||||
editor.registerPlugin(SpellChecker);
|
||||
|
||||
// register the HtmlTidy plugin
|
||||
editor.registerPlugin(HtmlTidy);
|
||||
//editor.registerPlugin(HtmlTidy);
|
||||
|
||||
// register the ListType plugin
|
||||
editor.registerPlugin(ListType);
|
||||
|
||||
editor.registerPlugin(CharacterMap);
|
||||
editor.registerPlugin(DynamicCSS);
|
||||
|
||||
// register the CSS plugin
|
||||
editor.registerPlugin(CSS, {
|
||||
combos : [
|
||||
@ -112,12 +118,12 @@ function initEditor() {
|
||||
// load the stylesheet used by our CSS plugin configuration
|
||||
editor.config.pageStyle = "@import url(custom.css);";
|
||||
|
||||
setTimeout(function() {
|
||||
editor.generate();
|
||||
}, 500);
|
||||
editor.generate();
|
||||
return false;
|
||||
}
|
||||
|
||||
HTMLArea.onload = initEditor;
|
||||
|
||||
function insertHTML() {
|
||||
var html = prompt("Enter some HTML code here");
|
||||
if (html) {
|
||||
@ -133,7 +139,7 @@ function highlight() {
|
||||
|
||||
<!-- use <body onload="HTMLArea.replaceAll()" if you don't care about
|
||||
customizing the editor. It's the easiest way! :) -->
|
||||
<body onload="initEditor()">
|
||||
<body onload="HTMLArea.init();">
|
||||
|
||||
<h1>HTMLArea 3.0</h1>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
<address>mishoo@infoiasi.ro</address>
|
||||
<address>mihai_bazon@yahoo.com</address>
|
||||
<!-- hhmts start --> Last modified: Sun Feb 1 13:30:39 EET 2004 <!-- hhmts end -->
|
||||
</body> </html>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
.htmlarea .toolbar {
|
||||
cursor: default;
|
||||
background: ButtonFace;
|
||||
padding: 1px 1px 2px 1px;
|
||||
padding: 3px;
|
||||
border: 1px solid;
|
||||
border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
|
||||
}
|
||||
@ -20,11 +20,16 @@
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
.htmlarea .toolbar .buttonHover {
|
||||
.htmlarea .toolbar a.button:hover {
|
||||
border: 1px solid;
|
||||
border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
|
||||
}
|
||||
.htmlarea .toolbar .buttonActive, .htmlarea .toolbar .buttonPressed {
|
||||
.htmlarea .toolbar a.buttonDisabled:hover {
|
||||
border-color: ButtonFace;
|
||||
}
|
||||
.htmlarea .toolbar .buttonActive,
|
||||
.htmlarea .toolbar .buttonPressed
|
||||
{
|
||||
padding: 2px 0px 0px 2px;
|
||||
border: 1px solid;
|
||||
border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
|
||||
@ -42,12 +47,12 @@
|
||||
}
|
||||
|
||||
.htmlarea .toolbar .buttonDisabled img {
|
||||
filter: alpha(opacity = 25);
|
||||
filter: gray() alpha(opacity = 25);
|
||||
-moz-opacity: 0.25;
|
||||
}
|
||||
|
||||
.htmlarea .toolbar .separator {
|
||||
position: relative;
|
||||
/*position: relative;*/
|
||||
margin: 3px;
|
||||
border-left: 1px solid ButtonShadow;
|
||||
border-right: 1px solid ButtonHighlight;
|
||||
@ -64,6 +69,11 @@
|
||||
.htmlarea .toolbar select:hover,
|
||||
.htmlarea .toolbar select:active { background: FieldFace; color: ButtonText; }
|
||||
|
||||
.htmlarea iframe
|
||||
{
|
||||
border: none;
|
||||
}
|
||||
|
||||
.htmlarea .statusBar {
|
||||
border: 1px solid;
|
||||
border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
|
||||
@ -102,7 +112,8 @@
|
||||
|
||||
.dialog table { border-collapse: collapse; }
|
||||
|
||||
.dialog .title {
|
||||
.dialog .title, .dialog h1
|
||||
{
|
||||
background: #008;
|
||||
color: #ff8;
|
||||
border-bottom: 1px solid #000;
|
||||
@ -111,7 +122,7 @@
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.dialog h1 { margin:0px;}
|
||||
.dialog .title .button {
|
||||
float: right;
|
||||
border: 1px solid #66a;
|
||||
@ -178,3 +189,46 @@
|
||||
}
|
||||
|
||||
form { margin: 0px; border: none; }
|
||||
|
||||
|
||||
/** Panels **/
|
||||
.htmlarea .panels.top
|
||||
{
|
||||
border-bottom : 1px solid;
|
||||
border-color: ButtonShadow;
|
||||
}
|
||||
|
||||
.htmlarea .panels.right
|
||||
{
|
||||
border-left : 1px solid;
|
||||
border-color: ButtonShadow;
|
||||
}
|
||||
|
||||
.htmlarea .panels.left
|
||||
{
|
||||
border-right : 1px solid;
|
||||
border-color: ButtonShadow;
|
||||
}
|
||||
|
||||
.htmlarea .panels.bottom
|
||||
{
|
||||
border-top : 1px solid;
|
||||
border-color: ButtonShadow;
|
||||
}
|
||||
|
||||
.htmlarea .panel h1 {
|
||||
background: ButtonFace;
|
||||
border: 1px solid;
|
||||
border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-size:100%;
|
||||
font-weight:bold;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.htmlarea .panels.left .panel { border-right:none; border-left:none; }
|
||||
.htmlarea .panels.left h1 { border-right:none; }
|
||||
.htmlarea .panels.right .panel { border-right:none; border-left:none; }
|
||||
.htmlarea .panels.left h1 { border-left:none; }
|
||||
div.htmlarea { border: 1px solid black; }
|
File diff suppressed because it is too large
Load Diff
@ -46,7 +46,7 @@
|
||||
Please see our About Box for details about who sponsored what plugins.
|
||||
</p>
|
||||
|
||||
<h2>Online demos</h2>
|
||||
<h2><a href="examples/">Online demos</a></h2>
|
||||
|
||||
<ul>
|
||||
|
||||
@ -184,7 +184,7 @@ find htmlarea/ -name "*.cgi" -exec chmod 755 {} \;</pre>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>You can <a href="mailto:mishoo@infoiasi.ro">contact me directly</a>
|
||||
<p>You can <a href="mailto:mihai_bazon@yahoo.com">contact me directly</a>
|
||||
<em>only</em> if you want to pay me for implementing custom features to
|
||||
HTMLArea. If you want to sponsor these features (that is, allow them to
|
||||
get back into the public HTMLArea distribution) I'll be cheaper. ;-)</p>
|
||||
@ -192,7 +192,7 @@ find htmlarea/ -name "*.cgi" -exec chmod 755 {} \;</pre>
|
||||
<hr />
|
||||
<address><a href="http://dynarch.com/mishoo/">Mihai Bazon</a></address>
|
||||
<!-- Created: Sun Aug 3 14:11:26 EEST 2003 -->
|
||||
<!-- hhmts start --> Last modified: Wed Jan 28 11:54:47 EET 2004 <!-- hhmts end -->
|
||||
<!-- hhmts start --> Last modified: Wed Jul 14 13:20:53 CEST 2004 <!-- hhmts end -->
|
||||
<!-- doc-lang: English -->
|
||||
</body>
|
||||
</html>
|
||||
|
@ -43,7 +43,8 @@ HTMLArea.I18N = {
|
||||
copy: "Kopieren",
|
||||
paste: "Einfügen aus der Zwischenablage",
|
||||
lefttoright: "Textrichtung von Links nach Rechts",
|
||||
righttoleft: "Textrichtung von Rechts nach Links"
|
||||
righttoleft: "Textrichtung von Rechts nach Links",
|
||||
removeformat: "Formatierung entfernen"
|
||||
},
|
||||
|
||||
buttons: {
|
||||
|
@ -50,7 +50,10 @@ HTMLArea.I18N = {
|
||||
copy: "Copy selection",
|
||||
paste: "Paste from clipboard",
|
||||
lefttoright: "Direction left to right",
|
||||
righttoleft: "Direction right to left"
|
||||
righttoleft: "Direction right to left",
|
||||
removeformat: "Remove formatting",
|
||||
print: "Print document",
|
||||
killword: "Clear MSOffice tags"
|
||||
},
|
||||
|
||||
buttons: {
|
||||
@ -70,24 +73,74 @@ HTMLArea.I18N = {
|
||||
"it's very likely that you'll get a 'General Protection Fault' and need to reboot.\n\n" +
|
||||
"You have been warned. Please press OK if you still want to try the full screen editor.",
|
||||
|
||||
"Moz-Clipboard" :
|
||||
"Unprivileged scripts cannot access Cut/Copy/Paste programatically " +
|
||||
"for security reasons. Click OK to see a technical note at mozilla.org " +
|
||||
"which shows you how to allow a script to access the clipboard."
|
||||
"MOZ-security-clipboard" :
|
||||
// Translate Here
|
||||
"The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly."
|
||||
},
|
||||
|
||||
dialogs: {
|
||||
"Cancel" : "Cancel",
|
||||
"Insert/Modify Link" : "Insert/Modify Link",
|
||||
"New window (_blank)" : "New window (_blank)",
|
||||
"None (use implicit)" : "None (use implicit)",
|
||||
// Common
|
||||
"OK" : "OK",
|
||||
"Other" : "Other",
|
||||
"Cancel" : "Cancel",
|
||||
|
||||
"Alignment:" : "Alignment:",
|
||||
"Not set" : "Not set",
|
||||
"Left" : "Left",
|
||||
"Right" : "Right",
|
||||
"Texttop" : "Texttop",
|
||||
"Absmiddle" : "Absmiddle",
|
||||
"Baseline" : "Baseline",
|
||||
"Absbottom" : "Absbottom",
|
||||
"Bottom" : "Bottom",
|
||||
"Middle" : "Middle",
|
||||
"Top" : "Top",
|
||||
|
||||
"Layout" : "Layout",
|
||||
"Spacing" : "Spacing",
|
||||
"Horizontal:" : "Horizontal:",
|
||||
"Horizontal padding" : "Horizontal padding",
|
||||
"Vertical:" : "Vertical:",
|
||||
"Vertical padding" : "Vertical padding",
|
||||
"Border thickness:" : "Border thickness:",
|
||||
"Leave empty for no border" : "Leave empty for no border",
|
||||
|
||||
// Insert Link
|
||||
"Insert/Modify Link" : "Insert/Modify Link",
|
||||
"None (use implicit)" : "None (use implicit)",
|
||||
"New window (_blank)" : "New window (_blank)",
|
||||
"Same frame (_self)" : "Same frame (_self)",
|
||||
"Top frame (_top)" : "Top frame (_top)",
|
||||
"Other" : "Other",
|
||||
"Target:" : "Target:",
|
||||
"Title (tooltip):" : "Title (tooltip):",
|
||||
"Top frame (_top)" : "Top frame (_top)",
|
||||
"URL:" : "URL:",
|
||||
"You must enter the URL where this link points to" : "You must enter the URL where this link points to"
|
||||
"You must enter the URL where this link points to" : "You must enter the URL where this link points to",
|
||||
// Insert Table
|
||||
"Insert Table" : "Insert Table",
|
||||
"Rows:" : "Rows:",
|
||||
"Number of rows" : "Number of rows",
|
||||
"Cols:" : "Cols:",
|
||||
"Number of columns" : "Number of columns",
|
||||
"Width:" : "Width:",
|
||||
"Width of the table" : "Width of the table",
|
||||
"Percent" : "Percent",
|
||||
"Pixels" : "Pixels",
|
||||
"Em" : "Em",
|
||||
"Width unit" : "Width unit",
|
||||
"Positioning of this table" : "Positioning of this table",
|
||||
"Cell spacing:" : "Cell spacing:",
|
||||
"Space between adjacent cells" : "Space between adjacent cells",
|
||||
"Cell padding:" : "Cell padding:",
|
||||
"Space between content and border in cell" : "Space between content and border in cell",
|
||||
// Insert Image
|
||||
"Insert Image" : "Insert Image",
|
||||
"Image URL:" : "Image URL:",
|
||||
"Enter the image URL here" : "Enter the image URL here",
|
||||
"Preview" : "Preview",
|
||||
"Preview the image in a new window" : "Preview the image in a new window",
|
||||
"Alternate text:" : "Alternate text:",
|
||||
"For browsers that don't support images" : "For browsers that don't support images",
|
||||
"Positioning of this image" : "Positioning of this image",
|
||||
"Image Preview:" : "Image Preview:"
|
||||
}
|
||||
};
|
||||
|
@ -2,50 +2,50 @@
|
||||
|
||||
HTMLArea.I18N = {
|
||||
|
||||
// the following should be the filename without .js extension
|
||||
// it will be used for automatically load plugin language.
|
||||
lang: "es",
|
||||
// the following should be the filename without .js extension
|
||||
// it will be used for automatically load plugin language.
|
||||
lang: "es",
|
||||
|
||||
tooltips: {
|
||||
bold: "Negrita",
|
||||
italic: "Cursiva",
|
||||
underline: "Subrayado",
|
||||
strikethrough: "Tachado",
|
||||
subscript: "Subíndice",
|
||||
superscript: "Superíndice",
|
||||
justifyleft: "Alinear a la Izquierda",
|
||||
justifycenter: "Centrar",
|
||||
justifyright: "Alinear a la Derecha",
|
||||
justifyfull: "Justificar",
|
||||
orderedlist: "Lista Ordenada",
|
||||
unorderedlist: "Lista No Ordenada",
|
||||
outdent: "Aumentar Sangría",
|
||||
indent: "Disminuir Sangría",
|
||||
forecolor: "Color del Texto",
|
||||
hilitecolor: "Color del Fondo",
|
||||
inserthorizontalrule: "Línea Horizontal",
|
||||
createlink: "Insertar Enlace",
|
||||
insertimage: "Insertar Imagen",
|
||||
inserttable: "Insertar Tabla",
|
||||
htmlmode: "Ver Documento en HTML",
|
||||
popupeditor: "Ampliar Editor",
|
||||
about: "Acerca del Editor",
|
||||
showhelp: "Ayuda",
|
||||
textindicator: "Estilo Actual",
|
||||
undo: "Deshacer",
|
||||
redo: "Rehacer",
|
||||
cut: "Cortar selección",
|
||||
copy: "Copiar selección",
|
||||
paste: "Pegar desde el portapapeles"
|
||||
},
|
||||
tooltips: {
|
||||
bold: "Negrita",
|
||||
italic: "Cursiva",
|
||||
underline: "Subrayado",
|
||||
strikethrough: "Tachado",
|
||||
subscript: "Sub?ndice",
|
||||
superscript: "Super?ndice",
|
||||
justifyleft: "Alinear a la Izquierda",
|
||||
justifycenter: "Centrar",
|
||||
justifyright: "Alinear a la Derecha",
|
||||
justifyfull: "Justificar",
|
||||
orderedlist: "Lista Ordenada",
|
||||
unorderedlist: "Lista No Ordenada",
|
||||
outdent: "Aumentar Sangr?a",
|
||||
indent: "Disminuir Sangr?a",
|
||||
forecolor: "Color del Texto",
|
||||
hilitecolor: "Color del Fondo",
|
||||
inserthorizontalrule: "L?nea Horizontal",
|
||||
createlink: "Insertar Enlace",
|
||||
insertimage: "Insertar Imagen",
|
||||
inserttable: "Insertar Tabla",
|
||||
htmlmode: "Ver Documento en HTML",
|
||||
popupeditor: "Ampliar Editor",
|
||||
about: "Acerca del Editor",
|
||||
showhelp: "Ayuda",
|
||||
textindicator: "Estilo Actual",
|
||||
undo: "Deshacer",
|
||||
redo: "Rehacer",
|
||||
cut: "Cortar selecci?n",
|
||||
copy: "Copiar selecci?n",
|
||||
paste: "Pegar desde el portapapeles"
|
||||
},
|
||||
|
||||
buttons: {
|
||||
"ok": "Aceptar",
|
||||
"cancel": "Cancelar"
|
||||
},
|
||||
buttons: {
|
||||
"ok": "Aceptar",
|
||||
"cancel": "Cancelar"
|
||||
},
|
||||
|
||||
msg: {
|
||||
"Path": "Ruta",
|
||||
"TEXT_MODE": "Esta en modo TEXTO. Use el boton [<>] para cambiar a WYSIWIG",
|
||||
}
|
||||
msg: {
|
||||
"Path": "Ruta",
|
||||
"TEXT_MODE": "Esta en modo TEXTO. Use el boton [<>] para cambiar a WYSIWIG"
|
||||
}
|
||||
};
|
||||
|
@ -47,7 +47,7 @@ HTMLArea.I18N = {
|
||||
undo: "Ongedaan maken",
|
||||
redo: "Herhalen",
|
||||
cut: "Knippen",
|
||||
copy: "Kopiëren",
|
||||
copy: "Kopi?ren",
|
||||
paste: "Plakken",
|
||||
lefttoright: "Tekstrichting links naar rechts",
|
||||
righttoleft: "Tekstrichting rechts naar links"
|
||||
@ -61,7 +61,7 @@ HTMLArea.I18N = {
|
||||
msg: {
|
||||
"Path": "Pad",
|
||||
"TEXT_MODE": "Je bent in TEKST-mode. Gebruik de [<>] knop om terug te keren naar WYSIWYG-mode.",
|
||||
|
||||
|
||||
"IE-sucks-full-screen" :
|
||||
// translate here
|
||||
"Fullscreen-mode veroorzaakt problemen met Internet Explorer door bugs in de webbrowser " +
|
||||
@ -86,5 +86,4 @@ HTMLArea.I18N = {
|
||||
"URL:" : "URL:",
|
||||
"You must enter the URL where this link points to" : "Geef de URL in waar de link naar verwijst"
|
||||
}
|
||||
};
|
||||
|
||||
};
|
@ -1,51 +1,77 @@
|
||||
// I18N constants : Vietnamese
|
||||
// LANG: "en", ENCODING: UTF-8
|
||||
// Author: Nguyễn Đình Nam, <hncryptologist@yahoo.com>
|
||||
// Modified 21/07/2004 by Phạm Mai Quân <pmquan@4vn.org>
|
||||
|
||||
HTMLArea.I18N = {
|
||||
|
||||
// the following should be the filename without .js extension
|
||||
// it will be used for automatically load plugin language.
|
||||
lang: "vn",
|
||||
// the following should be the filename without .js extension
|
||||
// it will be used for automatically load plugin language.
|
||||
lang: "vn",
|
||||
|
||||
tooltips: {
|
||||
bold: "Đậm",
|
||||
italic: "Nghiêng",
|
||||
underline: "Gạch Chân",
|
||||
strikethrough: "Gạch Xóa",
|
||||
subscript: "Viết Xuống Dưới",
|
||||
superscript: "Viết Lên Trên",
|
||||
justifyleft: "Căn Trái",
|
||||
justifycenter: "Căn Giữa",
|
||||
justifyright: "Căn Phải",
|
||||
justifyfull: "Căn Đều",
|
||||
orderedlist: "Danh Sách Có Thứ Tự",
|
||||
unorderedlist: "Danh Sách Phi Thứ Tự",
|
||||
outdent: "Lùi Ra Ngoài",
|
||||
indent: "Thụt Vào Trong",
|
||||
forecolor: "Màu Chữ",
|
||||
backcolor: "Màu Nền",
|
||||
horizontalrule: "Dòng Kẻ Ngang",
|
||||
createlink: "Tạo Liên Kết",
|
||||
insertimage: "Chèn Ảnh",
|
||||
inserttable: "Chèn Bảng",
|
||||
htmlmode: "Chế Độ Mã HTML",
|
||||
popupeditor: "Phóng To Ô Soạn Thảo",
|
||||
about: "Tự Giới Thiệu",
|
||||
showhelp: "Giúp Đỡ",
|
||||
textindicator: "Định Dạng Hiện Thời",
|
||||
undo: "Undo",
|
||||
redo: "Redo",
|
||||
cut: "Cắt",
|
||||
copy: "Copy",
|
||||
paste: "Dán"
|
||||
},
|
||||
buttons: {
|
||||
"ok": "OK",
|
||||
"cancel": "Hủy"
|
||||
},
|
||||
msg: {
|
||||
"Path": "Đường Dẫn",
|
||||
"TEXT_MODE": "Bạn đang ở chế độ text. Sử dụng nút [<>] để chuyển lại chế độ WYSIWIG."
|
||||
}
|
||||
tooltips: {
|
||||
bold: "Đậm",
|
||||
italic: "Nghiêng",
|
||||
underline: "Gạch Chân",
|
||||
strikethrough: "Gạch Xóa",
|
||||
subscript: "Viết Xuống Dưới",
|
||||
superscript: "Viết Lên Trên",
|
||||
justifyleft: "Căn Trái",
|
||||
justifycenter: "Căn Giữa",
|
||||
justifyright: "Căn Phải",
|
||||
justifyfull: "Căn Đều",
|
||||
insertorderedlist: "Danh Sách Có Thứ Tự (1, 2, 3)",
|
||||
insertunorderedlist: "Danh Sách Phi Thứ Tự (Chấm đầu dòng)",
|
||||
outdent: "Lùi Ra Ngoài",
|
||||
indent: "Thụt Vào Trong",
|
||||
forecolor: "Màu Chữ",
|
||||
hilitecolor: "Màu Nền",
|
||||
inserthorizontalrule: "Dòng Kẻ Ngang",
|
||||
createlink: "Tạo Liên Kết",
|
||||
insertimage: "Chèn Ảnh",
|
||||
inserttable: "Chèn Bảng",
|
||||
htmlmode: "Chế Độ Mã HTML",
|
||||
popupeditor: "Phóng To Ô Soạn Thảo",
|
||||
about: "Tự Giới Thiệu",
|
||||
showhelp: "Giúp Đỡ",
|
||||
textindicator: "Định Dạng Hiện Thời",
|
||||
undo: "Hủy thao tác trước",
|
||||
redo: "Lấy lại thao tác vừa bỏ",
|
||||
cut: "Cắt",
|
||||
copy: "Sao chép",
|
||||
paste: "Dán",
|
||||
lefttoright: "Viết từ trái sang phải",
|
||||
righttoleft: "Viết từ phải sang trái"
|
||||
},
|
||||
buttons: {
|
||||
"ok": "Đồng ý",
|
||||
"cancel": "Hủy",
|
||||
|
||||
"IE-sucks-full-screen" :
|
||||
// translate here
|
||||
"Chế độ phóng to ô soạn thảo có thể gây lỗi với Internet Explorer vì một số lỗi của trình duyệt này," +
|
||||
" vì thế chế độ này có thể sẽ không chạy. Hiển thị không đúng, lộn xộn, không có đầy đủ chức năng," +
|
||||
" và cũng có thể làm trình duyệt của bạn bị tắt ngang. Nếu bạn đang sử dụng Windows 9x " +
|
||||
"bạn có thể bị báo lỗi 'General Protection Fault' và máy tính của bạn buộc phải khởi động lại.\n\n" +
|
||||
"Chúng tôi đã cảnh báo bạn. Nhấn nút 'Đồng ý' nếu bạn vẫn muốn sử dụng tính năng này."
|
||||
},
|
||||
msg: {
|
||||
"Path": "Đường Dẫn",
|
||||
"TEXT_MODE": "Bạn đang ở chế độ text. Sử dụng nút [<>] để chuyển lại chế độ WYSIWIG."
|
||||
},
|
||||
|
||||
dialogs: {
|
||||
"Cancel" : "Hủy",
|
||||
"Insert/Modify Link" : "Thêm/Chỉnh sửa đường dẫn",
|
||||
"New window (_blank)" : "Cửa sổ mới (_blank)",
|
||||
"None (use implicit)" : "Không (sử dụng implicit)",
|
||||
"OK" : "Đồng ý",
|
||||
"Other" : "Khác",
|
||||
"Same frame (_self)" : "Trên cùng khung (_self)",
|
||||
"Target:" : "Nơi hiện thị:",
|
||||
"Title (tooltip):" : "Tiêu đề (của hướng dẫn):",
|
||||
"Top frame (_top)" : "Khung trên cùng (_top)",
|
||||
"URL:" : "URL:",
|
||||
"You must enter the URL where this link points to" : "Bạn phải điền địa chỉ (URL) mà đường dẫn sẽ liên kết tới"
|
||||
}
|
||||
};
|
||||
|
@ -63,6 +63,26 @@ ContextMenu.prototype.getContextMenu = function(target) {
|
||||
tbo.buttonPress(editor, opcode);
|
||||
};
|
||||
|
||||
function insertPara(after) {
|
||||
var el = currentTarget;
|
||||
var par = el.parentNode;
|
||||
var p = editor._doc.createElement("p");
|
||||
p.appendChild(editor._doc.createElement("br"));
|
||||
par.insertBefore(p, after ? el.nextSibling : el);
|
||||
var sel = editor._getSelection();
|
||||
var range = editor._createRange(sel);
|
||||
if (!HTMLArea.is_ie) {
|
||||
sel.removeAllRanges();
|
||||
range.selectNodeContents(p);
|
||||
range.collapse(true);
|
||||
sel.addRange(range);
|
||||
} else {
|
||||
range.moveToElementText(p);
|
||||
range.collapse(true);
|
||||
range.select();
|
||||
}
|
||||
};
|
||||
|
||||
for (; target; target = target.parentNode) {
|
||||
var tag = target.tagName;
|
||||
if (!tag)
|
||||
@ -189,32 +209,41 @@ ContextMenu.prototype.getContextMenu = function(target) {
|
||||
i18n["Create a link"],
|
||||
config.btnList["createlink"][1] ]);
|
||||
|
||||
for (var i in elmenus)
|
||||
for (var i = 0; i < elmenus.length; ++i)
|
||||
menu.push(elmenus[i]);
|
||||
|
||||
menu.push(null,
|
||||
[ i18n["Remove the"] + " <" + currentTarget.tagName + "> " + i18n["Element"],
|
||||
function() {
|
||||
if (confirm(i18n["Please confirm that you want to remove this element:"] + " " + currentTarget.tagName)) {
|
||||
var el = currentTarget;
|
||||
var p = el.parentNode;
|
||||
p.removeChild(el);
|
||||
if (HTMLArea.is_gecko) {
|
||||
if (p.tagName.toLowerCase() == "td" && !p.hasChildNodes())
|
||||
p.appendChild(editor._doc.createElement("br"));
|
||||
editor.forceRedraw();
|
||||
editor.focusEditor();
|
||||
editor.updateToolbar();
|
||||
if (table) {
|
||||
var save_collapse = table.style.borderCollapse;
|
||||
table.style.borderCollapse = "collapse";
|
||||
table.style.borderCollapse = "separate";
|
||||
table.style.borderCollapse = save_collapse;
|
||||
if (!/html|body/i.test(currentTarget.tagName))
|
||||
menu.push(null,
|
||||
[ i18n["Remove the"] + " <" + currentTarget.tagName + "> " + i18n["Element"],
|
||||
function() {
|
||||
if (confirm(i18n["Please confirm that you want to remove this element:"] + " " +
|
||||
currentTarget.tagName)) {
|
||||
var el = currentTarget;
|
||||
var p = el.parentNode;
|
||||
p.removeChild(el);
|
||||
if (HTMLArea.is_gecko) {
|
||||
if (p.tagName.toLowerCase() == "td" && !p.hasChildNodes())
|
||||
p.appendChild(editor._doc.createElement("br"));
|
||||
editor.forceRedraw();
|
||||
editor.focusEditor();
|
||||
editor.updateToolbar();
|
||||
if (table) {
|
||||
var save_collapse = table.style.borderCollapse;
|
||||
table.style.borderCollapse = "collapse";
|
||||
table.style.borderCollapse = "separate";
|
||||
table.style.borderCollapse = save_collapse;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
i18n["Remove this node from the document"] ]);
|
||||
},
|
||||
i18n["Remove this node from the document"] ],
|
||||
[ i18n["Insert paragraph before"],
|
||||
function() { insertPara(false); },
|
||||
i18n["Insert a paragraph before the current node"] ],
|
||||
[ i18n["Insert paragraph after"],
|
||||
function() { insertPara(true); },
|
||||
i18n["Insert a paragraph after the current node"] ]
|
||||
);
|
||||
return menu;
|
||||
};
|
||||
|
||||
@ -385,12 +414,8 @@ ContextMenu.prototype.popupMenu = function(ev) {
|
||||
}
|
||||
|
||||
if (!HTMLArea.is_ie) {
|
||||
// var dx = x + div.offsetWidth - window.innerWidth + 4;
|
||||
// var dy = y + div.offsetHeight - window.innerHeight + 4;
|
||||
|
||||
var dx = x + div.offsetWidth - window.innerWidth - window.pageXOffset + 4;
|
||||
var dy = y + div.offsetHeight - window.innerHeight - window.pageYOffset + 4;
|
||||
|
||||
var dx = x + div.offsetWidth - window.innerWidth + 4;
|
||||
var dy = y + div.offsetHeight - window.innerHeight + 4;
|
||||
if (dx > 0) x -= dx;
|
||||
if (dy > 0) y -= dy;
|
||||
div.style.left = x + "px";
|
||||
|
@ -40,6 +40,8 @@ ContextMenu.I18N = {
|
||||
"Make link" : "Make lin_k...",
|
||||
"Remove the" : "Remove the",
|
||||
"Element" : "Element...",
|
||||
"Insert paragraph before" : "Insert paragraph before",
|
||||
"Insert paragraph after" : "Insert paragraph after",
|
||||
|
||||
// Other labels (tooltips and alert/confirm box messages)
|
||||
|
||||
@ -62,5 +64,7 @@ ContextMenu.I18N = {
|
||||
"Insert a new column before the current one" : "Insert a new column before the current one",
|
||||
"Insert a new column after the current one" : "Insert a new column after the current one",
|
||||
"Delete the current column" : "Delete the current column",
|
||||
"Create a link" : "Create a link"
|
||||
"Create a link" : "Create a link",
|
||||
"Insert a paragraph before the current node" : "Insert a paragraph before the current node",
|
||||
"Insert a paragraph after the current node" : "Insert a paragraph after the current node"
|
||||
};
|
||||
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-ContextMenu');
|
||||
|
||||
// I18N constants
|
||||
|
@ -7,6 +7,7 @@ div.htmlarea-context-menu {
|
||||
border: 1px solid #aca899;
|
||||
padding: 2px;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
cursor: default;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
@ -6,20 +6,20 @@
|
||||
// This notice MUST stay intact for use (see license.txt).
|
||||
|
||||
function EnterParagraphs(editor, params) {
|
||||
this.editor = editor;
|
||||
// activate only if we're talking to Gecko
|
||||
if (HTMLArea.is_gecko)
|
||||
this.onKeyPress = this.__onKeyPress;
|
||||
this.editor = editor;
|
||||
// activate only if we're talking to Gecko
|
||||
if (HTMLArea.is_gecko)
|
||||
this.onKeyPress = this.__onKeyPress;
|
||||
};
|
||||
|
||||
EnterParagraphs._pluginInfo = {
|
||||
name : "EnterParagraphs",
|
||||
version : "1.0",
|
||||
developer : "Adam Wright",
|
||||
developer_url : "http://blog.hipikat.org/",
|
||||
sponsor : "The University of Western Australia",
|
||||
sponsor_url : "http://www.uwa.edu.au/",
|
||||
license : "htmlArea"
|
||||
name : "EnterParagraphs",
|
||||
version : "1.0",
|
||||
developer : "Adam Wright",
|
||||
developer_url : "http://blog.hipikat.org/",
|
||||
sponsor : "The University of Western Australia",
|
||||
sponsor_url : "http://www.uwa.edu.au/",
|
||||
license : "htmlArea"
|
||||
};
|
||||
|
||||
// An array of elements who, in html4, by default, have an inline display and can have children
|
||||
@ -28,177 +28,177 @@ EnterParagraphs.prototype._html4_inlines_re = /^(a|abbr|acronym|b|bdo|big|cite|c
|
||||
|
||||
// Finds the first parent element of a given node whose display is probably not inline
|
||||
EnterParagraphs.prototype.parentBlock = function(node) {
|
||||
while (node.parentNode && (node.nodeType != 1 || this._html4_inlines_re.test(node.tagName)))
|
||||
node = node.parentNode;
|
||||
return node;
|
||||
while (node.parentNode && (node.nodeType != 1 || this._html4_inlines_re.test(node.tagName)))
|
||||
node = node.parentNode;
|
||||
return node;
|
||||
};
|
||||
|
||||
// Internal function for recursively itterating over a all nodes in a fragment
|
||||
// If a callback function returns a non-null value, that is returned and the crawl is therefore broken
|
||||
EnterParagraphs.prototype.walkNodeChildren = function(me, callback) {
|
||||
if (me.firstChild) {
|
||||
var myChild = me.firstChild;
|
||||
var retVal;
|
||||
while (myChild) {
|
||||
if ((retVal = callback(this, myChild)) != null)
|
||||
return retVal;
|
||||
if ((retVal = this.walkNodeChildren(myChild, callback)) != null)
|
||||
return retVal;
|
||||
myChild = myChild.nextSibling;
|
||||
}
|
||||
}
|
||||
if (me.firstChild) {
|
||||
var myChild = me.firstChild;
|
||||
var retVal;
|
||||
while (myChild) {
|
||||
if ((retVal = callback(this, myChild)) != null)
|
||||
return retVal;
|
||||
if ((retVal = this.walkNodeChildren(myChild, callback)) != null)
|
||||
return retVal;
|
||||
myChild = myChild.nextSibling;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Callback function to be performed on each node in the hierarchy
|
||||
// Sets flag to true if we find actual text or an element that's not usually displayed inline
|
||||
EnterParagraphs.prototype._isFilling = function(self, node) {
|
||||
if (node.nodeType == 1 && !self._html4_inlines_re.test(node.nodeName))
|
||||
return true;
|
||||
else if (node.nodeType == 3 && node.nodeValue != '')
|
||||
return true;
|
||||
return null;
|
||||
//alert(node.nodeName);
|
||||
if (node.nodeType == 1 && !self._html4_inlines_re.test(node.nodeName))
|
||||
return true;
|
||||
else if (node.nodeType == 3 && node.nodeValue != '')
|
||||
return true;
|
||||
return null;
|
||||
//alert(node.nodeName);
|
||||
};
|
||||
|
||||
// Inserts a node deeply on the left of a hierarchy of nodes
|
||||
EnterParagraphs.prototype.insertDeepLeftText = function(target, toInsert) {
|
||||
var falling = target;
|
||||
while (falling.firstChild && falling.firstChild.nodeType == 1)
|
||||
falling = falling.firstChild;
|
||||
//var refNode = falling.firstChild ? falling.firstChild : null;
|
||||
//falling.insertBefore(toInsert, refNode);
|
||||
falling.innerHTML = toInsert;
|
||||
var falling = target;
|
||||
while (falling.firstChild && falling.firstChild.nodeType == 1)
|
||||
falling = falling.firstChild;
|
||||
//var refNode = falling.firstChild ? falling.firstChild : null;
|
||||
//falling.insertBefore(toInsert, refNode);
|
||||
falling.innerHTML = toInsert;
|
||||
};
|
||||
|
||||
// Kind of like a macros, for a frequent query...
|
||||
EnterParagraphs.prototype.isElem = function(node, type) {
|
||||
return node.nodeName.toLowerCase() == type.toLowerCase();
|
||||
return node.nodeName.toLowerCase() == type.toLowerCase();
|
||||
};
|
||||
|
||||
// The onKeyPress even that does all the work - nicely breaks the line into paragraphs
|
||||
EnterParagraphs.prototype.__onKeyPress = function(ev) {
|
||||
|
||||
if (ev.keyCode == 13 && !ev.shiftKey && this.editor._iframe.contentWindow.getSelection) {
|
||||
if (ev.keyCode == 13 && !ev.shiftKey && this.editor._iframe.contentWindow.getSelection) {
|
||||
|
||||
var editor = this.editor;
|
||||
var editor = this.editor;
|
||||
|
||||
// Get the selection and solid references to what we're dealing with chopping
|
||||
var sel = editor._iframe.contentWindow.getSelection();
|
||||
// Get the selection and solid references to what we're dealing with chopping
|
||||
var sel = editor._iframe.contentWindow.getSelection();
|
||||
|
||||
// Set the start and end points such that they're going /forward/ through the document
|
||||
var rngLeft = editor._doc.createRange(); var rngRight = editor._doc.createRange();
|
||||
rngLeft.setStart(sel.anchorNode, sel.anchorOffset); rngRight.setStart(sel.focusNode, sel.focusOffset);
|
||||
rngLeft.collapse(true); rngRight.collapse(true);
|
||||
// Set the start and end points such that they're going /forward/ through the document
|
||||
var rngLeft = editor._doc.createRange(); var rngRight = editor._doc.createRange();
|
||||
rngLeft.setStart(sel.anchorNode, sel.anchorOffset); rngRight.setStart(sel.focusNode, sel.focusOffset);
|
||||
rngLeft.collapse(true); rngRight.collapse(true);
|
||||
|
||||
var direct = rngLeft.compareBoundaryPoints(rngLeft.START_TO_END, rngRight) < 0;
|
||||
var direct = rngLeft.compareBoundaryPoints(rngLeft.START_TO_END, rngRight) < 0;
|
||||
|
||||
var startNode = direct ? sel.anchorNode : sel.focusNode;
|
||||
var startOffset = direct ? sel.anchorOffset : sel.focusOffset;
|
||||
var endNode = direct ? sel.focusNode : sel.anchorNode;
|
||||
var endOffset = direct ? sel.focusOffset : sel.anchorOffset;
|
||||
var startNode = direct ? sel.anchorNode : sel.focusNode;
|
||||
var startOffset = direct ? sel.anchorOffset : sel.focusOffset;
|
||||
var endNode = direct ? sel.focusNode : sel.anchorNode;
|
||||
var endOffset = direct ? sel.focusOffset : sel.anchorOffset;
|
||||
|
||||
// Find the parent blocks of nodes at either end, and their attributes if they're paragraphs
|
||||
var startBlock = this.parentBlock(startNode); var endBlock = this.parentBlock(endNode);
|
||||
var attrsLeft = new Array(); var attrsRight = new Array();
|
||||
// Find the parent blocks of nodes at either end, and their attributes if they're paragraphs
|
||||
var startBlock = this.parentBlock(startNode); var endBlock = this.parentBlock(endNode);
|
||||
var attrsLeft = new Array(); var attrsRight = new Array();
|
||||
|
||||
// If a list, let the browser take over, if we're in a paragraph, gather it's attributes
|
||||
if (this.isElem(startBlock, 'li') || this.isElem(endBlock, 'li'))
|
||||
return;
|
||||
// If a list, let the browser take over, if we're in a paragraph, gather it's attributes
|
||||
if (this.isElem(startBlock, 'li') || this.isElem(endBlock, 'li'))
|
||||
return;
|
||||
|
||||
if (this.isElem(startBlock, 'p')) {
|
||||
for (var i = 0; i < startBlock.attributes.length; i++) {
|
||||
attrsLeft[startBlock.attributes[i].nodeName] = startBlock.attributes[i].nodeValue;
|
||||
}
|
||||
}
|
||||
if (this.isElem(endBlock, 'p')) {
|
||||
for (var i = 0; i < endBlock.attributes.length; i++) {
|
||||
// If we start and end within one paragraph, don't duplicate the 'id'
|
||||
if (endBlock != startBlock || endBlock.attributes[i].nodeName.toLowerCase() != 'id')
|
||||
attrsRight[endBlock.attributes[i].nodeName] = endBlock.attributes[i].nodeValue;
|
||||
}
|
||||
}
|
||||
if (this.isElem(startBlock, 'p')) {
|
||||
for (var i = 0; i < startBlock.attributes.length; i++) {
|
||||
attrsLeft[startBlock.attributes[i].nodeName] = startBlock.attributes[i].nodeValue;
|
||||
}
|
||||
}
|
||||
if (this.isElem(endBlock, 'p')) {
|
||||
for (var i = 0; i < endBlock.attributes.length; i++) {
|
||||
// If we start and end within one paragraph, don't duplicate the 'id'
|
||||
if (endBlock != startBlock || endBlock.attributes[i].nodeName.toLowerCase() != 'id')
|
||||
attrsRight[endBlock.attributes[i].nodeName] = endBlock.attributes[i].nodeValue;
|
||||
}
|
||||
}
|
||||
|
||||
// Look for where to start and end our chopping - within surrounding paragraphs
|
||||
// if they exist, or at the edges of the containing block, otherwise
|
||||
var startChop = startNode; var endChop = endNode;
|
||||
// Look for where to start and end our chopping - within surrounding paragraphs
|
||||
// if they exist, or at the edges of the containing block, otherwise
|
||||
var startChop = startNode; var endChop = endNode;
|
||||
|
||||
while ((startChop.previousSibling && !this.isElem(startChop.previousSibling, 'p'))
|
||||
|| (startChop.parentNode && startChop.parentNode != startBlock && startChop.parentNode.nodeType != 9))
|
||||
startChop = startChop.previousSibling ? startChop.previousSibling : startChop.parentNode;
|
||||
while ((startChop.previousSibling && !this.isElem(startChop.previousSibling, 'p'))
|
||||
|| (startChop.parentNode && startChop.parentNode != startBlock && startChop.parentNode.nodeType != 9))
|
||||
startChop = startChop.previousSibling ? startChop.previousSibling : startChop.parentNode;
|
||||
|
||||
while ((endChop.nextSibling && !this.isElem(endChop.nextSibling, 'p'))
|
||||
|| (endChop.parentNode && endChop.parentNode != endBlock && endChop.parentNode.nodeType != 9))
|
||||
endChop = endChop.nextSibling ? endChop.nextSibling : endChop.parentNode;
|
||||
while ((endChop.nextSibling && !this.isElem(endChop.nextSibling, 'p'))
|
||||
|| (endChop.parentNode && endChop.parentNode != endBlock && endChop.parentNode.nodeType != 9))
|
||||
endChop = endChop.nextSibling ? endChop.nextSibling : endChop.parentNode;
|
||||
|
||||
// Set up new paragraphs
|
||||
var pLeft = editor._doc.createElement('p'); var pRight = editor._doc.createElement('p');
|
||||
// Set up new paragraphs
|
||||
var pLeft = editor._doc.createElement('p'); var pRight = editor._doc.createElement('p');
|
||||
|
||||
for (var attrName in attrsLeft) {
|
||||
var thisAttr = editor._doc.createAttribute(attrName);
|
||||
thisAttr.value = attrsLeft[attrName];
|
||||
pLeft.setAttributeNode(thisAttr);
|
||||
}
|
||||
for (var attrName in attrsRight) {
|
||||
var thisAttr = editor._doc.createAttribute(attrName);
|
||||
thisAttr.value = attrsRight[attrName];
|
||||
pRight.setAttributeNode(thisAttr);
|
||||
}
|
||||
for (var attrName in attrsLeft) {
|
||||
var thisAttr = editor._doc.createAttribute(attrName);
|
||||
thisAttr.value = attrsLeft[attrName];
|
||||
pLeft.setAttributeNode(thisAttr);
|
||||
}
|
||||
for (var attrName in attrsRight) {
|
||||
var thisAttr = editor._doc.createAttribute(attrName);
|
||||
thisAttr.value = attrsRight[attrName];
|
||||
pRight.setAttributeNode(thisAttr);
|
||||
}
|
||||
|
||||
// Get the ranges destined to be stuffed into new paragraphs
|
||||
rngLeft.setStartBefore(startChop);
|
||||
rngLeft.setEnd(startNode,startOffset);
|
||||
pLeft.appendChild(rngLeft.cloneContents()); // Copy into pLeft
|
||||
// Get the ranges destined to be stuffed into new paragraphs
|
||||
rngLeft.setStartBefore(startChop);
|
||||
rngLeft.setEnd(startNode,startOffset);
|
||||
pLeft.appendChild(rngLeft.cloneContents()); // Copy into pLeft
|
||||
|
||||
rngRight.setEndAfter(endChop);
|
||||
rngRight.setStart(endNode,endOffset);
|
||||
pRight.appendChild(rngRight.cloneContents()); // Copy into pRight
|
||||
rngRight.setEndAfter(endChop);
|
||||
rngRight.setStart(endNode,endOffset);
|
||||
pRight.appendChild(rngRight.cloneContents()); // Copy into pRight
|
||||
|
||||
// If either paragraph is empty, fill it with a nonbreakable space
|
||||
var foundBlock = false;
|
||||
foundBlock = this.walkNodeChildren(pLeft, this._isFilling);
|
||||
if (foundBlock != true)
|
||||
this.insertDeepLeftText(pLeft, ' ');
|
||||
// If either paragraph is empty, fill it with a nonbreakable space
|
||||
var foundBlock = false;
|
||||
foundBlock = this.walkNodeChildren(pLeft, this._isFilling);
|
||||
if (foundBlock != true)
|
||||
this.insertDeepLeftText(pLeft, ' ');
|
||||
|
||||
foundBlock = false;
|
||||
foundBlock = this.walkNodeChildren(pRight, this._isFilling);
|
||||
if (foundBlock != true)
|
||||
this.insertDeepLeftText(pRight, ' ');
|
||||
foundBlock = false;
|
||||
foundBlock = this.walkNodeChildren(pRight, this._isFilling);
|
||||
if (foundBlock != true)
|
||||
this.insertDeepLeftText(pRight, ' ');
|
||||
|
||||
// Get a range for everything to be replaced and replace it
|
||||
var rngAround = editor._doc.createRange();
|
||||
// Get a range for everything to be replaced and replace it
|
||||
var rngAround = editor._doc.createRange();
|
||||
|
||||
if (!startChop.previousSibling && this.isElem(startChop.parentNode, 'p'))
|
||||
rngAround.setStartBefore(startChop.parentNode);
|
||||
else
|
||||
rngAround.setStart(rngLeft.startContainer, rngLeft.startOffset);
|
||||
if (!startChop.previousSibling && this.isElem(startChop.parentNode, 'p'))
|
||||
rngAround.setStartBefore(startChop.parentNode);
|
||||
else
|
||||
rngAround.setStart(rngLeft.startContainer, rngLeft.startOffset);
|
||||
|
||||
if (!endChop.nextSibling && this.isElem(endChop.parentNode, 'p'))
|
||||
rngAround.setEndAfter(endChop.parentNode);
|
||||
else
|
||||
rngAround.setEnd(rngRight.endContainer, rngRight.endOffset);
|
||||
if (!endChop.nextSibling && this.isElem(endChop.parentNode, 'p'))
|
||||
rngAround.setEndAfter(endChop.parentNode);
|
||||
else
|
||||
rngAround.setEnd(rngRight.endContainer, rngRight.endOffset);
|
||||
|
||||
rngAround.deleteContents();
|
||||
rngAround.insertNode(pRight);
|
||||
rngAround.insertNode(pLeft);
|
||||
rngAround.deleteContents();
|
||||
rngAround.insertNode(pRight);
|
||||
rngAround.insertNode(pLeft);
|
||||
|
||||
// Set the selection to the start of the (second) new paragraph
|
||||
if (pRight.firstChild) {
|
||||
while (pRight.firstChild && this._html4_inlines_re.test(pRight.firstChild.nodeName))
|
||||
pRight = pRight.firstChild;
|
||||
// Slip into any inline tags
|
||||
if (pRight.firstChild && pRight.firstChild.nodeType == 3)
|
||||
pRight = pRight.firstChild; // and text, if they've got it
|
||||
// Set the selection to the start of the (second) new paragraph
|
||||
if (pRight.firstChild) {
|
||||
while (pRight.firstChild && this._html4_inlines_re.test(pRight.firstChild.nodeName))
|
||||
pRight = pRight.firstChild;
|
||||
// Slip into any inline tags
|
||||
if (pRight.firstChild && pRight.firstChild.nodeType == 3)
|
||||
pRight = pRight.firstChild; // and text, if they've got it
|
||||
|
||||
var rngCaret = editor._doc.createRange();
|
||||
rngCaret.setStart(pRight, 0);
|
||||
rngCaret.collapse(true);
|
||||
var rngCaret = editor._doc.createRange();
|
||||
rngCaret.setStart(pRight, 0);
|
||||
rngCaret.collapse(true);
|
||||
|
||||
sel = editor._iframe.contentWindow.getSelection();
|
||||
sel.removeAllRanges();
|
||||
sel.addRange(rngCaret);
|
||||
}
|
||||
sel = editor._iframe.contentWindow.getSelection();
|
||||
sel.removeAllRanges();
|
||||
sel.addRange(rngCaret);
|
||||
}
|
||||
|
||||
// Stop the bubbling
|
||||
HTMLArea._stopEvent(ev);
|
||||
}
|
||||
// Stop the bubbling
|
||||
HTMLArea._stopEvent(ev);
|
||||
}
|
||||
};
|
||||
|
@ -49,6 +49,7 @@ FullPage.prototype.buttonPress = function(editor, id) {
|
||||
var links = doc.getElementsByTagName("link");
|
||||
var style1 = '';
|
||||
var style2 = '';
|
||||
var charset = '';
|
||||
for (var i = links.length; --i >= 0;) {
|
||||
var link = links[i];
|
||||
if (/stylesheet/i.test(link.rel)) {
|
||||
@ -58,6 +59,14 @@ FullPage.prototype.buttonPress = function(editor, id) {
|
||||
style1 = link.href;
|
||||
}
|
||||
}
|
||||
var metas = doc.getElementsByTagName("meta");
|
||||
for (var i = metas.length; --i >= 0;) {
|
||||
var meta = metas[i];
|
||||
if (/content-type/i.test(meta.httpEquiv)) {
|
||||
r = /^text\/html; *charset=(.*)$/i.exec(meta.content);
|
||||
charset = r[1];
|
||||
}
|
||||
}
|
||||
var title = doc.getElementsByTagName("title")[0];
|
||||
title = title ? title.innerHTML : '';
|
||||
var init = {
|
||||
@ -67,7 +76,7 @@ FullPage.prototype.buttonPress = function(editor, id) {
|
||||
f_body_fgcolor : HTMLArea._colorToRgb(doc.body.style.color),
|
||||
f_base_style : style1,
|
||||
f_alt_style : style2,
|
||||
|
||||
f_charset : charset,
|
||||
editor : editor
|
||||
};
|
||||
editor._popupDialog("plugin://FullPage/docprop", function(params) {
|
||||
@ -82,8 +91,11 @@ FullPage.prototype.setDocProp = function(params) {
|
||||
var doc = this.editor._doc;
|
||||
var head = doc.getElementsByTagName("head")[0];
|
||||
var links = doc.getElementsByTagName("link");
|
||||
var metas = doc.getElementsByTagName("meta");
|
||||
var style1 = null;
|
||||
var style2 = null;
|
||||
var charset = null;
|
||||
var charset_meta = null;
|
||||
for (var i = links.length; --i >= 0;) {
|
||||
var link = links[i];
|
||||
if (/stylesheet/i.test(link.rel)) {
|
||||
@ -93,12 +105,27 @@ FullPage.prototype.setDocProp = function(params) {
|
||||
style1 = link;
|
||||
}
|
||||
}
|
||||
for (var i = metas.length; --i >= 0;) {
|
||||
var meta = metas[i];
|
||||
if (/content-type/i.test(meta.httpEquiv)) {
|
||||
r = /^text\/html; *charset=(.*)$/i.exec(meta.content);
|
||||
charset = r[1];
|
||||
charset_meta = meta;
|
||||
}
|
||||
}
|
||||
function createLink(alt) {
|
||||
var link = doc.createElement("link");
|
||||
link.rel = alt ? "alternate stylesheet" : "stylesheet";
|
||||
head.appendChild(link);
|
||||
return link;
|
||||
};
|
||||
function createMeta(name, content) {
|
||||
var meta = doc.createElement("meta");
|
||||
meta.httpEquiv = name;
|
||||
meta.content = content;
|
||||
head.appendChild(meta);
|
||||
return meta;
|
||||
};
|
||||
|
||||
if (!style1 && params.f_base_style)
|
||||
style1 = createLink(false);
|
||||
@ -114,7 +141,14 @@ FullPage.prototype.setDocProp = function(params) {
|
||||
else if (style2)
|
||||
head.removeChild(style2);
|
||||
|
||||
for (var i in params) {
|
||||
if (charset_meta) {
|
||||
head.removeChild(charset_meta);
|
||||
charset_meta = null;
|
||||
}
|
||||
if (!charset_meta && params.f_charset)
|
||||
charset_meta = createMeta("Content-Type", "text/html; charset="+params.f_charset);
|
||||
|
||||
for (var i in params) {
|
||||
var val = params[i];
|
||||
switch (i) {
|
||||
case "f_title":
|
||||
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-FullPage');
|
||||
|
||||
// I18N for the FullPage plugin
|
||||
|
@ -16,7 +16,8 @@ window.resizeTo(400, 100);
|
||||
f_body_bgcolor : true,
|
||||
f_body_fgcolor : true,
|
||||
f_base_style : true,
|
||||
f_alt_style : true
|
||||
f_alt_style : true,
|
||||
f_charset : true
|
||||
};
|
||||
|
||||
var editor = null;
|
||||
@ -120,6 +121,17 @@ border-bottom: 1px solid black; letter-spacing: 2px;
|
||||
<td class="label"><span>Text color:</span></td>
|
||||
<td><input type="text" id="f_body_fgcolor" size="7" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label"><span>Character set:</span></td>
|
||||
<td><select id="f_charset">
|
||||
<option value=""></option>
|
||||
<option value="utf-8">UTF-8 (recommended)</option>
|
||||
<option value="windows-1251">cyrillic (WINDOWS-1251)</option>
|
||||
<option value="koi8-r">cyrillic (KOI8-R)</option>
|
||||
<option value="iso-8859-5">cyrillic (ISO-8859-5)</option>
|
||||
<option value="iso-8859-1">western (ISO-8859-1)</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div id="buttons">
|
||||
|
@ -16,7 +16,7 @@ function HtmlTidy(editor) {
|
||||
|
||||
// register the toolbar buttons provided by this plugin
|
||||
var toolbar = [];
|
||||
for (var i in bl) {
|
||||
for (var i = 0; i < bl.length; ++i) {
|
||||
var btn = bl[i];
|
||||
if (btn == "html-tidy") {
|
||||
var id = "HT-html-tidy";
|
||||
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-HtmlTidy');
|
||||
|
||||
// I18N constants
|
||||
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-ListType');
|
||||
|
||||
// I18N constants
|
||||
|
@ -1 +1 @@
|
||||
Options +ExecCGI
|
||||
Options +ExecCGI
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-SpellChecker');
|
||||
|
||||
// I18N constants
|
||||
|
@ -126,7 +126,7 @@ function replaceAllClicked() {
|
||||
}
|
||||
*/
|
||||
if (ok) {
|
||||
for (var i in spans) {
|
||||
for (var i = 0; i < spans.length; ++i) {
|
||||
if (spans[i] != currentElement) {
|
||||
replaceWord(spans[i]);
|
||||
}
|
||||
@ -156,7 +156,7 @@ function learnClicked() {
|
||||
|
||||
function internationalizeWindow() {
|
||||
var types = ["div", "span", "button"];
|
||||
for (var i in types) {
|
||||
for (var i = 0; i < types.length; ++i) {
|
||||
var tag = types[i];
|
||||
var els = document.getElementsByTagName(tag);
|
||||
for (var j = els.length; --j >= 0;) {
|
||||
@ -237,7 +237,7 @@ function wordClicked(scroll) {
|
||||
if (currentElement) {
|
||||
var a = allWords[currentElement.__msh_origWord];
|
||||
currentElement.className = currentElement.className.replace(/\s*HA-spellcheck-current\s*/g, " ");
|
||||
for (var i in a) {
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
var el = a[i];
|
||||
if (el != currentElement) {
|
||||
el.className = el.className.replace(/\s*HA-spellcheck-same\s*/g, " ");
|
||||
@ -247,7 +247,7 @@ function wordClicked(scroll) {
|
||||
currentElement = this;
|
||||
this.className += " HA-spellcheck-current";
|
||||
var a = allWords[currentElement.__msh_origWord];
|
||||
for (var i in a) {
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
var el = a[i];
|
||||
if (el != currentElement) {
|
||||
el.className += " HA-spellcheck-same";
|
||||
|
@ -18,7 +18,7 @@ function SpellChecker(editor) {
|
||||
|
||||
// register the toolbar buttons provided by this plugin
|
||||
var toolbar = [];
|
||||
for (var i in bl) {
|
||||
for (var i = 0; i < bl.length; ++i) {
|
||||
var btn = bl[i];
|
||||
if (!btn) {
|
||||
toolbar.push("separator");
|
||||
@ -33,7 +33,7 @@ function SpellChecker(editor) {
|
||||
}
|
||||
}
|
||||
|
||||
for (var i in toolbar) {
|
||||
for (var i = 0; i < toolbar.length; ++i) {
|
||||
cfg.toolbar[0].push(toolbar[i]);
|
||||
}
|
||||
};
|
||||
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-TableOperations');
|
||||
|
||||
// I18N constants
|
||||
|
@ -1,7 +1,7 @@
|
||||
// I18N constants
|
||||
|
||||
// LANG: "en", ENCODING: UTF-8 | ISO-8859-1
|
||||
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// translated into Norwegia: ses@online.no 11.11.03
|
||||
|
||||
// FOR TRANSLATORS:
|
||||
|
@ -24,7 +24,7 @@ function TableOperations(editor) {
|
||||
|
||||
// register the toolbar buttons provided by this plugin
|
||||
var toolbar = ["linebreak"];
|
||||
for (var i in bl) {
|
||||
for (var i = 0; i < bl.length; ++i) {
|
||||
var btn = bl[i];
|
||||
if (!btn) {
|
||||
toolbar.push("separator");
|
||||
@ -65,7 +65,7 @@ TableOperations.prototype.getClosest = function(tagName) {
|
||||
var ancestors = editor.getAllAncestors();
|
||||
var ret = null;
|
||||
tagName = ("" + tagName).toLowerCase();
|
||||
for (var i in ancestors) {
|
||||
for (var i = 0; i < ancestors.length; ++i) {
|
||||
var el = ancestors[i];
|
||||
if (el.tagName.toLowerCase() == tagName) {
|
||||
ret = el;
|
||||
@ -502,11 +502,17 @@ TableOperations.prototype.buttonPress = function(editor, button_id) {
|
||||
var rows = td.parentNode.parentNode.rows;
|
||||
var index = td.cellIndex;
|
||||
for (var i = rows.length; --i >= 0;) {
|
||||
/*
|
||||
var tr = rows;
|
||||
var otd = tr.insertCell(index + (/after/.test(button_id) ? 1 : 0));
|
||||
otd.innerHTML = mozbr;
|
||||
*/
|
||||
var tr = rows[i];
|
||||
var ref = tr.cells[index + (/after/.test(button_id) ? 1 : 0)];
|
||||
var otd = editor._doc.createElement("td");
|
||||
otd.innerHTML = mozbr;
|
||||
tr.insertBefore(otd, ref);
|
||||
|
||||
}
|
||||
editor.focusEditor();
|
||||
break;
|
||||
@ -868,7 +874,7 @@ TableOperations.createStyleLayoutFieldset = function(doc, editor, el) {
|
||||
td.appendChild(select);
|
||||
select.name = "f_st_float";
|
||||
options = ["None", "Left", "Right"];
|
||||
for (i in options) {
|
||||
for (var i = 0; i < options.length; ++i) {
|
||||
var Val = options[i];
|
||||
var val = options[i].toLowerCase();
|
||||
option = doc.createElement("option");
|
||||
@ -923,7 +929,7 @@ TableOperations.createStyleLayoutFieldset = function(doc, editor, el) {
|
||||
input.size = "1";
|
||||
input.style.fontFamily = "monospace";
|
||||
td.appendChild(input);
|
||||
for (i in options) {
|
||||
for (var i = 0; i < options.length; ++i) {
|
||||
var Val = options[i];
|
||||
var val = Val.toLowerCase();
|
||||
option = doc.createElement("option");
|
||||
@ -978,7 +984,7 @@ TableOperations.createStyleLayoutFieldset = function(doc, editor, el) {
|
||||
select.style.marginLeft = "0.5em";
|
||||
td.appendChild(select);
|
||||
options = ["Top", "Middle", "Bottom", "Baseline"];
|
||||
for (i in options) {
|
||||
for (var i = 0; i < options.length; ++i) {
|
||||
var Val = options[i];
|
||||
var val = Val.toLowerCase();
|
||||
option = doc.createElement("option");
|
||||
@ -1070,7 +1076,7 @@ TableOperations.createStyleFieldset = function(doc, editor, el) {
|
||||
// That is, "top right bottom left" -- we only consider the first
|
||||
// value.
|
||||
(currentBorderStyle.match(/([^\s]*)\s/)) && (currentBorderStyle = RegExp.$1);
|
||||
for (i in options) {
|
||||
for (var i in options) {
|
||||
var val = options[i];
|
||||
option = doc.createElement("option");
|
||||
option.value = val;
|
||||
@ -1080,7 +1086,7 @@ TableOperations.createStyleFieldset = function(doc, editor, el) {
|
||||
}
|
||||
select.style.marginRight = "0.5em";
|
||||
function setBorderFieldsStatus(value) {
|
||||
for (i in borderFields) {
|
||||
for (var i = 0; i < borderFields.length; ++i) {
|
||||
var el = borderFields[i];
|
||||
el.style.visibility = value ? "hidden" : "visible";
|
||||
if (!value && (el.tagName.toLowerCase() == "input")) {
|
||||
|
@ -24,7 +24,6 @@ $GLOBALS['phpgw_info']['flags'] = Array(
|
||||
);
|
||||
|
||||
include('../../../../../../header.inc.php');
|
||||
header('Content-type: text/javascript; charset='.$GLOBALS['phpgw']->translation->charset());
|
||||
$GLOBALS['phpgw']->translation->add_app('htmlarea-SpellChecker');
|
||||
|
||||
// I18N for the FullPage plugin
|
||||
|
@ -1,111 +1,87 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare - UploadImage-plugin for htmlArea *
|
||||
* http://www.eGroupWare.org *
|
||||
* Written and (c) by Xiang Wei ZHUO <wei@zhuo.org> *
|
||||
* Modified for eGW by and (c) by Pim Snel <pim@lingewoud.nl> *
|
||||
* -------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; version 2 of the License. *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $id$ */
|
||||
|
||||
// FIXME: remove imageMagick shit, we only use gdlib
|
||||
// FIXME: autodetect safe_mode
|
||||
// FIXME include header nicer
|
||||
|
||||
$phpgw_flags = Array(
|
||||
'currentapp' => 'home',
|
||||
'noheader' => True,
|
||||
'nonavbar' => True,
|
||||
'noappheader' => True,
|
||||
'noappfooter' => True,
|
||||
'nofooter' => True
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_info']['flags'] = $phpgw_flags;
|
||||
|
||||
if(@include('../../../../../../header.inc.php'))
|
||||
{
|
||||
// I know this is very ugly
|
||||
}
|
||||
else
|
||||
{
|
||||
@include('../../../../../../../header.inc.php');
|
||||
}
|
||||
|
||||
$sessdata = $GLOBALS['phpgw']->session->appsession('UploadImage','phpgwapi');
|
||||
$phpgw_flags['currentapp'] = $sessdata['app'] ? $sessdata['app'] : 'jinn';
|
||||
|
||||
define('IMAGE_CLASS', 'GD');
|
||||
|
||||
//In safe mode, directory creation is not permitted.
|
||||
$SAFE_MODE = false;
|
||||
|
||||
switch ($phpgw_flags['currentapp'])
|
||||
{
|
||||
case 'jinn' :
|
||||
$BASE_DIR = $sessdata[UploadImageBaseDir];
|
||||
$BASE_URL = $sessdata[UploadImageBaseURL];
|
||||
$MAX_HEIGHT = $sessdata[UploadImageMaxHeight];
|
||||
$MAX_WIDTH = $sessdata[UploadImageMaxWidth];
|
||||
// _debug_array($sessdata);
|
||||
//die();
|
||||
break;
|
||||
case 'sitemgr' :
|
||||
if(is_writeable($sessdata['upload_dir']))
|
||||
{
|
||||
$BASE_DIR = $sessdata['upload_dir'];
|
||||
$BASE_URL = str_replace($GLOBALS['_SERVER']['DOCUMENT_ROOT'],'',$sessdata['upload_dir']);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<p><b>Error</b></p>';
|
||||
echo '<p>Upload directory does not exist, or is not writeable by webserver</p>';
|
||||
echo $GLOBALS['egw_info']['user']['apps']['admin'] ?
|
||||
'<a href="'. $GLOBALS['phpgw']->link('/index.php',
|
||||
'menuaction=sitemgr.Common_UI.DisplayPrefs').'">Choose an other directory</a><br>
|
||||
or make "'. $sessdata['upload_dir']. '" writeable by webserver' :
|
||||
'Notify your Administrator to correct this Situation';
|
||||
die();
|
||||
}
|
||||
default :
|
||||
break;
|
||||
}
|
||||
|
||||
if(!$MAX_HEIGHT) $MAX_HEIGHT = 10000;
|
||||
if(!$MAX_WIDTH) $MAX_WIDTH = 10000;
|
||||
|
||||
|
||||
//After defining which library to use, if it is NetPBM or IM, you need to
|
||||
//specify where the binary for the selected library are. And of course
|
||||
//your server and PHP must be able to execute them (i.e. safe mode is OFF).
|
||||
//If you have safe mode ON, or don't have the binaries, your choice is
|
||||
//GD only. GD does not require the following definition.
|
||||
//define('IMAGE_TRANSFORM_LIB_PATH', '/usr/bin/netpbm/');
|
||||
//define('IMAGE_TRANSFORM_LIB_PATH', '"D:\\Program Files\\ImageMagick\\');
|
||||
|
||||
$BASE_ROOT = '';
|
||||
$IMG_ROOT = $BASE_ROOT;
|
||||
|
||||
if(strrpos($BASE_DIR, '/')!= strlen($BASE_DIR)-1)
|
||||
$BASE_DIR .= '/';
|
||||
|
||||
if(strrpos($BASE_URL, '/')!= strlen($BASE_URL)-1)
|
||||
$BASE_URL .= '/';
|
||||
|
||||
//Built in function of dirname is faulty
|
||||
//It assumes that the directory nane can not contain a . (period)
|
||||
function dir_name($dir)
|
||||
{
|
||||
$lastSlash = intval(strrpos($dir, '/'));
|
||||
if($lastSlash == strlen($dir)-1){
|
||||
return substr($dir, 0, $lastSlash);
|
||||
}
|
||||
else
|
||||
return dirname($dir);
|
||||
}
|
||||
/**************************************************************************\
|
||||
* eGroupWare - UploadImage-plugin for htmlArea *
|
||||
* http://www.eGroupWare.org *
|
||||
* Written and (c) by Xiang Wei ZHUO <wei@zhuo.org> *
|
||||
* Modified for eGW by and (c) by Pim Snel <pim@lingewoud.nl> *
|
||||
* -------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; version 2 of the License. *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $id$ */
|
||||
|
||||
// FIXME: remove imageMagick shit, we only use gdlib
|
||||
// FIXME: autodetect safe_mode
|
||||
// FIXME set current app to the calling app
|
||||
// FIXME include header nicer
|
||||
|
||||
$phpgw_flags = Array(
|
||||
'currentapp' => 'jinn',
|
||||
'noheader' => True,
|
||||
'nonavbar' => True,
|
||||
'noappheader' => True,
|
||||
'noappfooter' => True,
|
||||
'nofooter' => True
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_info']['flags'] = $phpgw_flags;
|
||||
|
||||
if(@include('../../../../../../header.inc.php'))
|
||||
{
|
||||
// I know this is very ugly
|
||||
}
|
||||
else
|
||||
{
|
||||
@include('../../../../../../../header.inc.php');
|
||||
}
|
||||
|
||||
define('IMAGE_CLASS', 'GD');
|
||||
|
||||
//In safe mode, directory creation is not permitted.
|
||||
$SAFE_MODE = false;
|
||||
|
||||
$sessdata = $GLOBALS['phpgw']->session->appsession('UploadImage','phpgwapi');
|
||||
|
||||
$BASE_DIR = $sessdata[UploadImageBaseDir];
|
||||
$BASE_URL = $sessdata[UploadImageBaseURL];
|
||||
$MAX_HEIGHT = $sessdata[UploadImageMaxHeight];
|
||||
$MAX_WIDTH = $sessdata[UploadImageMaxWidth];
|
||||
|
||||
if(!$MAX_HEIGHT) $MAX_HEIGHT = 10000;
|
||||
if(!$MAX_WIDTH) $MAX_WIDTH = 10000;
|
||||
// _debug_array($sessdata);
|
||||
//die();
|
||||
|
||||
|
||||
//After defining which library to use, if it is NetPBM or IM, you need to
|
||||
//specify where the binary for the selected library are. And of course
|
||||
//your server and PHP must be able to execute them (i.e. safe mode is OFF).
|
||||
//If you have safe mode ON, or don't have the binaries, your choice is
|
||||
//GD only. GD does not require the following definition.
|
||||
//define('IMAGE_TRANSFORM_LIB_PATH', '/usr/bin/netpbm/');
|
||||
//define('IMAGE_TRANSFORM_LIB_PATH', '"D:\\Program Files\\ImageMagick\\');
|
||||
|
||||
$BASE_ROOT = '';
|
||||
$IMG_ROOT = $BASE_ROOT;
|
||||
|
||||
if(strrpos($BASE_DIR, '/')!= strlen($BASE_DIR)-1)
|
||||
$BASE_DIR .= '/';
|
||||
|
||||
if(strrpos($BASE_URL, '/')!= strlen($BASE_URL)-1)
|
||||
$BASE_URL .= '/';
|
||||
|
||||
//Built in function of dirname is faulty
|
||||
//It assumes that the directory nane can not contain a . (period)
|
||||
function dir_name($dir)
|
||||
{
|
||||
$lastSlash = intval(strrpos($dir, '/'));
|
||||
if($lastSlash == strlen($dir)-1){
|
||||
return substr($dir, 0, $lastSlash);
|
||||
}
|
||||
else
|
||||
return dirname($dir);
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -191,7 +191,7 @@ PopupDiv.prototype.getForm = function() {
|
||||
PopupDiv.prototype.callHandler = function() {
|
||||
var tags = ["input", "textarea", "select"];
|
||||
var params = new Object();
|
||||
for (var ti in tags) {
|
||||
for (var ti = tags.length; --ti >= 0;) {
|
||||
var tag = tags[ti];
|
||||
var els = this.content.getElementsByTagName(tag);
|
||||
for (var j = 0; j < els.length; ++j) {
|
||||
|
@ -3,8 +3,9 @@
|
||||
<head>
|
||||
<title>Fullscreen HTMLArea</title>
|
||||
<script type="text/javascript">
|
||||
_editor_url = window.opener._editor_url;
|
||||
_editor_url = window.opener._editor_url || '../';
|
||||
_editor_lang = window.opener._editor_lang;
|
||||
_editor_css = window.opener._editor_css;
|
||||
var BASE = window.opener.document.baseURI || window.opener.document.URL;
|
||||
var head = document.getElementsByTagName("head")[0];
|
||||
var base = document.createElement("base");
|
||||
@ -12,13 +13,15 @@
|
||||
head.appendChild(base);
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="../htmlarea.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
document.write('<scr' + 'ipt type="text/javascript" src="' + _editor_url + 'htmlarea.js"></scr' + 'ipt>');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
// load HTMLArea scripts that are present in the opener frame
|
||||
var scripts = window.opener.HTMLArea._scripts;
|
||||
for (var i = 4; i < scripts.length; ++i) {
|
||||
document.write("<scr" + "ipt type='text/javascript' src='" + scripts[i] + "'></scr" + "ipt>");
|
||||
for (var i = 3; i < scripts.length; ++i) {
|
||||
//document.write("<scr" + "ipt type='text/javascript' src='" + scripts[i] + "'></scr" + "ipt>");
|
||||
HTMLArea.loadScript(scripts[i]);
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -33,7 +36,7 @@ var editor = null; // to be initialized later [ function init() ]
|
||||
\* ---------------------------------------------------------------------- */
|
||||
|
||||
function _CloseOnEsc(ev) {
|
||||
ev || (ev = window.event);
|
||||
ev || (ev = window.event) || (ev = editor._iframe.contentWindow.event);
|
||||
if (ev.keyCode == 27) {
|
||||
// update_parent();
|
||||
window.close();
|
||||
@ -59,7 +62,7 @@ function resize_editor() { // resize editor to fix window
|
||||
if (editor.config.statusBar) {
|
||||
newHeight -= editor._statusBar.offsetHeight;
|
||||
}
|
||||
editor._textArea.style.height = editor._iframe.style.height = newHeight + "px";
|
||||
editor._textArea.style.height = editor._iframe.style.height = newHeight - (HTMLArea.is_gecko ? 8 : 0) + "px";
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- *\
|
||||
@ -83,7 +86,10 @@ function init() {
|
||||
// register the plugins, if any
|
||||
for (var i in parent_object.plugins) {
|
||||
var plugin = parent_object.plugins[i];
|
||||
editor.registerPlugin2(plugin.name, plugin.args);
|
||||
try {
|
||||
eval(plugin.name);
|
||||
editor.registerPlugin2(plugin.name, plugin.args);
|
||||
} catch(e) {};
|
||||
}
|
||||
// and restore the original toolbar
|
||||
config.toolbar = parent_object.config.toolbar;
|
||||
@ -125,7 +131,7 @@ function update_parent() {
|
||||
</script>
|
||||
<style type="text/css"> html, body { height: 100%; margin: 0px; border: 0px; background-color: buttonface; } </style>
|
||||
</head>
|
||||
<body scroll="no" onload="setTimeout(function(){init();}, 500)" onunload="update_parent()">
|
||||
<body scroll="no" onload="HTMLArea.onload = init; HTMLArea.init();" onunload="update_parent()">
|
||||
<form style="margin: 0px; border: 1px solid; border-color: threedshadow threedhighlight threedhighlight threedshadow;">
|
||||
<textarea name="editor" id="editor" style="width:100%; height:300px"> </textarea>
|
||||
</form>
|
||||
|
@ -10,6 +10,8 @@
|
||||
window.resizeTo(400, 100);
|
||||
|
||||
function Init() {
|
||||
i18n = window.opener.HTMLArea.I18N.dialogs; // load the HTMLArea plugin and lang file
|
||||
__dlg_translate(i18n);
|
||||
__dlg_init();
|
||||
document.getElementById("f_rows").focus();
|
||||
};
|
||||
@ -27,13 +29,13 @@ function onOK() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
var fields = ["f_rows", "f_cols", "f_width", "f_unit",
|
||||
var fields = ["f_rows", "f_cols", "f_width", "f_unit", "f_fixed",
|
||||
"f_align", "f_border", "f_spacing", "f_padding"];
|
||||
var param = new Object();
|
||||
for (var i in fields) {
|
||||
var id = fields[i];
|
||||
var el = document.getElementById(id);
|
||||
param[id] = el.value;
|
||||
param[id] = (el.type == "checkbox") ? el.checked : el.value;
|
||||
}
|
||||
__dlg_close(param);
|
||||
return false;
|
||||
@ -88,13 +90,6 @@ form { padding: 0px; margin: 0px; }
|
||||
<tr>
|
||||
<td style="width: 4em; text-align: right">Rows:</td>
|
||||
<td><input type="text" name="rows" id="f_rows" size="5" title="Number of rows" value="2" /></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 4em; text-align: right">Cols:</td>
|
||||
<td><input type="text" name="cols" id="f_cols" size="5" title="Number of columns" value="4" /></td>
|
||||
<td style="width: 4em; text-align: right">Width:</td>
|
||||
<td><input type="text" name="width" id="f_width" size="5" title="Width of the table" value="100" /></td>
|
||||
<td><select size="1" name="unit" id="f_unit" title="Width unit">
|
||||
@ -103,7 +98,13 @@ form { padding: 0px; margin: 0px; }
|
||||
<option value="em" >Em</option>
|
||||
</select></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="width: 4em; text-align: right">Cols:</td>
|
||||
<td><input type="text" name="cols" id="f_cols" size="5" title="Number of columns" value="4" /></td>
|
||||
<td style="text-align: right"><input type="checkbox" checked="checked" name="fixed" id="f_fixed" /></td>
|
||||
<td colspan="2"><label for="f_fixed"
|
||||
>Fixed width columns</label></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@ -116,7 +117,7 @@ form { padding: 0px; margin: 0px; }
|
||||
|
||||
<div class="fl">Alignment:</div>
|
||||
<select size="1" name="align" id="f_align"
|
||||
title="Positioning of this image">
|
||||
title="Positioning of this table">
|
||||
<option value="" selected="1" >Not set</option>
|
||||
<option value="left" >Left</option>
|
||||
<option value="right" >Right</option>
|
||||
|
@ -26,7 +26,12 @@ function Init() {
|
||||
__dlg_init();
|
||||
var param = window.dialogArguments;
|
||||
var target_select = document.getElementById("f_target");
|
||||
var use_target = true;
|
||||
if (param) {
|
||||
if ( typeof param["f_usetarget"] != "undefined" ) {
|
||||
use_target = param["f_usetarget"];
|
||||
}
|
||||
if ( typeof param["f_href"] != "undefined" ) {
|
||||
document.getElementById("f_href").value = param["f_href"];
|
||||
document.getElementById("f_title").value = param["f_title"];
|
||||
comboSelectValue(target_select, param["f_target"]);
|
||||
@ -37,6 +42,12 @@ function Init() {
|
||||
target_select.appendChild(opt);
|
||||
opt.selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (! use_target) {
|
||||
document.getElementById("f_target_label").style.visibility = "hidden";
|
||||
document.getElementById("f_target").style.visibility = "hidden";
|
||||
document.getElementById("f_target_other").style.visibility = "hidden";
|
||||
}
|
||||
var opt = document.createElement("option");
|
||||
opt.value = "_other";
|
||||
@ -112,7 +123,7 @@ border-bottom: 1px solid black; letter-spacing: 2px;
|
||||
|
||||
<body onload="Init()">
|
||||
<div class="title">Insert/Modify Link</div>
|
||||
|
||||
<form>
|
||||
<table border="0" style="width: 100%;">
|
||||
<tr>
|
||||
<td class="label">URL:</td>
|
||||
@ -123,7 +134,7 @@ border-bottom: 1px solid black; letter-spacing: 2px;
|
||||
<td><input type="text" id="f_title" style="width: 100%" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Target:</td>
|
||||
<td class="label"><span id="f_target_label">Target:</span></td>
|
||||
<td><select id="f_target">
|
||||
<option value="">None (use implicit)</option>
|
||||
<option value="_blank">New window (_blank)</option>
|
||||
@ -136,9 +147,9 @@ border-bottom: 1px solid black; letter-spacing: 2px;
|
||||
</table>
|
||||
|
||||
<div id="buttons">
|
||||
<button type="button" name="ok" onclick="return onOK();">OK</button>
|
||||
<button type="submit" name="ok" onclick="return onOK();">OK</button>
|
||||
<button type="button" name="cancel" onclick="return onCancel();">Cancel</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -53,12 +53,12 @@ function __dlg_init(bottom) {
|
||||
// only if we call it twice we get the
|
||||
// correct size.
|
||||
window.addEventListener("unload", __dlg_onclose, true);
|
||||
window.innerWidth = body.offsetWidth + 5;
|
||||
window.innerHeight = body_height + 2;
|
||||
// center on parent
|
||||
var x = opener.screenX + (opener.outerWidth - window.outerWidth) / 2;
|
||||
var y = opener.screenY + (opener.outerHeight - window.outerHeight) / 2;
|
||||
window.moveTo(x, y);
|
||||
window.innerWidth = body.offsetWidth + 5;
|
||||
window.innerHeight = body_height + 2;
|
||||
} else {
|
||||
// window.dialogHeight = body.offsetHeight + 50 + "px";
|
||||
// window.dialogWidth = body.offsetWidth + "px";
|
||||
@ -76,8 +76,8 @@ function __dlg_init(bottom) {
|
||||
};
|
||||
|
||||
function __dlg_translate(i18n) {
|
||||
var types = ["span", "option", "td", "button", "div"];
|
||||
for (var type in types) {
|
||||
var types = ["input", "select", "legend", "span", "option", "td", "button", "div"];
|
||||
for (var type = 0; type < types.length; ++type) {
|
||||
var spans = document.getElementsByTagName(types[type]);
|
||||
for (var i = spans.length; --i >= 0;) {
|
||||
var span = spans[i];
|
||||
@ -86,6 +86,11 @@ function __dlg_translate(i18n) {
|
||||
if (txt)
|
||||
span.firstChild.data = txt;
|
||||
}
|
||||
if (span.title) {
|
||||
var txt = i18n[span.title];
|
||||
if (txt)
|
||||
span.title = txt;
|
||||
}
|
||||
}
|
||||
}
|
||||
var txt = i18n[document.title];
|
||||
|
@ -16,7 +16,7 @@ function PopupWin(editor, title, handler, initFunction) {
|
||||
if (base && base.match(/(.*)\/([^\/]+)/)) {
|
||||
base = RegExp.$1 + "/";
|
||||
}
|
||||
if (typeof _editor_url != "undefined" && !/^\//.test(_editor_url)) {
|
||||
if (typeof _editor_url != "undefined" && !/^\//.test(_editor_url) && !/http:\/\//.test(_editor_url)) {
|
||||
// _editor_url doesn't start with '/' which means it's relative
|
||||
// FIXME: there's a problem here, it could be http:// which
|
||||
// doesn't start with slash but it's not relative either.
|
||||
@ -61,7 +61,7 @@ function PopupWin(editor, title, handler, initFunction) {
|
||||
PopupWin.prototype.callHandler = function() {
|
||||
var tags = ["input", "textarea", "select"];
|
||||
var params = new Object();
|
||||
for (var ti in tags) {
|
||||
for (var ti = tags.length; --ti >= 0;) {
|
||||
var tag = tags[ti];
|
||||
var els = this.content.getElementsByTagName(tag);
|
||||
for (var j = 0; j < els.length; ++j) {
|
||||
|
@ -1,4 +1,265 @@
|
||||
2004-02-06 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2005-03-07 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* skins/aqua/theme.css: *** empty log message ***
|
||||
|
||||
* release-notes.html: updated release notes
|
||||
|
||||
* calendar-setup.js:
|
||||
use a better approach to initialize the calendar--don't call _init twice,
|
||||
it's the most time consuming function in the calendar. Instead, determine
|
||||
the date beforehand if possible and pass it to the calendar at constructor.
|
||||
|
||||
* calendar.js:
|
||||
avoid keyboard operation when 'multiple dates' is set (very buggy for now)
|
||||
|
||||
* calendar.js:
|
||||
fixed keyboard handling problems: now it works fine when "showsOtherMonths"
|
||||
is passed; it also seems to be fine with disabled dates (won't normally
|
||||
allow selection)--however this area is still likely to be buggy, i.e. in a
|
||||
month that has all the dates disabled.
|
||||
|
||||
* calendar.js:
|
||||
some trivial performance improvements in the _init function
|
||||
Added Date.parseDate (old Calendar.prototype.parseDate now calls this one)
|
||||
|
||||
2005-03-05 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* release-notes.html: updated release notes
|
||||
|
||||
* dayinfo.html: *** empty log message ***
|
||||
|
||||
* calendar-setup.js:
|
||||
bugfix--update an inputField even if flat calendar is selected
|
||||
|
||||
* calendar.js:
|
||||
fixed bugs in parseDate function (if for some reason the input string is
|
||||
totally broken, then check numbers for NaN and use values from the current
|
||||
date instead)
|
||||
|
||||
* make-release.pl: copy the skins subdirectory and all skins
|
||||
|
||||
* index.html: added Aqua skin
|
||||
|
||||
* skins/aqua/active-bg.gif, skins/aqua/dark-bg.gif, skins/aqua/hover-bg.gif, skins/aqua/menuarrow.gif, skins/aqua/normal-bg.gif, skins/aqua/rowhover-bg.gif, skins/aqua/status-bg.gif, skins/aqua/theme.css, skins/aqua/title-bg.gif, skins/aqua/today-bg.gif:
|
||||
in the future, skins will go to this directory, each in a separate subdir; for now there's only Aqua, an excellent new skin
|
||||
|
||||
* calendar.js: workaround IE bug, needed in the Aqua theme
|
||||
don't hide select elements unless browser is IE or Opera
|
||||
|
||||
* lang/calendar-bg.js, lang/calendar-big5-utf8.js, lang/calendar-big5.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-cs-utf8.js, lang/calendar-cs-win.js, lang/calendar-da.js, lang/calendar-de.js, lang/calendar-el.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fi.js, lang/calendar-fr.js, lang/calendar-he-utf8.js, lang/calendar-hu.js, lang/calendar-it.js, lang/calendar-ko-utf8.js, lang/calendar-ko.js, lang/calendar-lt-utf8.js, lang/calendar-lt.js, lang/calendar-lv.js, lang/calendar-nl.js, lang/calendar-no.js, lang/calendar-pl-utf8.js, lang/calendar-pl.js, lang/calendar-pt.js, lang/calendar-ro.js, lang/calendar-ru.js, lang/calendar-ru_win_.js, lang/calendar-si.js, lang/calendar-sk.js, lang/calendar-sp.js, lang/calendar-sv.js, lang/calendar-zh.js, lang/cn_utf8.js:
|
||||
updated urls, copyright notices
|
||||
|
||||
* doc/reference.tex: updated documentation
|
||||
|
||||
* calendar.js, index.html:
|
||||
renamed the global variable to _dynarch_popupCalendar to avoid name clashes
|
||||
|
||||
* multiple-dates.html: start with an empty array
|
||||
|
||||
* calendar.js:
|
||||
fixed bugs in the time selector (12:XX pm was wrongfully understood as 12:XX am)
|
||||
|
||||
* calendar.js:
|
||||
using innerHTML instead of text nodes; works better in Safari and also makes
|
||||
a smaller, cleaner code
|
||||
|
||||
2005-03-04 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js:
|
||||
fixed a performance regression that occurred after adding support for multiple dates
|
||||
fixed the time selection bug (now it keeps time correctly)
|
||||
clicking today will close the calendar if "today" is already selected
|
||||
|
||||
* lang/cn_utf8.js: new translation
|
||||
|
||||
2005-02-17 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-ar-utf8.zip: Added arabic translation
|
||||
|
||||
2004-10-19 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-zh.js: updated
|
||||
|
||||
2004-09-20 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-no.js: updated (Daniel Holmen)
|
||||
|
||||
2004-09-20 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-no.js: updated (Daniel Holmen)
|
||||
|
||||
2004-08-11 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-nl.js: updated language file (thanks to Arjen Duursma)
|
||||
|
||||
* lang/calendar-sp.js: updated (thanks to Rafael Velasco)
|
||||
|
||||
2004-07-21 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-br.js: updated
|
||||
|
||||
* calendar-setup.js: fixed bug (dateText)
|
||||
|
||||
2004-07-21 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-br.js: updated
|
||||
|
||||
* calendar-setup.js: fixed bug (dateText)
|
||||
|
||||
2004-07-04 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-lv.js:
|
||||
added LV translation (thanks to Juris Valdovskis)
|
||||
|
||||
2004-06-25 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js:
|
||||
fixed bug in IE (el.calendar.tooltips is null or not an object)
|
||||
|
||||
2004-06-24 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex: fixed latex compilation
|
||||
|
||||
* index.html: linking other sample files
|
||||
|
||||
* calendar-setup.js, calendar.js, dayinfo.html:
|
||||
ability to display day info (dateText parameter) + sample file
|
||||
|
||||
2004-06-23 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex, lang/calendar-bg.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fr.js, lang/calendar-it.js, lang/calendar-ko-utf8.js, lang/calendar-ko.js, lang/calendar-nl.js, lang/calendar-sv.js, README, calendar.js, index.html:
|
||||
email address changed
|
||||
|
||||
2004-06-14 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-cs-utf8.js, lang/calendar-cs-win.js:
|
||||
updated translations
|
||||
|
||||
* calendar-system.css: added z-index to drop downs
|
||||
|
||||
* lang/calendar-en.js:
|
||||
first day of week can now be part of the language file
|
||||
|
||||
* lang/calendar-es.js:
|
||||
updated language file (thanks to Servilio Afre Puentes)
|
||||
|
||||
* calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-tas.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css, calendar-blue.css:
|
||||
added z-index property to drop downs (fixes bug)
|
||||
|
||||
2004-06-13 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js: fixed bug (apply showOthers to flat calendars too)
|
||||
|
||||
2004-06-06 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js:
|
||||
firstDay defaults to "null", in which case the value in the language file
|
||||
will be used
|
||||
|
||||
* calendar.js:
|
||||
firstDayOfWeek can now default to a value specified in the language definition file
|
||||
|
||||
* index.html: first day of week is now numeric
|
||||
|
||||
2004-06-02 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js: added date tooltip function
|
||||
|
||||
2004-05-28 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-br.js: updated (thanks to Marcos Pont)
|
||||
|
||||
* calendar-setup.js: fixed small bug
|
||||
|
||||
2004-05-01 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js: returns the calendar object
|
||||
|
||||
2004-04-28 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js:
|
||||
patch to read the date value from the inputField, according to ifFormat (if
|
||||
both are passed), for flat calendars. (thanks Colin T. Hill)
|
||||
|
||||
2004-04-20 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js, calendar.js, multiple-dates.html:
|
||||
added support for multiple dates selection
|
||||
|
||||
* lang/calendar-nl.js:
|
||||
updated Dutch translation, thanks to Jeroen Wolsink
|
||||
|
||||
* lang/calendar-big5-utf8.js, lang/calendar-big5.js:
|
||||
Traditional Chinese language (thanks GaryFu)
|
||||
|
||||
2004-03-26 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-fr.js, lang/calendar-pt.js: updated
|
||||
|
||||
* lang/calendar-ru_win_.js, lang/calendar-ru.js:
|
||||
updated, thanks to Sly Golovanov
|
||||
|
||||
2004-03-25 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-fr.js: updated (thanks to David Duret)
|
||||
|
||||
2004-03-24 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-da.js: updated (thanks to Michael Thingmand Henriksen)
|
||||
|
||||
2004-03-21 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-ca.js: updated (thanks to David Valls)
|
||||
|
||||
2004-03-17 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-de.js: updated to UTF8 (thanks to Jack (tR))
|
||||
|
||||
2004-03-09 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-bg.js: Bulgarian translation
|
||||
|
||||
2004-03-08 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-he-utf8.js: Hebrew translation (thanks to Idan Sofer)
|
||||
|
||||
* lang/calendar-hu.js: updated (thanks to Istvan Karaszi)
|
||||
|
||||
2004-02-27 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-it.js: updated (thanks to Fabio Di Bernardini)
|
||||
|
||||
2004-02-25 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js: fix for Safari (thanks to Olivier Chirouze / XPWeb)
|
||||
|
||||
2004-02-22 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-al.js: Albanian language file
|
||||
|
||||
2004-02-17 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-fr.js: fixed
|
||||
|
||||
* lang/calendar-fr.js:
|
||||
FR translation updated (thanks to SIMON Alexandre)
|
||||
|
||||
* lang/calendar-es.js: ES translation updated, thanks to David Gonzales
|
||||
|
||||
2004-02-10 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-pt.js:
|
||||
updated Portugese translation, thanks to Elcio Ferreira
|
||||
|
||||
2004-02-09 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* TODO: updated
|
||||
|
||||
2004-02-06 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* README: describe the PHP files
|
||||
|
||||
* make-release.pl: includes php files
|
||||
|
||||
* make-release.pl: ChangeLog included in the distribution (if found)
|
||||
|
||||
@ -27,7 +288,7 @@
|
||||
* calendar-blue.css, calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-tas.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css:
|
||||
smaller fonts on days that are in neighbor months
|
||||
|
||||
2004-02-04 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-02-04 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* index.html: first demo shows the "showOtherMonths" capability
|
||||
|
||||
@ -47,7 +308,7 @@
|
||||
|
||||
* calendar.php: fixed bug (pass numeric values as numbers)
|
||||
|
||||
2004-02-01 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-02-01 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.php: added PHP wrapper
|
||||
|
||||
@ -55,7 +316,7 @@
|
||||
|
||||
* TODO: updated TODO list
|
||||
|
||||
2004-01-27 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-01-27 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js:
|
||||
Janusz Piwowarski sent over a patch for IE5 compatibility which is much more
|
||||
@ -63,7 +324,7 @@
|
||||
|
||||
* lang/calendar-fi.js: updated
|
||||
|
||||
2004-01-15 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-01-15 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* TODO: updated TODO list
|
||||
|
||||
@ -85,7 +346,7 @@
|
||||
fixed parseDate routine (the NaN bug which occurred when there was a space
|
||||
after the date and no time)
|
||||
|
||||
2004-01-14 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-01-14 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-en.js: added "Time:"
|
||||
|
||||
@ -107,7 +368,7 @@
|
||||
* lang/calendar-el.js:
|
||||
updated Greek translation (thanks Alexandros Pappas)
|
||||
|
||||
2004-01-13 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-01-13 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* index.html: added style blue2, using utf-8 instead of iso-8859-2
|
||||
|
||||
@ -120,32 +381,32 @@
|
||||
* calendar-blue.css, calendar-blue2.css, calendar-brown.css, calendar-green.css, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css:
|
||||
fixed IE text size problems
|
||||
|
||||
2004-01-08 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-01-08 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-pl.js:
|
||||
Polish translation updated to UTF-8 (thanks to Artur Filipiak)
|
||||
|
||||
2004-01-07 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2004-01-07 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-si.js: updated (David Milost)
|
||||
|
||||
* lang/calendar-si.js: Slovenian translation (thanks to David Milost)
|
||||
|
||||
2003-12-21 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-12-21 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* TODO: updated TODO list
|
||||
|
||||
* lang/calendar-de.js: German translation (thanks to Peter Strotmann)
|
||||
|
||||
2003-12-19 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-12-19 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex: Thank you, Ian Barrak
|
||||
|
||||
2003-12-18 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-12-18 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex: fixed documentation bug (thanks Mike)
|
||||
|
||||
2003-12-05 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-12-05 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-ko-utf8.js:
|
||||
UTF8 version of the Korean language (hopefully correct)
|
||||
@ -153,16 +414,16 @@
|
||||
* lang/calendar-pl-utf8.js, lang/calendar-pl.js:
|
||||
updated Polish translation (thanks to Janusz Piwowarski)
|
||||
|
||||
2003-12-04 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-12-04 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-fr.js:
|
||||
French translation updated (thanks to Angiras Rama)
|
||||
|
||||
2003-11-22 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-22 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-da.js: updated (thanks to Jesper M. Christensen)
|
||||
|
||||
2003-11-20 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-20 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-blue2.css, calendar-tas.css:
|
||||
new styles (thanks to Wendall Mosemann for blue2, Mark Lynch for tas)
|
||||
@ -172,19 +433,19 @@
|
||||
|
||||
* lang/calendar-sp.js: updated
|
||||
|
||||
2003-11-17 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-17 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* TODO: added TODO list
|
||||
|
||||
2003-11-14 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-14 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-ko.js: Korean translation (thanks to Yourim Yi)
|
||||
|
||||
2003-11-12 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-12 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-jp.js: small bug fixed (thanks to TAHARA Yusei)
|
||||
|
||||
2003-11-10 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-10 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-fr.js: translation updated, thanks to Florent Ramiere
|
||||
|
||||
@ -193,18 +454,18 @@
|
||||
|
||||
* index.html: fixed DOCTYPE
|
||||
|
||||
2003-11-07 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-07 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js:
|
||||
fixed minor problem (maybe we're passing object reference instead of ID for
|
||||
the flat calendar parent)
|
||||
|
||||
2003-11-06 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-06 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-fi.js:
|
||||
added Finnish translation (thanks to Antti Tuppurainen)
|
||||
|
||||
2003-11-05 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-05 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* release-notes.html: fixed typo
|
||||
|
||||
@ -214,7 +475,7 @@
|
||||
|
||||
* release-notes.html: updated release notes (0.9.5)
|
||||
|
||||
2003-11-03 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-03 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-de.js:
|
||||
updated German translation (thanks to Gerhard Neiner)
|
||||
@ -228,18 +489,18 @@
|
||||
* calendar.js:
|
||||
fixed positioning problem when input field is inside scrolled divs
|
||||
|
||||
2003-11-01 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-11-01 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-af.js: Afrikaan language (thanks to Derick Olivier)
|
||||
|
||||
2003-10-31 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-31 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-it.js:
|
||||
updated IT translation (thanks to Christian Blaser)
|
||||
|
||||
* lang/calendar-es.js: updated ES translation, thanks to Raul
|
||||
|
||||
2003-10-30 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-30 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-hu.js: updated thanks to Istvan Karaszi
|
||||
|
||||
@ -251,7 +512,7 @@
|
||||
|
||||
* lang/calendar-ro.js: switched to utf-8
|
||||
|
||||
2003-10-29 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-29 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-es.js:
|
||||
updated translation, thanks to Jose Ma. Martinez Miralles
|
||||
@ -281,7 +542,7 @@
|
||||
* calendar.js:
|
||||
A click on TODAY will not close the calendar, even in single-click mode
|
||||
|
||||
2003-10-28 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-28 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* index.html: previous cal.html
|
||||
|
||||
@ -293,29 +554,29 @@
|
||||
* doc/Calendar.setup.tex, simple-1.html:
|
||||
doc updated for the onUpdate parameter to Calendar.setup
|
||||
|
||||
2003-10-26 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-26 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js: fixed bug (correct display of the dropdown menus)
|
||||
|
||||
* doc/Calendar.setup.tex, doc/reference.tex, lang/calendar-de.js, lang/calendar-en.js, lang/calendar-ro.js, README, cal.html, calendar-blue.css, calendar-brown.css, calendar-green.css, calendar-setup.js, calendar-system.css, calendar-win2k-1.css, calendar-win2k-2.css, calendar-win2k-cold-1.css, calendar-win2k-cold-2.css, calendar.js, release-notes.html, simple-1.html, simple-3.html:
|
||||
lots of changes for the 0.9.4 release (see the release-notes.html)
|
||||
|
||||
2003-10-15 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-15 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex:
|
||||
documentation updated for 0.9.4 (not yet finished though)
|
||||
|
||||
2003-10-07 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-07 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js, doc/reference.tex, release-notes.html, README, cal.html, calendar-setup.js:
|
||||
modified project website
|
||||
|
||||
2003-10-06 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-10-06 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar-setup.js:
|
||||
added some properties (onSelect, onClose, date) (thanks altblue)
|
||||
|
||||
2003-09-24 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-09-24 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* simple-3.html: dateIsSpecial does not need the "date" argument ;-)
|
||||
|
||||
@ -324,33 +585,33 @@
|
||||
* calendar.js, simple-3.html:
|
||||
added year, month, day to getDateStatus() function
|
||||
|
||||
2003-09-24 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-09-24 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* simple-3.html: example on how to use special dates
|
||||
|
||||
* calendar-setup.js, calendar.js, simple-1.html:
|
||||
support for special dates (thanks fabio)
|
||||
|
||||
2003-09-17 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-09-17 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex: fixed error in section 3.
|
||||
|
||||
2003-08-01 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-08-01 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-jp.js: added Japanese translation
|
||||
|
||||
2003-07-16 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-16 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* simple-1.html: fixed problem with first example [IE,Opera]
|
||||
|
||||
2003-07-09 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-09 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/Calendar.setup.tex: fixed typo (closing parenthesis)
|
||||
|
||||
* lang/calendar-de.js:
|
||||
added German translation, thanks to Hartwig Weinkauf
|
||||
|
||||
2003-07-08 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-08 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* cal.html: added link to release-notes
|
||||
|
||||
@ -368,7 +629,7 @@
|
||||
|
||||
* calendar.js: added semicolon to make the code "compressible"
|
||||
|
||||
2003-07-06 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-06 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/reference.tex: spell checked
|
||||
|
||||
@ -378,7 +639,7 @@
|
||||
|
||||
* doc/html/reference.css: minor eye-candy tweaks
|
||||
|
||||
2003-07-05 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-05 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* doc/html/Calendar.setup.html.tex, doc/html/makedoc.sh, doc/html/reference.css, doc/html/reference.t2p, doc/hyperref.cfg, doc/makedoc.sh, doc/reference.tex, doc/Calendar.setup.tex, doc/Calendar.setup.pdf.tex:
|
||||
full documentation in LaTeX, for PDF and HTML formats
|
||||
@ -398,7 +659,7 @@
|
||||
|
||||
* calendar-setup.html: removed: the documentation is unified
|
||||
|
||||
2003-07-03 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-03 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* cal.html: some links to newly added files
|
||||
|
||||
@ -407,7 +668,7 @@
|
||||
|
||||
* lang/calendar-zh.js: added simplified chinese (thanks ATang)
|
||||
|
||||
2003-07-02 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-07-02 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js: * "yy"-related... [small fix]
|
||||
|
||||
@ -419,12 +680,12 @@
|
||||
* calendar.js: * fixed bug when in single click mode
|
||||
* added alignment options to "showAtElement" member function
|
||||
|
||||
2003-06-25 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-06-25 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-pt.js:
|
||||
added portugese translation (thanks Nuno Barreto)
|
||||
|
||||
2003-06-24 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-06-24 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js:
|
||||
call user handler when the date was changed using the keyboard
|
||||
@ -435,14 +696,14 @@
|
||||
* lang/calendar-hr-utf8.js:
|
||||
added croatian translation in utf8 (thanks Krunoslav Zubrinic)
|
||||
|
||||
2003-06-23 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-06-23 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-hu.js: added hungarian translation
|
||||
|
||||
* lang/calendar-hr.js:
|
||||
added croatian translation (thanks to Krunoslav Zubrinic)
|
||||
|
||||
2003-06-22 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-06-22 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js:
|
||||
* #723335 fixed (clicking TODAY will not select the today date if the
|
||||
@ -457,30 +718,30 @@
|
||||
calendar in single-click mode)
|
||||
* bug #703814 fixed
|
||||
|
||||
2003-04-09 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-04-09 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-tr.js: added turkish lang file
|
||||
|
||||
2003-03-19 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-03-19 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-ru.js: russian translation added
|
||||
|
||||
* lang/calendar-no.js: norwegian translation added
|
||||
|
||||
2003-03-15 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-03-15 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-no.js: norwegian translation
|
||||
|
||||
2003-03-12 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-03-12 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* lang/calendar-pl.js: added polish translation
|
||||
|
||||
2003-03-11 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-03-11 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js:
|
||||
bugfix in parseDate (added base to parseInt, thanks Alan!)
|
||||
|
||||
2003-03-05 Mihai Bazon <mishoo@localhost.localdomain>
|
||||
2003-03-05 Mihai Bazon <mihai_bazon@yahoo.com>
|
||||
|
||||
* calendar.js, lang/calendar-br.js, lang/calendar-ca.js, lang/calendar-cs-win.js, lang/calendar-da.js, lang/calendar-du.js, lang/calendar-el.js, lang/calendar-en.js, lang/calendar-es.js, lang/calendar-fr.js, lang/calendar-it.js, lang/calendar-nl.js, lang/calendar-ro.js, lang/calendar-sp.js, lang/calendar-sw.js:
|
||||
New file.
|
||||
|
@ -1,7 +1,7 @@
|
||||
The DHTML Calendar
|
||||
-------------------
|
||||
|
||||
Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
http://dynarch.com/mishoo/
|
||||
|
||||
This program is free software published under the
|
||||
|
@ -3,8 +3,8 @@
|
||||
div.calendar { position: relative; }
|
||||
|
||||
.calendar, .calendar table {
|
||||
border: 0px solid #556;
|
||||
font-size: 10pt;
|
||||
border: 1px solid #556;
|
||||
font-size: 11px;
|
||||
color: #000;
|
||||
cursor: default;
|
||||
background: #eef;
|
||||
@ -170,6 +170,7 @@ div.calendar { position: relative; }
|
||||
background: #def;
|
||||
color: #000;
|
||||
font-size: 90%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -171,6 +171,7 @@ div.calendar { position: relative; }
|
||||
background: #def;
|
||||
color: #000;
|
||||
font-size: 90%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -163,6 +163,7 @@ div.calendar { position: relative; }
|
||||
background: #ffe;
|
||||
color: #000;
|
||||
font-size: 90%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -167,6 +167,7 @@ div.calendar { position: relative; }
|
||||
background: #efd;
|
||||
color: #000;
|
||||
font-size: 90%;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -35,19 +35,13 @@
|
||||
* eventName | event that will trigger the calendar, without the "on" prefix (default: "click")
|
||||
* ifFormat | date format that will be stored in the input field
|
||||
* daFormat | the date format that will be used to display the date in displayArea
|
||||
* titleFormat | the format to show the month in the title, default '%B, %Y'
|
||||
* singleClick | (true/false) wether the calendar is in single click mode or not (default: true)
|
||||
* firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc.
|
||||
* disableFirstDowChange| (true/false) disables manual change of first day of week
|
||||
* align | alignment (default: "Br"); if you don't know what's this see the calendar documentation
|
||||
* range | array with 2 elements. Default: [1900, 2999] -- the range of years available
|
||||
* weekNumbers | (true/false) if it's true (default) the calendar will display week numbers
|
||||
* flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
|
||||
* flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
|
||||
* flatWeekCallback| gets called if a weeknumber get clicked, params are the cal-object and a date-object representing the start of the week
|
||||
* flatWeekTTip | Tooltip for the weeknumber (shown only if flatWeekCallback is set)
|
||||
* flatMonthCallback| gets called if a month (title) get clicked, params are the cal-object and a date-object representing the start of the month
|
||||
* flatMonthTTip | Tooltip for the month (shown only if flatMonthCallback is set)
|
||||
* disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
|
||||
* onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay)
|
||||
* onClose | function that gets called when the calendar is closed. [default]
|
||||
@ -74,21 +68,16 @@ Calendar.setup = function (params) {
|
||||
param_default("eventName", "click");
|
||||
param_default("ifFormat", "%Y/%m/%d");
|
||||
param_default("daFormat", "%Y/%m/%d");
|
||||
param_default("titleFormat", "%B, %Y");
|
||||
param_default("singleClick", true);
|
||||
param_default("disableFunc", null);
|
||||
param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
|
||||
param_default("firstDay", 0); // defaults to "Sunday" first
|
||||
param_default("disableFirstDowChange", false);
|
||||
param_default("dateText", null);
|
||||
param_default("firstDay", null);
|
||||
param_default("align", "Br");
|
||||
param_default("range", [1900, 2999]);
|
||||
param_default("weekNumbers", true);
|
||||
param_default("flat", null);
|
||||
param_default("flatCallback", null);
|
||||
param_default("flatWeekCallback",null);
|
||||
param_default("flatWeekTTip", null);
|
||||
param_default("flatmonthCallback",null);
|
||||
param_default("flatmonthTTip", null);
|
||||
param_default("onSelect", null);
|
||||
param_default("onClose", null);
|
||||
param_default("onUpdate", null);
|
||||
@ -100,6 +89,7 @@ Calendar.setup = function (params) {
|
||||
param_default("position", null);
|
||||
param_default("cache", false);
|
||||
param_default("showOthers", false);
|
||||
param_default("multiple", null);
|
||||
|
||||
var tmp = ["inputField", "displayArea", "button"];
|
||||
for (var i in tmp) {
|
||||
@ -107,7 +97,7 @@ Calendar.setup = function (params) {
|
||||
params[tmp[i]] = document.getElementById(params[tmp[i]]);
|
||||
}
|
||||
}
|
||||
if (!(params.flat || params.inputField || params.displayArea || params.button)) {
|
||||
if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
|
||||
alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");
|
||||
return false;
|
||||
}
|
||||
@ -115,13 +105,6 @@ Calendar.setup = function (params) {
|
||||
function onSelect(cal) {
|
||||
var p = cal.params;
|
||||
var update = (cal.dateClicked || p.electric);
|
||||
if (update && p.flat) {
|
||||
if (typeof p.flatCallback == "function")
|
||||
p.flatCallback(cal);
|
||||
else
|
||||
alert("No flatCallback given -- doing nothing.");
|
||||
return false;
|
||||
}
|
||||
if (update && p.inputField) {
|
||||
p.inputField.value = cal.date.print(p.ifFormat);
|
||||
if (typeof p.inputField.onchange == "function")
|
||||
@ -129,10 +112,14 @@ Calendar.setup = function (params) {
|
||||
}
|
||||
if (update && p.displayArea)
|
||||
p.displayArea.innerHTML = cal.date.print(p.daFormat);
|
||||
if (update && p.singleClick && cal.dateClicked)
|
||||
cal.callCloseHandler();
|
||||
if (update && typeof p.onUpdate == "function")
|
||||
p.onUpdate(cal);
|
||||
if (update && p.flat) {
|
||||
if (typeof p.flatCallback == "function")
|
||||
p.flatCallback(cal);
|
||||
}
|
||||
if (update && p.singleClick && cal.dateClicked)
|
||||
cal.callCloseHandler();
|
||||
};
|
||||
|
||||
if (params.flat != null) {
|
||||
@ -143,13 +130,20 @@ Calendar.setup = function (params) {
|
||||
return false;
|
||||
}
|
||||
var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
|
||||
cal.showsOtherMonths = params.showOthers;
|
||||
cal.showsTime = params.showsTime;
|
||||
cal.time24 = (params.timeFormat == "24");
|
||||
cal.params = params;
|
||||
cal.weekNumbers = params.weekNumbers;
|
||||
cal.setRange(params.range[0], params.range[1]);
|
||||
cal.setDateStatusHandler(params.dateStatusFunc);
|
||||
cal.showsOtherMonths = params.showOthers;
|
||||
cal.getDateText = params.dateText;
|
||||
if (params.ifFormat) {
|
||||
cal.setDateFormat(params.ifFormat);
|
||||
}
|
||||
if (params.inputField && typeof params.inputField.value == "string") {
|
||||
cal.parseDate(params.inputField.value);
|
||||
}
|
||||
cal.create(params.flat);
|
||||
cal.show();
|
||||
return false;
|
||||
@ -161,6 +155,8 @@ Calendar.setup = function (params) {
|
||||
var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
|
||||
var mustCreate = false;
|
||||
var cal = window.calendar;
|
||||
if (dateEl)
|
||||
params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
|
||||
if (!(cal && params.cache)) {
|
||||
window.calendar = cal = new Calendar(params.firstDay,
|
||||
params.date,
|
||||
@ -175,15 +171,23 @@ Calendar.setup = function (params) {
|
||||
cal.setDate(params.date);
|
||||
cal.hide();
|
||||
}
|
||||
if (params.multiple) {
|
||||
cal.multiple = {};
|
||||
for (var i = params.multiple.length; --i >= 0;) {
|
||||
var d = params.multiple[i];
|
||||
var ds = d.print("%Y%m%d");
|
||||
cal.multiple[ds] = d;
|
||||
}
|
||||
}
|
||||
cal.showsOtherMonths = params.showOthers;
|
||||
cal.yearStep = params.step;
|
||||
cal.setRange(params.range[0], params.range[1]);
|
||||
cal.params = params;
|
||||
cal.setDateStatusHandler(params.dateStatusFunc);
|
||||
cal.getDateText = params.dateText;
|
||||
cal.setDateFormat(dateFmt);
|
||||
if (mustCreate)
|
||||
cal.create();
|
||||
cal.parseDate(dateEl.value || dateEl.innerHTML);
|
||||
cal.refresh();
|
||||
if (!params.position)
|
||||
cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
|
||||
@ -191,4 +195,6 @@ Calendar.setup = function (params) {
|
||||
cal.showAt(params.position[0], params.position[1]);
|
||||
return false;
|
||||
};
|
||||
|
||||
return cal;
|
||||
};
|
||||
|
@ -18,4 +18,4 @@
|
||||
* modify this code to suit your needs (this is recommended and much better
|
||||
* than modifying calendar.js itself).
|
||||
*/
|
||||
Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("firstDay",0);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);else alert("No flatCallback given -- doing nothing.");return false;}if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(!(cal&¶ms.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.parseDate(dateEl.value||dateEl.innerHTML);cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};};
|
||||
Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&¶ms.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;};
|
@ -190,6 +190,7 @@
|
||||
color: MenuText;
|
||||
font-size: 90%;
|
||||
padding: 1px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -177,6 +177,7 @@ progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#FFFFFF,
|
||||
background: #ffe;
|
||||
color: #000;
|
||||
font-size: smaller;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.combo .label,
|
||||
|
@ -206,6 +206,7 @@
|
||||
background: #e4e0d8;
|
||||
font-size: 90%;
|
||||
padding: 1px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -206,6 +206,7 @@
|
||||
background: #e4d8e0;
|
||||
font-size: 90%;
|
||||
padding: 1px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -200,6 +200,7 @@
|
||||
background: #d8e0e4;
|
||||
font-size: 90%;
|
||||
padding: 1px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
@ -206,6 +206,7 @@
|
||||
background: #d8e4e0;
|
||||
font-size: 90%;
|
||||
padding: 1px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.calendar .combo .label,
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,193 @@
|
||||
|
||||
body {
|
||||
color: black;
|
||||
/* background-color: #e5e5e5;*/
|
||||
background-color: #ffffff;
|
||||
/*background-color: beige;*/
|
||||
margin-top: 2em;
|
||||
margin-left: 8%;
|
||||
margin-right: 8%;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
margin-top: .5em;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 200%;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.partheading {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.chapterheading {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.beginsection {
|
||||
font-size: 110%;
|
||||
}
|
||||
|
||||
.tiny {
|
||||
font-size: 40%;
|
||||
}
|
||||
|
||||
.scriptsize {
|
||||
font-size: 60%;
|
||||
}
|
||||
|
||||
.footnotesize {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.normalsize {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.large {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.largecap {
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
.largeup {
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
.huge {
|
||||
font-size: 300%;
|
||||
}
|
||||
|
||||
.hugecap {
|
||||
font-size: 350%;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ol ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
ol ol ol {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
|
||||
ol ol ol ol {
|
||||
list-style-type: upper-alpha;
|
||||
}
|
||||
|
||||
/*
|
||||
.verbatim {
|
||||
color: #4d0000;
|
||||
}
|
||||
*/
|
||||
|
||||
tt i {
|
||||
font-family: serif;
|
||||
}
|
||||
|
||||
.verbatim em {
|
||||
font-family: serif;
|
||||
}
|
||||
|
||||
.scheme em {
|
||||
font-family: serif;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.scheme {
|
||||
color: brown;
|
||||
}
|
||||
|
||||
.scheme .keyword {
|
||||
color: #990000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.scheme .builtin {
|
||||
color: #990000;
|
||||
}
|
||||
|
||||
.scheme .variable {
|
||||
color: navy;
|
||||
}
|
||||
|
||||
.scheme .global {
|
||||
color: purple;
|
||||
}
|
||||
|
||||
.scheme .selfeval {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.scheme .comment {
|
||||
color: teal;
|
||||
}
|
||||
|
||||
.schemeresponse {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.navigation {
|
||||
color: red;
|
||||
text-align: right;
|
||||
font-size: medium;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.disable {
|
||||
/* color: #e5e5e5; */
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.smallcaps {
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.smallprint {
|
||||
color: gray;
|
||||
font-size: 75%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/*
|
||||
.smallprint hr {
|
||||
text-align: left;
|
||||
width: 40%;
|
||||
}
|
||||
*/
|
||||
|
||||
.footnoterule {
|
||||
text-align: left;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.colophon {
|
||||
color: gray;
|
||||
font-size: 80%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.colophon a {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -6,11 +6,12 @@
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/xml; charset=utf-8" />
|
||||
<title>The Coolest DHTML Calendar - Online Demo</title>
|
||||
<link rel="stylesheet" type="text/css" media="all" href="skins/aqua/theme.css" title="Aqua" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-blue.css" title="winter" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-blue2.css" title="blue" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-brown.css" title="summer" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-green.css" title="green" />
|
||||
<link rel="stylesheet" type="text/css" media="all" href="calendar-win2k-1.css" title="win2k-1" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-1.css" title="win2k-1" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-2.css" title="win2k-2" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-cold-1.css" title="win2k-cold-1" />
|
||||
<link rel="alternate stylesheet" type="text/css" media="all" href="calendar-win2k-cold-2.css" title="win2k-cold-2" />
|
||||
@ -60,7 +61,7 @@ function selected(cal, date) {
|
||||
function closeHandler(cal) {
|
||||
cal.hide(); // hide the calendar
|
||||
// cal.destroy();
|
||||
calendar = null;
|
||||
_dynarch_popupCalendar = null;
|
||||
}
|
||||
|
||||
// This function shows the calendar under the element having the given id.
|
||||
@ -68,12 +69,12 @@ function closeHandler(cal) {
|
||||
// calendar if the click was outside.
|
||||
function showCalendar(id, format, showsTime, showsOtherMonths) {
|
||||
var el = document.getElementById(id);
|
||||
if (calendar != null) {
|
||||
if (_dynarch_popupCalendar != null) {
|
||||
// we already have some calendar created
|
||||
calendar.hide(); // so we hide it first.
|
||||
_dynarch_popupCalendar.hide(); // so we hide it first.
|
||||
} else {
|
||||
// first-time call, create the calendar.
|
||||
var cal = new Calendar(true, null, selected, closeHandler);
|
||||
var cal = new Calendar(1, null, selected, closeHandler);
|
||||
// uncomment the following line to hide the week numbers
|
||||
// cal.weekNumbers = false;
|
||||
if (typeof showsTime == "string") {
|
||||
@ -83,18 +84,18 @@ function showCalendar(id, format, showsTime, showsOtherMonths) {
|
||||
if (showsOtherMonths) {
|
||||
cal.showsOtherMonths = true;
|
||||
}
|
||||
calendar = cal; // remember it in the global var
|
||||
_dynarch_popupCalendar = cal; // remember it in the global var
|
||||
cal.setRange(1900, 2070); // min/max year allowed.
|
||||
cal.create();
|
||||
}
|
||||
calendar.setDateFormat(format); // set the specified date format
|
||||
calendar.parseDate(el.value); // try to parse the text in field
|
||||
calendar.sel = el; // inform it what input field we use
|
||||
_dynarch_popupCalendar.setDateFormat(format); // set the specified date format
|
||||
_dynarch_popupCalendar.parseDate(el.value); // try to parse the text in field
|
||||
_dynarch_popupCalendar.sel = el; // inform it what input field we use
|
||||
|
||||
// the reference element that we pass to showAtElement is the button that
|
||||
// triggers the calendar. In this example we align the calendar bottom-right
|
||||
// to the button.
|
||||
calendar.showAtElement(el.nextSibling, "Br"); // show the calendar
|
||||
_dynarch_popupCalendar.showAtElement(el.nextSibling, "Br"); // show the calendar
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -128,7 +129,7 @@ function showFlatCalendar() {
|
||||
var parent = document.getElementById("display");
|
||||
|
||||
// construct a calendar giving only the "selected" handler.
|
||||
var cal = new Calendar(true, null, flatSelected);
|
||||
var cal = new Calendar(0, null, flatSelected);
|
||||
|
||||
// hide week numbers
|
||||
cal.weekNumbers = false;
|
||||
@ -163,13 +164,15 @@ padding: 0px 5px; cursor: default; font-size: 80%; }
|
||||
</head>
|
||||
<body onload="showFlatCalendar()">
|
||||
|
||||
<h2><a href="http://dynarch.com/mishoo/calendar.epl"
|
||||
title="Visit the project website">jscalendar</a>-0.9.6
|
||||
"Keep cool but don't freeze"</h2>
|
||||
<h2><a href="http://www.dynarch.com/projects/calendar/"
|
||||
title="Visit the project website">jscalendar</a>-1.0
|
||||
"It is happening again"</h2>
|
||||
|
||||
<p>
|
||||
<div style="float: right; border: 1px solid #b87; padding: 2px; font-size: 90%; background: #ffb;">
|
||||
Theme:<br />
|
||||
<a href="#" id="defaultTheme" onclick="return setActiveStyleSheet(this, 'Aqua');">Aqua</a>
|
||||
|
|
||||
<a href="#" onclick="return setActiveStyleSheet(this, 'winter');">winter</a>
|
||||
|
|
||||
<a href="#" onclick="return setActiveStyleSheet(this, 'blue');">blue</a>
|
||||
@ -178,7 +181,7 @@ Theme:<br />
|
||||
|
|
||||
<a href="#" onclick="return setActiveStyleSheet(this, 'green');">green</a>
|
||||
<br />
|
||||
<a href="#" id="defaultTheme" onclick="return setActiveStyleSheet(this, 'win2k-1');">win2k-1</a>
|
||||
<a href="#" onclick="return setActiveStyleSheet(this, 'win2k-1');">win2k-1</a>
|
||||
|
|
||||
<a href="#" onclick="return setActiveStyleSheet(this, 'win2k-2');">win2k-2</a>
|
||||
|
|
||||
@ -188,7 +191,7 @@ Theme:<br />
|
||||
<br />
|
||||
<a href="#" onclick="return setActiveStyleSheet(this, 'system');">system</a>
|
||||
<script type="text/javascript">
|
||||
setActiveStyleSheet(document.getElementById("defaultTheme"), "win2k-1");
|
||||
setActiveStyleSheet(document.getElementById("defaultTheme"), "Aqua");
|
||||
</script>
|
||||
</div>
|
||||
<a href="release-notes.html">Release notes</a>.
|
||||
@ -196,12 +199,15 @@ setActiveStyleSheet(document.getElementById("defaultTheme"), "win2k-1");
|
||||
Set it up in minutes:
|
||||
<a href="simple-1.html">popup calendar</a>,
|
||||
<a href="simple-2.html">flat calendar</a>.
|
||||
Other samples:
|
||||
<a href="simple-3.html">special days</a>,
|
||||
<a href="dayinfo.html">day info</a>,
|
||||
<a href="multiple-dates.html">multiple dates selection</a>
|
||||
<br />
|
||||
Documentation:
|
||||
<a href="doc/html/reference.html">HTML</a>,
|
||||
<a href="doc/reference.pdf">PDF</a>.
|
||||
<br />
|
||||
<b style="color: red">Donate! Keep me on it! Details on <a href="http://dynarch.com/mishoo/calendar.epl">the Calendar website</a>.</b>
|
||||
</p>
|
||||
|
||||
<div style="padding-left:20px; font-size: 90%; font-style: italic;">
|
||||
@ -259,18 +265,9 @@ double click
|
||||
|
||||
</form>
|
||||
|
||||
<p>This is release <b>0.9.6</b>. Works on MSIE/Win 5.0 or better (really),
|
||||
Opera 7, Mozilla, Netscape 6.x, 7.0 and all other Gecko-s, Konqueror and
|
||||
Safari.</p>
|
||||
|
||||
<p class="help">You can click on "Mo"/"Su" (first day name displayed) to
|
||||
change the first day of week (Sunday/Monday) (since 0.8 this is also mapped
|
||||
on the "-" button in the top-left corner). Use the navigation buttons
|
||||
("<<", "<", "Today", ">", ">>") to move to the prev/next
|
||||
year/month. Keep the mouse button pressed for a short time over one of
|
||||
these buttons to get a menu for faster selection. You can drag the "status
|
||||
bar" (that's where the tooltips appear) or title bar (that's where the
|
||||
currently selected month/year shows up) to move the whole calendar.</p>
|
||||
<p>This is release <b>1.0</b>. Works on MSIE/Win 5.0 or better (really),
|
||||
Opera 7+, Mozilla, Firefox, Netscape 6.x, 7.0 and all other Gecko-s,
|
||||
Konqueror and Safari.</p>
|
||||
|
||||
<h4>Keyboard navigation</h4>
|
||||
|
||||
@ -294,7 +291,7 @@ dates (only for popup calendars; does <em>not</em> work with Opera
|
||||
|
||||
</td>
|
||||
|
||||
<td style="padding: 5px; margin: 5px; border: 1px solid #984; background: #ed9; width: 15em;">
|
||||
<td style="padding: 5px; margin: 5px; border: 1px solid #984; background: #ed9; width: 19em;">
|
||||
|
||||
<div style="background: #984; color: #fea; font-weight: bold; padding: 2px; text-align: center">
|
||||
Flat calendar
|
||||
@ -305,9 +302,9 @@ dates (only for popup calendars; does <em>not</em> work with Opera
|
||||
|
||||
<!-- the calendar will be inserted here -->
|
||||
<div id="display" style="float: right; clear: both;"></div>
|
||||
<div id="preview" style="font-size: 80%; text-align: center; padding: 2px"></div>
|
||||
<div id="preview" style="font-size: 80%; text-align: center; padding: 2px"> </div>
|
||||
|
||||
<p style="width: 12em"><small>
|
||||
<p style="clear: both;"><small>
|
||||
The example above uses the <code>setDisabledHandler()</code> member function
|
||||
to setup a handler that would only enable days withing a range of 10 days,
|
||||
forward or backward, from the current date.
|
||||
@ -321,13 +318,13 @@ dates (only for popup calendars; does <em>not</em> work with Opera
|
||||
</table>
|
||||
|
||||
<hr /><address>
|
||||
© <a href="http://dynarch.com">dynarch.com</a> 2002-2003 <br />
|
||||
Author: <a href="http://dynarch.com/mishoo/">Mihai
|
||||
© <a href="http://www.dynarch.com/">dynarch.com</a> 2002-2005 <br />
|
||||
Author: <a href="http://www.bazon.net/mishoo/">Mihai
|
||||
Bazon</a><br /> Distributed under the <a
|
||||
href="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</a>.</address>
|
||||
|
||||
<p style="font-size: smaller">If you use this script on a public page it
|
||||
would be nice if you would <a href="mailto:mishoo@infoiasi.ro">let me
|
||||
<p style="font-size: smaller">If you use this script on a public page we
|
||||
would love it if you would <a href="http://www.dynarch.com/contact.html">let us
|
||||
know</a>.</p>
|
||||
|
||||
</body></html>
|
||||
|
@ -1,17 +1,45 @@
|
||||
// ** I18N
|
||||
// ** I18N
|
||||
|
||||
// Calendar pt-BR language
|
||||
// Author: Fernando Dourado, <fernando.dourado@ig.com.br>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Domingo",
|
||||
"Segunda",
|
||||
"Terça",
|
||||
"Terça",
|
||||
"Quarta",
|
||||
"Quinta",
|
||||
"Sexta",
|
||||
"Sábado",
|
||||
"Sabádo",
|
||||
"Domingo");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
// [No changes using default values]
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Janeiro",
|
||||
"Fevereiro",
|
||||
"Março",
|
||||
"Março",
|
||||
"Abril",
|
||||
"Maio",
|
||||
"Junho",
|
||||
@ -22,24 +50,59 @@ Calendar._MN = new Array
|
||||
"Novembro",
|
||||
"Dezembro");
|
||||
|
||||
// short month names
|
||||
// [No changes using default values]
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "Altera primeiro dia da semana";
|
||||
Calendar._TT["PREV_YEAR"] = "Ano anterior(hold for menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mês anterior (hold for menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Hoje";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mês seguinte (hold for menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "ano seguinte (hold for menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Seleciona uma data";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Arrasta calendário";
|
||||
Calendar._TT["INFO"] = "Sobre o calendário";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Translate to portuguese Brazil (pt-BR) by Fernando Dourado (fernando.dourado@ig.com.br)\n" +
|
||||
"Tradução para o português Brasil (pt-BR) por Fernando Dourado (fernando.dourado@ig.com.br)" +
|
||||
"\n\n" +
|
||||
"Selecionar data:\n" +
|
||||
"- Use as teclas \xab, \xbb para selecionar o ano\n" +
|
||||
"- Use as teclas " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mês\n" +
|
||||
"- Clique e segure com o mouse em qualquer botão para selecionar rapidamente.";
|
||||
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Selecionar hora:\n" +
|
||||
"- Clique em qualquer uma das partes da hora para aumentar\n" +
|
||||
"- ou Shift-clique para diminuir\n" +
|
||||
"- ou clique e arraste para selecionar rapidamente.";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "Ano anterior (clique e segure para menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mês anterior (clique e segure para menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Ir para a data atual";
|
||||
Calendar._TT["NEXT_MONTH"] = "Próximo mês (clique e segure para menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Próximo ano (clique e segure para menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Selecione uma data";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Clique e segure para mover";
|
||||
Calendar._TT["PART_TODAY"] = " (hoje)";
|
||||
Calendar._TT["MON_FIRST"] = "Inicia na segunda-feira";
|
||||
Calendar._TT["SUN_FIRST"] = "Inicia no domingo";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Exibir %s primeiro";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Fechar";
|
||||
Calendar._TT["TODAY"] = "Hoje";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Clique ou arraste para mudar o valor";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "DD, dd de MM de y";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%d de %B de %Y";
|
||||
|
||||
Calendar._TT["WK"] = "sem";
|
||||
Calendar._TT["TIME"] = "Hora:";
|
||||
|
||||
|
@ -1,4 +1,15 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar CA language
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Diumenge",
|
||||
"Dilluns",
|
||||
@ -8,6 +19,31 @@ Calendar._DN = new Array
|
||||
"Divendres",
|
||||
"Dissabte",
|
||||
"Diumenge");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("Diu",
|
||||
"Dil",
|
||||
"Dmt",
|
||||
"Dmc",
|
||||
"Dij",
|
||||
"Div",
|
||||
"Dis",
|
||||
"Diu");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Gener",
|
||||
"Febrer",
|
||||
@ -22,24 +58,66 @@ Calendar._MN = new Array
|
||||
"Novembre",
|
||||
"Desembre");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("Gen",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Set",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Des");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "Canvia el primer dia de la setmana";
|
||||
Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per a menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mes anterior (mantenir per a menu)";
|
||||
Calendar._TT["INFO"] = "Sobre el calendari";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Selector de Data/Hora\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Sel.lecció de Dates:\n" +
|
||||
"- Fes servir els botons \xab, \xbb per sel.leccionar l'any\n" +
|
||||
"- Fes servir els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per se.lecciconar el mes\n" +
|
||||
"- Manté el ratolí apretat en qualsevol dels anteriors per sel.lecció ràpida.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Time selection:\n" +
|
||||
"- claca en qualsevol de les parts de la hora per augmentar-les\n" +
|
||||
"- o Shift-click per decrementar-la\n" +
|
||||
"- or click and arrastra per sel.lecció ràpida.";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "Any anterior (Mantenir per menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mes anterior (Mantenir per menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Anar a avui";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per a menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per a menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Seleccionar data";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per a moure";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mes següent (Mantenir per menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Any següent (Mantenir per menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Sel.leccionar data";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per moure";
|
||||
Calendar._TT["PART_TODAY"] = " (avui)";
|
||||
Calendar._TT["MON_FIRST"] = "Mostrar dilluns primer";
|
||||
Calendar._TT["SUN_FIRST"] = "Mostrar diumenge primer";
|
||||
Calendar._TT["CLOSE"] = "Tancar";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Mostra %s primer";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Tanca";
|
||||
Calendar._TT["TODAY"] = "Avui";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Click a arrastra per canviar el valor";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
|
||||
|
||||
Calendar._TT["WK"] = "sem";
|
||||
Calendar._TT["WK"] = "st";
|
||||
Calendar._TT["TIME"] = "Hora:";
|
||||
|
@ -3,16 +3,18 @@
|
||||
language: Czech
|
||||
encoding: windows-1250
|
||||
author: Lubos Jerabek (xnet@seznam.cz)
|
||||
Jan Uhlir (espinosa@centrum.cz)
|
||||
*/
|
||||
|
||||
// ** I18N
|
||||
Calendar._DN = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
|
||||
Calendar._DN3 = new Array('Ne','Po','Út','St','Èt','Pá','So','Ne');
|
||||
Calendar._MN = new Array('Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
|
||||
Calendar._MN3 = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
|
||||
Calendar._DN = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
|
||||
Calendar._SDN = new Array('Ne','Po','Út','St','Èt','Pá','So','Ne');
|
||||
Calendar._MN = new Array('Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
|
||||
Calendar._SMN = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["INFO"] = "O komponentì kalendáø";
|
||||
Calendar._TT["TOGGLE"] = "Zmìna prvního dne v týdnu";
|
||||
Calendar._TT["PREV_YEAR"] = "Pøedchozí rok (pøidrž pro menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Pøedchozí mìsíc (pøidrž pro menu)";
|
||||
@ -23,12 +25,41 @@ Calendar._TT["SEL_DATE"] = "Vyber datum";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Chy<68> a táhni, pro pøesun";
|
||||
Calendar._TT["PART_TODAY"] = " (dnes)";
|
||||
Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondìlí";
|
||||
Calendar._TT["SUN_FIRST"] = "Ukaž jako první Nedìli";
|
||||
//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Nedìli";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Výbìr datumu:\n" +
|
||||
"- Use the \xab, \xbb buttons to select year\n" +
|
||||
"- Použijte tlaèítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výbìru mìsíce\n" +
|
||||
"- Podržte tlaèítko myši na jakémkoliv z tìch tlaèítek pro rychlejší výbìr.";
|
||||
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Výbìr èasu:\n" +
|
||||
"- Kliknìte na jakoukoliv z èástí výbìru èasu pro zvýšení.\n" +
|
||||
"- nebo Shift-click pro snížení\n" +
|
||||
"- nebo kliknìte a táhnìte pro rychlejší výbìr.";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Zavøít";
|
||||
Calendar._TT["TODAY"] = "Dnes";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro zmìnu hodnoty";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "DD, 5.MM y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
|
||||
|
||||
Calendar._TT["WK"] = "wk";
|
||||
Calendar._TT["TIME"] = "Èas:";
|
||||
|
@ -1,26 +1,77 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar DA language
|
||||
// Author: Michael Thingmand Henriksen, <michael (a) thingmand dot dk>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Søndag",
|
||||
"Mandag",
|
||||
"Tirsdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lørdag",
|
||||
"Søndag");
|
||||
("Søndag",
|
||||
"Mandag",
|
||||
"Tirsdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lørdag",
|
||||
"Søndag");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("Søn",
|
||||
"Man",
|
||||
"Tir",
|
||||
"Ons",
|
||||
"Tor",
|
||||
"Fre",
|
||||
"Lør",
|
||||
"Søn");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("January",
|
||||
"Februar",
|
||||
"Marts",
|
||||
"April",
|
||||
"Maj",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December");
|
||||
("Januar",
|
||||
"Februar",
|
||||
"Marts",
|
||||
"April",
|
||||
"Maj",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
@ -28,36 +79,45 @@ Calendar._TT["INFO"] = "Om Kalenderen";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"For den seneste version besøg: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For den seneste version besøg: http://www.dynarch.com/projects/calendar/\n"; +
|
||||
"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." +
|
||||
"\n\n" +
|
||||
"Valg af dato:\n" +
|
||||
"- Brug \xab, \xbb knapperne for at vælge år\n" +
|
||||
"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" +
|
||||
"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg.";
|
||||
"- Brug \xab, \xbb knapperne for at vælge år\n" +
|
||||
"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" +
|
||||
"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Valg af tid:\n" +
|
||||
"- Klik på en vilkårlig del for større værdi\n" +
|
||||
"- eller Shift-klik for for mindre værdi\n" +
|
||||
"- eller klik og træk for hurtigere valg.";
|
||||
"- Klik på en vilkårlig del for større værdi\n" +
|
||||
"- eller Shift-klik for for mindre værdi\n" +
|
||||
"- eller klik og træk for hurtigere valg.";
|
||||
|
||||
Calendar._TT["TOGGLE"] = "Skift første ugedag";
|
||||
Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Gå til i dag";
|
||||
Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Vælg dag";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet";
|
||||
Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Gå til i dag";
|
||||
Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Vælg dag";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet";
|
||||
Calendar._TT["PART_TODAY"] = " (i dag)";
|
||||
Calendar._TT["MON_FIRST"] = "Vis mandag først";
|
||||
Calendar._TT["SUN_FIRST"] = "Vis søndag først";
|
||||
Calendar._TT["CLOSE"] = "Luk vinduet";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Vis %s først";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Luk";
|
||||
Calendar._TT["TODAY"] = "I dag";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)klik eller træk for at ændre værdi";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%d. %b, %Y";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
|
||||
|
||||
Calendar._TT["WK"] = "wk";
|
||||
Calendar._TT["WK"] = "Uge";
|
||||
Calendar._TT["TIME"] = "Tid:";
|
||||
|
@ -1,18 +1,13 @@
|
||||
// Author: Hartwig Weinkauf h_weinkauf@gmx.de
|
||||
// <20>erarbeitet und fehlende Texte hinzugefgt von Gerhard Neinert (gerhard at neinert punkt de)
|
||||
// Feel free to use / redistribute under the GNU LGPL.
|
||||
// ** I18N
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("So",
|
||||
"Mo",
|
||||
"Di",
|
||||
"Mi",
|
||||
"Do",
|
||||
"Fr",
|
||||
"Sa",
|
||||
"So");
|
||||
// Calendar DE language
|
||||
// Author: Jack (tR), <jack@jtr.de>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
@ -25,8 +20,28 @@ Calendar._DN = new Array
|
||||
"Samstag",
|
||||
"Sonntag");
|
||||
|
||||
// short day names only use 2 letters instead of 3
|
||||
Calendar._SDN_len = 2;
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("So",
|
||||
"Mo",
|
||||
"Di",
|
||||
"Mi",
|
||||
"Do",
|
||||
"Fr",
|
||||
"Sa",
|
||||
"So");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
@ -49,7 +64,7 @@ Calendar._SMN = new Array
|
||||
"Feb",
|
||||
"M\u00e4r",
|
||||
"Apr",
|
||||
"Mai",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
@ -60,41 +75,50 @@ Calendar._SMN = new Array
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["INFO"] = "\u00DCber dieses Kalendarmodul";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Datum/Zeit Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Donwload neueste Version: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Datumsauswahl:\n" +
|
||||
"- Jahr ausw\u00e4hlen mit \xab und \xbb\n" +
|
||||
"- Monat ausw\u00e4hlen mit " + String.fromCharCode(0x2039) + " und " + String.fromCharCode(0x203a) + "\n" +
|
||||
"- Fr Auswahl aus Liste Maustaste gedr\u00fcckt halten.";
|
||||
|
||||
"Datum ausw\u00e4hlen:\n" +
|
||||
"- Benutzen Sie die \xab, \xbb Buttons um das Jahr zu w\u00e4hlen\n" +
|
||||
"- Benutzen Sie die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um den Monat zu w\u00e4hlen\n" +
|
||||
"- F\u00fcr eine Schnellauswahl halten Sie die Maustaste \u00fcber diesen Buttons fest.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Zeit w\u00e4hlen:\n" +
|
||||
"- Stunde/Minute weiter mit Mausklick\n" +
|
||||
"- Stunde/Minute zurck mit Shift-Mausklick\n" +
|
||||
"- oder f\u00fcr schnellere Auswahl nach links oder rechts ziehen.";
|
||||
|
||||
"Zeit ausw\u00e4hlen:\n" +
|
||||
"- Klicken Sie auf die Teile der Uhrzeit, um diese zu erh\u00F6hen\n" +
|
||||
"- oder klicken Sie mit festgehaltener Shift-Taste um diese zu verringern\n" +
|
||||
"- oder klicken und festhalten f\u00fcr Schnellauswahl.";
|
||||
|
||||
Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen";
|
||||
Calendar._TT["PREV_YEAR"] = "Jahr zur\u00fcck (halten -> Auswahlmen\u00fc)";
|
||||
Calendar._TT["PREV_MONTH"] = "Monat zur\u00fcck (halten -> Auswahlmen\u00fc)";
|
||||
Calendar._TT["GO_TODAY"] = "Gehe zum heutigen Datum";
|
||||
Calendar._TT["NEXT_MONTH"] = "Monat vor (halten -> Auswahlmen\u00fc)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Jahr vor (halten -> Auswahlmen\u00fc)";
|
||||
Calendar._TT["PREV_YEAR"] = "Voriges Jahr (Festhalten f\u00fcr Schnellauswahl)";
|
||||
Calendar._TT["PREV_MONTH"] = "Voriger Monat (Festhalten f\u00fcr Schnellauswahl)";
|
||||
Calendar._TT["GO_TODAY"] = "Heute ausw\u00e4hlen";
|
||||
Calendar._TT["NEXT_MONTH"] = "N\u00e4chst. Monat (Festhalten f\u00fcr Schnellauswahl)";
|
||||
Calendar._TT["NEXT_YEAR"] = "N\u00e4chst. Jahr (Festhalten f\u00fcr Schnellauswahl)";
|
||||
Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Klicken und halten um zu verschieben";
|
||||
Calendar._TT["PART_TODAY"] = " (heute)";
|
||||
Calendar._TT["MON_FIRST"] = "Wochenanzeige mit Montag beginnen";
|
||||
Calendar._TT["SUN_FIRST"] = "Wochenanzeige mit Sonntag beginnen";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Zum Bewegen festhalten";
|
||||
Calendar._TT["PART_TODAY"] = " (Heute)";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Woche beginnt mit %s ";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Schlie\u00dfen";
|
||||
Calendar._TT["TODAY"] = "Heute";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Klick oder Festhalten und Ziehen um den Wert zu \u00e4ndern";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "Datum ausw\u00e4hlen";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
|
||||
|
||||
Calendar._TT["WK"] = "KW";
|
||||
Calendar._TT["WK"] = "wk";
|
||||
Calendar._TT["TIME"] = "Zeit:";
|
||||
|
@ -53,8 +53,8 @@ Calendar._TT["INFO"] = "Για το ημερολόγιο";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"Επιλογέας ημερομηνίας/ώρας σε DHTML\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Για τελευταία έκδοση: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Για τελευταία έκδοση: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Επιλογή ημερομηνίας:\n" +
|
||||
|
@ -1,7 +1,7 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar EN language
|
||||
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
@ -43,6 +43,10 @@ Calendar._SDN = new Array
|
||||
"Sat",
|
||||
"Sun");
|
||||
|
||||
// First day of the week. "0" means display Sunday first, "1" means display
|
||||
// Monday first, etc.
|
||||
Calendar._FD = 0;
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("January",
|
||||
@ -79,8 +83,8 @@ Calendar._TT["INFO"] = "About the calendar";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Date selection:\n" +
|
||||
|
@ -1,8 +1,10 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar EN language
|
||||
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
// Encoding: any
|
||||
// Calendar ES (spanish) language
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Updater: Servilio Afre Puentes <servilios@yahoo.com>
|
||||
// Updated: 2004-06-03
|
||||
// Encoding: utf-8
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
@ -14,10 +16,10 @@ Calendar._DN = new Array
|
||||
("Domingo",
|
||||
"Lunes",
|
||||
"Martes",
|
||||
"Miircoles",
|
||||
"Miércoles",
|
||||
"Jueves",
|
||||
"Viernes",
|
||||
"Sabado",
|
||||
"Sábado",
|
||||
"Domingo");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
@ -37,12 +39,16 @@ Calendar._SDN = new Array
|
||||
("Dom",
|
||||
"Lun",
|
||||
"Mar",
|
||||
"Mii",
|
||||
"Mié",
|
||||
"Jue",
|
||||
"Vie",
|
||||
"Sab",
|
||||
"Sáb",
|
||||
"Dom");
|
||||
|
||||
// First day of the week. "0" means display Sunday first, "1" means display
|
||||
// Monday first, etc.
|
||||
Calendar._FD = 1;
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Enero",
|
||||
@ -79,36 +85,45 @@ Calendar._TT["INFO"] = "Acerca del calendario";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"Selector DHTML de Fecha/Hora\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Para conseguir la zltima versisn visite: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para mas detalles." +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Para conseguir la última versión visite: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para más detalles." +
|
||||
"\n\n" +
|
||||
"Seleccisn de fecha:\n" +
|
||||
"- Use los botones \xab, \xbb para seleccionar el aqo\n" +
|
||||
"Selección de fecha:\n" +
|
||||
"- Use los botones \xab, \xbb para seleccionar el año\n" +
|
||||
"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
|
||||
"- Mantenga pulsado el ratsn en cualquiera de estos botones para una seleccisn rapida.";
|
||||
"- Mantenga pulsado el ratón en cualquiera de estos botones para una selección rápida.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Seleccisn de hora:\n" +
|
||||
"Selección de hora:\n" +
|
||||
"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
|
||||
"- s pulse las mayzsculas mientras hace clic para decrementarla\n" +
|
||||
"- s haga clic y arrastre el ratsn para una seleccisn mas rapida.";
|
||||
"- o pulse las mayúsculas mientras hace clic para decrementarla\n" +
|
||||
"- o haga clic y arrastre el ratón para una selección más rápida.";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "Aqo anterior (mantener para menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menu)";
|
||||
Calendar._TT["PREV_YEAR"] = "Año anterior (mantener para menú)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menú)";
|
||||
Calendar._TT["GO_TODAY"] = "Ir a hoy";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Aqo siguiente (mantener para menu)";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menú)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Año siguiente (mantener para menú)";
|
||||
Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
|
||||
Calendar._TT["PART_TODAY"] = " (hoy)";
|
||||
Calendar._TT["MON_FIRST"] = "Mostrar lunes primero";
|
||||
Calendar._TT["SUN_FIRST"] = "Mostrar domingo primero";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Hacer %s primer día de la semana";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Cerrar";
|
||||
Calendar._TT["TODAY"] = "Hoy";
|
||||
Calendar._TT["TIME_PART"] = "(Mayzscula-)Clic o arrastre para cambiar valor";
|
||||
Calendar._TT["TIME_PART"] = "(Mayúscula-)Clic o arrastre para cambiar valor";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
|
||||
|
||||
Calendar._TT["WK"] = "sem";
|
||||
Calendar._TT["TIME"] = "Hora:";
|
||||
|
@ -63,8 +63,8 @@ Calendar._TT["INFO"] = "Tietoja kalenterista";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Uusin versio osoitteessa: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Uusin versio osoitteessa: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Julkaistu GNU LGPL lisenssin alaisuudessa. Lisätietoja osoitteessa http://gnu.org/licenses/lgpl.html" +
|
||||
"\n\n" +
|
||||
"Päivämäärä valinta:\n" +
|
||||
|
@ -1,4 +1,17 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar EN language
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// Translator: David Duret, <pilgrim@mala-template.net> from previous french version
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Dimanche",
|
||||
"Lundi",
|
||||
@ -8,6 +21,31 @@ Calendar._DN = new Array
|
||||
"Vendredi",
|
||||
"Samedi",
|
||||
"Dimanche");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("Dim",
|
||||
"Lun",
|
||||
"Mar",
|
||||
"Mar",
|
||||
"Jeu",
|
||||
"Ven",
|
||||
"Sam",
|
||||
"Dim");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Janvier",
|
||||
"Février",
|
||||
@ -21,15 +59,8 @@ Calendar._MN = new Array
|
||||
"Octobre",
|
||||
"Novembre",
|
||||
"Décembre");
|
||||
Calendar._SDN = new Array
|
||||
("Lun",
|
||||
"Mar",
|
||||
"Mer",
|
||||
"Jeu",
|
||||
"Thu",
|
||||
"Ven",
|
||||
"Sam",
|
||||
"Dim");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("Jan",
|
||||
"Fev",
|
||||
@ -46,41 +77,49 @@ Calendar._SMN = new Array
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
|
||||
Calendar._TT["INFO"] = "A propos du calendrier";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Heure Selecteur\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Pour la derniere version visitez: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Pour la derniere version visitez : http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribué par GNU LGPL. Voir http://gnu.org/licenses/lgpl.html pour les details." +
|
||||
"\n\n" +
|
||||
"Selection de la date :\n" +
|
||||
"- Utiliser les bouttons \xab, \xbb pour selectionner l\'annee\n" +
|
||||
"- Utiliser les bouttons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pour selectionner les mois\n" +
|
||||
"- Garder la souris sur n'importe quels boutons pour un selection plus rapide";
|
||||
"- Garder la souris sur n'importe quels boutons pour une selection plus rapide";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Selection de l\'heure:\n" +
|
||||
"Selection de l\'heure :\n" +
|
||||
"- Cliquer sur heures ou minutes pour incrementer\n" +
|
||||
"- ou Maj-clic pour decrementer\n" +
|
||||
"- ou clic et glisser deplacer pour un selection plus rapide";
|
||||
"- ou clic et glisser-deplacer pour une selection plus rapide";
|
||||
|
||||
Calendar._TT["TOGGLE"] = "Changer le premier jour de la semaine";
|
||||
Calendar._TT["PREV_YEAR"] = "Année préc. (maintenir pour menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mois préc. (maintenir pour menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Atteindre date du jour";
|
||||
Calendar._TT["GO_TODAY"] = "Atteindre la date du jour";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mois suiv. (maintenir pour menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Année suiv. (maintenir pour menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Choisir une date";
|
||||
Calendar._TT["SEL_DATE"] = "Sélectionner une date";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Déplacer";
|
||||
Calendar._TT["PART_TODAY"] = " (Aujourd'hui)";
|
||||
Calendar._TT["MON_FIRST"] = "Commencer par lundi";
|
||||
Calendar._TT["SUN_FIRST"] = "Commencer par dimanche";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Afficher %s en premier";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Fermer";
|
||||
Calendar._TT["TODAY"] = "Aujourd'hui";
|
||||
Calendar._TT["TIME_PART"] = "(Maj-)Clic ou glisser pour modifier la valeur";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = " %A %e %B %Y";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
|
||||
|
||||
Calendar._TT["WK"] = "sem";
|
||||
Calendar._TT["WK"] = "Sem.";
|
||||
Calendar._TT["TIME"] = "Heure :";
|
||||
|
@ -1,4 +1,16 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar HU language
|
||||
// Author: ???
|
||||
// Modifier: KARASZI Istvan, <jscalendar@spam.raszi.hu>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Vasárnap",
|
||||
"Hétfõ",
|
||||
@ -8,6 +20,31 @@ Calendar._DN = new Array
|
||||
"Péntek",
|
||||
"Szombat",
|
||||
"Vasárnap");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("v",
|
||||
"h",
|
||||
"k",
|
||||
"sze",
|
||||
"cs",
|
||||
"p",
|
||||
"szo",
|
||||
"v");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("január",
|
||||
"február",
|
||||
@ -22,9 +59,41 @@ Calendar._MN = new Array
|
||||
"november",
|
||||
"december");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("jan",
|
||||
"feb",
|
||||
"már",
|
||||
"ápr",
|
||||
"máj",
|
||||
"jún",
|
||||
"júl",
|
||||
"aug",
|
||||
"sze",
|
||||
"okt",
|
||||
"nov",
|
||||
"dec");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "A hét elsõ napjának beállítása";
|
||||
Calendar._TT["INFO"] = "A kalendáriumról";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML dátum/idõ kiválasztó\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"a legfrissebb verzió megtalálható: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"GNU LGPL alatt terjesztve. Lásd a http://gnu.org/licenses/lgpl.html oldalt a részletekhez." +
|
||||
"\n\n" +
|
||||
"Dátum választás:\n" +
|
||||
"- használja a \xab, \xbb gombokat az év kiválasztásához\n" +
|
||||
"- használja a " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gombokat a hónap kiválasztásához\n" +
|
||||
"- tartsa lenyomva az egérgombot a gyors választáshoz.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Idõ választás:\n" +
|
||||
"- kattintva növelheti az idõt\n" +
|
||||
"- shift-tel kattintva csökkentheti\n" +
|
||||
"- lenyomva tartva és húzva gyorsabban kiválaszthatja.";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "Elõzõ év (tartsa nyomva a menühöz)";
|
||||
Calendar._TT["PREV_MONTH"] = "Elõzõ hónap (tartsa nyomva a menühöz)";
|
||||
Calendar._TT["GO_TODAY"] = "Mai napra ugrás";
|
||||
@ -33,13 +102,23 @@ Calendar._TT["NEXT_YEAR"] = "K
|
||||
Calendar._TT["SEL_DATE"] = "Válasszon dátumot";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Húzza a mozgatáshoz";
|
||||
Calendar._TT["PART_TODAY"] = " (ma)";
|
||||
Calendar._TT["MON_FIRST"] = "Hétfõ legyen a hét elsõ napja";
|
||||
Calendar._TT["SUN_FIRST"] = "Vasárnap legyen a hét elsõ napja";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "%s legyen a hét elsõ napja";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Bezár";
|
||||
Calendar._TT["TODAY"] = "Ma";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Klikk vagy húzás az érték változtatásához";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "M d, D";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%b %e, %a";
|
||||
|
||||
Calendar._TT["WK"] = "hét";
|
||||
Calendar._TT["TIME"] = "idõ:";
|
||||
|
@ -1,13 +1,50 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar EN language
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Translator: Fabio Di Bernardini, <altraqua@email.it>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Domenica",
|
||||
"Lunedì",
|
||||
"Martedì",
|
||||
"Mercoledì",
|
||||
"Giovedì",
|
||||
"Venerdì",
|
||||
"Lunedì",
|
||||
"Martedì",
|
||||
"Mercoledì",
|
||||
"Giovedì",
|
||||
"Venerdì",
|
||||
"Sabato",
|
||||
"Domenica");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("Dom",
|
||||
"Lun",
|
||||
"Mar",
|
||||
"Mer",
|
||||
"Gio",
|
||||
"Ven",
|
||||
"Sab",
|
||||
"Dom");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Gennaio",
|
||||
"Febbraio",
|
||||
@ -16,7 +53,7 @@ Calendar._MN = new Array
|
||||
"Maggio",
|
||||
"Giugno",
|
||||
"Luglio",
|
||||
"Agosto",
|
||||
"Augosto",
|
||||
"Settembre",
|
||||
"Ottobre",
|
||||
"Novembre",
|
||||
@ -39,41 +76,49 @@ Calendar._SMN = new Array
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["INFO"] = "a proposito del calendario";
|
||||
Calendar._TT["INFO"] = "Informazioni sul calendario";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Per le ultime versioni vai a: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"Distribuito su licenza GNU LGPL. Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Per gli aggiornamenti: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuito sotto licenza GNU LGPL. Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
|
||||
"\n\n" +
|
||||
"selezione della data:\n" +
|
||||
"- Usa i bottoni \xab, \xbb per selezionare l'anno\n" +
|
||||
"- Usa i bottoni " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per selezionare il mese\n" +
|
||||
"- Utilizza il mouse per una selezione rapida.";
|
||||
"Selezione data:\n" +
|
||||
"- Usa \xab, \xbb per selezionare l'anno\n" +
|
||||
"- Usa " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per i mesi\n" +
|
||||
"- Tieni premuto a lungo il mouse per accedere alle funzioni di selezione veloce.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"selezione dell'ora:\n" +
|
||||
"- Clicca sull'ora visualizzata per aumentarla\n" +
|
||||
"- o Shift-click per diminuirla\n" +
|
||||
"- o click a trascina per la selezione rapida.";
|
||||
"Selezione orario:\n" +
|
||||
"- Clicca sul numero per incrementarlo\n" +
|
||||
"- o Shift+click per decrementarlo\n" +
|
||||
"- o click e sinistra o destra per variarlo.";
|
||||
|
||||
|
||||
Calendar._TT["TOGGLE"] = "Modifica il primo giorno della settimana";
|
||||
Calendar._TT["PREV_YEAR"] = "Anno prec. (tieni premuto per menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mese prec. (tieni premuto per menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Vai a oggi";
|
||||
Calendar._TT["NEXT_MONTH"] = "Mese succ. (tieni premuto per menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Anno succ. (tieni premuto per menu)";
|
||||
Calendar._TT["PREV_YEAR"] = "Anno prec.(clicca a lungo per il menù)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mese prec. (clicca a lungo per il menù)";
|
||||
Calendar._TT["GO_TODAY"] = "Oggi";
|
||||
Calendar._TT["NEXT_MONTH"] = "Pross. mese (clicca a lungo per il menù)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Pross. anno (clicca a lungo per il menù)";
|
||||
Calendar._TT["SEL_DATE"] = "Seleziona data";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostare";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostarlo";
|
||||
Calendar._TT["PART_TODAY"] = " (oggi)";
|
||||
Calendar._TT["MON_FIRST"] = "Parti da lunedì";
|
||||
Calendar._TT["SUN_FIRST"] = "Parti da domenica";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Mostra prima %s";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Chiudi";
|
||||
Calendar._TT["TODAY"] = "Oggi";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Click o trascina per cambiare il valore";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b ";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a:%b:%e";
|
||||
|
||||
Calendar._TT["WK"] = "Setti";
|
||||
Calendar._TT["WK"] = "set";
|
||||
Calendar._TT["TIME"] = "Ora:";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar EN language
|
||||
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Translation: Yourim Yi <yyi@yourim.net>
|
||||
// Encoding: EUC-KR
|
||||
// lang : ko
|
||||
@ -82,9 +82,9 @@ Calendar._TT["INFO"] = "calendar 에 대해서";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"\n"+
|
||||
"최신 버전을 받으시려면 http://dynarch.com/mishoo/calendar.epl 에 방문하세요\n" +
|
||||
"최신 버전을 받으시려면 http://www.dynarch.com/projects/calendar/ 에 방문하세요\n" +
|
||||
"\n"+
|
||||
"GNU LGPL 라이센스로 배포됩니다. \n"+
|
||||
"라이센스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." +
|
||||
|
@ -1,7 +1,7 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar EN language
|
||||
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Translation: Yourim Yi <yyi@yourim.net>
|
||||
// Encoding: EUC-KR
|
||||
// lang : ko
|
||||
@ -82,9 +82,9 @@ Calendar._TT["INFO"] = "calendar
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"\n"+
|
||||
"최신 버전을 받으시려면 http://dynarch.com/mishoo/calendar.epl 에 방문하세요\n" +
|
||||
"최신 버전을 받으시려면 http://www.dynarch.com/projects/calendar/ 에 방문하세요\n" +
|
||||
"\n"+
|
||||
"GNU LGPL 라이센스로 배포됩니다. \n"+
|
||||
"라이센스에 대한 자세한 내용은 http://gnu.org/licenses/lgpl.html 을 읽으세요." +
|
||||
|
@ -79,8 +79,8 @@ Calendar._TT["INFO"] = "Apie kalendorių";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Naujausią versiją rasite: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Naujausią versiją rasite: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Platinamas pagal GNU LGPL licenciją. Aplankykite http://gnu.org/licenses/lgpl.html" +
|
||||
"\n\n" +
|
||||
"Datos pasirinkimas:\n" +
|
||||
|
@ -79,8 +79,8 @@ Calendar._TT["INFO"] = "Apie kalendori
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Naujausià versijà rasite: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Naujausià versijà rasite: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Platinamas pagal GNU LGPL licencijà. Aplankykite http://gnu.org/licenses/lgpl.html" +
|
||||
"\n\n" +
|
||||
"Datos pasirinkimas:\n" +
|
||||
|
@ -8,6 +8,9 @@ Calendar._DN = new Array
|
||||
"Vrijdag",
|
||||
"Zaterdag",
|
||||
"Zondag");
|
||||
|
||||
Calendar._SDN_len = 2;
|
||||
|
||||
Calendar._MN = new Array
|
||||
("Januari",
|
||||
"Februari",
|
||||
@ -24,7 +27,25 @@ Calendar._MN = new Array
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "Selecteer de eerste week-dag";
|
||||
Calendar._TT["INFO"] = "Info";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Datum/Tijd Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
|
||||
"Ga voor de meest recente versie naar: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Verspreid onder de GNU LGPL. Zie http://gnu.org/licenses/lgpl.html voor details." +
|
||||
"\n\n" +
|
||||
"Datum selectie:\n" +
|
||||
"- Gebruik de \xab \xbb knoppen om een jaar te selecteren\n" +
|
||||
"- Gebruik de " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knoppen om een maand te selecteren\n" +
|
||||
"- Houd de muis ingedrukt op de genoemde knoppen voor een snellere selectie.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Tijd selectie:\n" +
|
||||
"- Klik op een willekeurig onderdeel van het tijd gedeelte om het te verhogen\n" +
|
||||
"- of Shift-klik om het te verlagen\n" +
|
||||
"- of klik en sleep voor een snellere selectie.";
|
||||
|
||||
//Calendar._TT["TOGGLE"] = "Selecteer de eerste week-dag";
|
||||
Calendar._TT["PREV_YEAR"] = "Vorig jaar (ingedrukt voor menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Vorige maand (ingedrukt voor menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Ga naar Vandaag";
|
||||
@ -33,13 +54,20 @@ Calendar._TT["NEXT_YEAR"] = "Volgend jaar (ingedrukt voor menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Selecteer datum";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Klik en sleep om te verplaatsen";
|
||||
Calendar._TT["PART_TODAY"] = " (vandaag)";
|
||||
Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
|
||||
Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
|
||||
//Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
|
||||
//Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
|
||||
|
||||
Calendar._TT["DAY_FIRST"] = "Toon %s eerst";
|
||||
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Sluiten";
|
||||
Calendar._TT["TODAY"] = "Vandaag";
|
||||
Calendar._TT["TODAY"] = "(vandaag)";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Klik of sleep om de waarde te veranderen";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "DD, d MM";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b %Y";
|
||||
|
||||
Calendar._TT["WK"] = "wk";
|
||||
Calendar._TT["TIME"] = "Tijd:";
|
@ -1,13 +1,49 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar NO language
|
||||
// Author: Daniel Holmen, <daniel.holmen@ciber.no>
|
||||
// Encoding: UTF-8
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Søndag",
|
||||
("Søndag",
|
||||
"Mandag",
|
||||
"Tirsdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lørdag",
|
||||
"Søndag");
|
||||
"Lørdag",
|
||||
"Søndag");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("Søn",
|
||||
"Man",
|
||||
"Tir",
|
||||
"Ons",
|
||||
"Tor",
|
||||
"Fre",
|
||||
"Lør",
|
||||
"Søn");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Januar",
|
||||
"Februar",
|
||||
@ -22,24 +58,57 @@ Calendar._MN = new Array
|
||||
"November",
|
||||
"Desember");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Des");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "Skift første ukedag";
|
||||
Calendar._TT["PREV_YEAR"] = "Et år tilbake (hold for meny)";
|
||||
Calendar._TT["PREV_MONTH"] = "En måned tilbake (hold for meny)";
|
||||
Calendar._TT["GO_TODAY"] = "Gå til i dag";
|
||||
Calendar._TT["NEXT_MONTH"] = "En måned fram (hold for meny)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Et år fram (hold for meny)";
|
||||
Calendar._TT["SEL_DATE"] = "Velg dag";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Dra vinduet";
|
||||
Calendar._TT["PART_TODAY"] = " (i dag)";
|
||||
Calendar._TT["MON_FIRST"] = "Vis mandag først";
|
||||
Calendar._TT["SUN_FIRST"] = "Vis søndag først";
|
||||
Calendar._TT["CLOSE"] = "Lukk vinduet";
|
||||
Calendar._TT["TODAY"] = "I dag";
|
||||
Calendar._TT["INFO"] = "Om kalenderen";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Dato-/Tidsvelger\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For nyeste versjon, gå til: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuert under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detaljer." +
|
||||
"\n\n" +
|
||||
"Datovalg:\n" +
|
||||
"- Bruk knappene \xab og \xbb for å velge år\n" +
|
||||
"- Bruk knappene " + String.fromCharCode(0x2039) + " og " + String.fromCharCode(0x203a) + " for å velge måned\n" +
|
||||
"- Hold inne musknappen eller knappene over for raskere valg.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Tidsvalg:\n" +
|
||||
"- Klikk på en av tidsdelene for å øke den\n" +
|
||||
"- eller Shift-klikk for å senke verdien\n" +
|
||||
"- eller klikk-og-dra for raskere valg..";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "Forrige. år (hold for meny)";
|
||||
Calendar._TT["PREV_MONTH"] = "Forrige. måned (hold for meny)";
|
||||
Calendar._TT["GO_TODAY"] = "Gå til idag";
|
||||
Calendar._TT["NEXT_MONTH"] = "Neste måned (hold for meny)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Neste år (hold for meny)";
|
||||
Calendar._TT["SEL_DATE"] = "Velg dato";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Dra for å flytte";
|
||||
Calendar._TT["PART_TODAY"] = " (idag)";
|
||||
Calendar._TT["MON_FIRST"] = "Vis mandag først";
|
||||
Calendar._TT["SUN_FIRST"] = "Vis søndag først";
|
||||
Calendar._TT["CLOSE"] = "Lukk";
|
||||
Calendar._TT["TODAY"] = "Idag";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Klikk eller dra for å endre verdi";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "D d. M, y";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
|
||||
|
||||
Calendar._TT["WK"] = "wk";
|
||||
Calendar._TT["WK"] = "uke";
|
@ -57,8 +57,8 @@ Calendar._TT["INFO"] = "O kalendarzu";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Aby pobrać najnowszą wersję, odwiedź: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Aby pobrać najnowszą wersję, odwiedź: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Dostępny na licencji GNU LGPL. Zobacz szczegóły na http://gnu.org/licenses/lgpl.html." +
|
||||
"\n\n" +
|
||||
"Wybór daty:\n" +
|
||||
|
@ -21,8 +21,8 @@ Calendar._TT["INFO"] = "O kalendarzu";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Wybór daty:\n" +
|
||||
|
@ -1,17 +1,53 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar pt_BR language
|
||||
// Author: Adalberto Machado, <betosm@terra.com.br>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Domingo",
|
||||
"Segunda",
|
||||
"Terça",
|
||||
"Terca",
|
||||
"Quarta",
|
||||
"Quinta",
|
||||
"Sexta",
|
||||
"Sábado",
|
||||
"Sabado",
|
||||
"Domingo");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("Dom",
|
||||
"Seg",
|
||||
"Ter",
|
||||
"Qua",
|
||||
"Qui",
|
||||
"Sex",
|
||||
"Sab",
|
||||
"Dom");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Janeiro",
|
||||
"Fevereiro",
|
||||
"Março",
|
||||
"Marco",
|
||||
"Abril",
|
||||
"Maio",
|
||||
"Junho",
|
||||
@ -22,24 +58,66 @@ Calendar._MN = new Array
|
||||
"Novembro",
|
||||
"Dezembro");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("Jan",
|
||||
"Fev",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Set",
|
||||
"Out",
|
||||
"Nov",
|
||||
"Dez");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "Trocar o primeiro dia da semana";
|
||||
Calendar._TT["PREV_YEAR"] = "Ano Anterior (mantenha para menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mês Anterior (mantenha para menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Ir para hoje";
|
||||
Calendar._TT["NEXT_MONTH"] = "Próximo Mês (mantenha para menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Próximo Ano (mantenha para menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Escolha Data";
|
||||
Calendar._TT["INFO"] = "Sobre o calendario";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Ultima versao visite: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuido sobre GNU LGPL. Veja http://gnu.org/licenses/lgpl.html para detalhes." +
|
||||
"\n\n" +
|
||||
"Selecao de data:\n" +
|
||||
"- Use os botoes \xab, \xbb para selecionar o ano\n" +
|
||||
"- Use os botoes " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mes\n" +
|
||||
"- Segure o botao do mouse em qualquer um desses botoes para selecao rapida.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Selecao de hora:\n" +
|
||||
"- Clique em qualquer parte da hora para incrementar\n" +
|
||||
"- ou Shift-click para decrementar\n" +
|
||||
"- ou clique e segure para selecao rapida.";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "Ant. ano (segure para menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Ant. mes (segure para menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Hoje";
|
||||
Calendar._TT["NEXT_MONTH"] = "Prox. mes (segure para menu)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Prox. ano (segure para menu)";
|
||||
Calendar._TT["SEL_DATE"] = "Selecione a data";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover";
|
||||
Calendar._TT["PART_TODAY"] = " (hoje)";
|
||||
Calendar._TT["MON_FIRST"] = "Mostrar Segunda primeiro";
|
||||
Calendar._TT["SUN_FIRST"] = "Mostrar Domingo primeiro";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Mostre %s primeiro";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Fechar";
|
||||
Calendar._TT["TODAY"] = "Hoje";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Click ou arraste para mudar valor";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "a-mm-dd";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b";
|
||||
|
||||
Calendar._TT["WK"] = "sm";
|
||||
Calendar._TT["TIME"] = "Hora:";
|
||||
|
@ -30,8 +30,8 @@ Calendar._TT["INFO"] = "Despre calendar";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Pentru ultima versiune vizitaţi: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Pentru ultima versiune vizitaţi: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuit sub GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Selecţia datei:\n" +
|
||||
|
@ -1,45 +1,123 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar RU language
|
||||
// Translation: Sly Golovanov, http://golovanov.net, <sly@golovanov.net>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Âîñêðåñåíüå",
|
||||
"Ïîíåäåëüíèê",
|
||||
"Âòîðíèê",
|
||||
"Ñðåäà",
|
||||
"×åòâåðã",
|
||||
"Ïÿòíèöà",
|
||||
"Ñóááîòà",
|
||||
"Âîñêðåñåíüå");
|
||||
("воскресенье",
|
||||
"понедельник",
|
||||
"вторник",
|
||||
"среда",
|
||||
"четверг",
|
||||
"пятница",
|
||||
"суббота",
|
||||
"воскресенье");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("вск",
|
||||
"пон",
|
||||
"втр",
|
||||
"срд",
|
||||
"чет",
|
||||
"пят",
|
||||
"суб",
|
||||
"вск");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("ßíâàðü",
|
||||
"Ôåâðàëü",
|
||||
"Ìàðò",
|
||||
"Àïðåëü",
|
||||
"Ìàé",
|
||||
"Èþíü",
|
||||
"Èþëü",
|
||||
"Àâãóñò",
|
||||
"Ñåíòÿáðü",
|
||||
"Îêòÿáðü",
|
||||
"Íîÿáðü",
|
||||
"Äåêàáðü");
|
||||
("январь",
|
||||
"февраль",
|
||||
"март",
|
||||
"апрель",
|
||||
"май",
|
||||
"июнь",
|
||||
"июль",
|
||||
"август",
|
||||
"сентябрь",
|
||||
"октябрь",
|
||||
"ноябрь",
|
||||
"декабрь");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("янв",
|
||||
"фев",
|
||||
"мар",
|
||||
"апр",
|
||||
"май",
|
||||
"июн",
|
||||
"июл",
|
||||
"авг",
|
||||
"сен",
|
||||
"окт",
|
||||
"ноя",
|
||||
"дек");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "Ñìåíèòü äåíü íà÷àëà íåäåëè (ÏÍ/ÂÑ)";
|
||||
Calendar._TT["PREV_YEAR"] = "Ïðåä. ãîä (óäåðæèâàòü äëÿ ìåíþ)";
|
||||
Calendar._TT["PREV_MONTH"] = "Ïðåä. ìåñÿö (óäåðæèâàòü äëÿ ìåíþ)";
|
||||
Calendar._TT["GO_TODAY"] = "Íà ñåãîäíÿ";
|
||||
Calendar._TT["NEXT_MONTH"] = "Ñëåä. ìåñÿö (óäåðæèâàòü äëÿ ìåíþ)";
|
||||
Calendar._TT["NEXT_YEAR"] = "Ñëåä. ãîä (óäåðæèâàòü äëÿ ìåíþ)";
|
||||
Calendar._TT["SEL_DATE"] = "Âûáðàòü äàòó";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Ïåðåòàùèòü";
|
||||
Calendar._TT["PART_TODAY"] = " (ñåãîäíÿ)";
|
||||
Calendar._TT["MON_FIRST"] = "Ïîêàçàòü ïîíåäåëüíèê ïåðâûì";
|
||||
Calendar._TT["SUN_FIRST"] = "Ïîêàçàòü âîñêðåñåíüå ïåðâûì";
|
||||
Calendar._TT["CLOSE"] = "Çàêðûòü";
|
||||
Calendar._TT["TODAY"] = "Ñåãîäíÿ";
|
||||
Calendar._TT["INFO"] = "О календаре...";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"Как выбрать дату:\n" +
|
||||
"- При помощи кнопок \xab, \xbb можно выбрать год\n" +
|
||||
"- При помощи кнопок " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " можно выбрать месяц\n" +
|
||||
"- Подержите эти кнопки нажатыми, чтобы появилось меню быстрого выбора.";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"Как выбрать время:\n" +
|
||||
"- При клике на часах или минутах они увеличиваются\n" +
|
||||
"- при клике с нажатой клавишей Shift они уменьшаются\n" +
|
||||
"- если нажать и двигать мышкой влево/вправо, они будут меняться быстрее.";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "На год назад (удерживать для меню)";
|
||||
Calendar._TT["PREV_MONTH"] = "На месяц назад (удерживать для меню)";
|
||||
Calendar._TT["GO_TODAY"] = "Сегодня";
|
||||
Calendar._TT["NEXT_MONTH"] = "На месяц вперед (удерживать для меню)";
|
||||
Calendar._TT["NEXT_YEAR"] = "На год вперед (удерживать для меню)";
|
||||
Calendar._TT["SEL_DATE"] = "Выберите дату";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Перетаскивайте мышкой";
|
||||
Calendar._TT["PART_TODAY"] = " (сегодня)";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Первый день недели будет %s";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Закрыть";
|
||||
Calendar._TT["TODAY"] = "Сегодня";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)клик или нажать и двигать";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%e %b, %a";
|
||||
|
||||
Calendar._TT["WK"] = "íåä";
|
||||
Calendar._TT["WK"] = "нед";
|
||||
Calendar._TT["TIME"] = "Время:";
|
||||
|
@ -59,8 +59,8 @@ Calendar._TT["INFO"] = "O koledarju";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Za zadnjo verzijo pojdine na naslov: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Za zadnjo verzijo pojdine na naslov: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuirano pod GNU LGPL. Poglejte http://gnu.org/licenses/lgpl.html za podrobnosti." +
|
||||
"\n\n" +
|
||||
"Izbor datuma:\n" +
|
||||
|
@ -64,8 +64,8 @@ Calendar._TT["INFO"] = "O kalendári";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" +
|
||||
"Poslednú verziu nájdete na: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
|
||||
"Poslednú verziu nájdete na: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuované pod GNU LGPL. Viď http://gnu.org/licenses/lgpl.html pre detaily." +
|
||||
"\n\n" +
|
||||
"Výber dátumu:\n" +
|
||||
|
@ -1,4 +1,15 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar SP language
|
||||
// Author: Rafael Velasco <rvu_at_idecnet_dot_com>
|
||||
// Encoding: any
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// For translators: please use UTF-8 if possible. We strongly believe that
|
||||
// Unicode is the answer to a real internationalized world. Also please
|
||||
// include your contact information in the header, as can be seen above.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("Domingo",
|
||||
"Lunes",
|
||||
@ -8,6 +19,18 @@ Calendar._DN = new Array
|
||||
"Viernes",
|
||||
"Sabado",
|
||||
"Domingo");
|
||||
|
||||
Calendar._SDN = new Array
|
||||
("Dom",
|
||||
"Lun",
|
||||
"Mar",
|
||||
"Mie",
|
||||
"Jue",
|
||||
"Vie",
|
||||
"Sab",
|
||||
"Dom");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("Enero",
|
||||
"Febrero",
|
||||
@ -22,14 +45,29 @@ Calendar._MN = new Array
|
||||
"Noviembre",
|
||||
"Diciembre");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("Ene",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dic");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["INFO"] = "Información del Calendario";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"Nuevas versiones en: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"Nuevas versiones en: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribuida bajo licencia GNU LGPL. Para detalles vea http://gnu.org/licenses/lgpl.html ." +
|
||||
"\n\n" +
|
||||
"Selección de Fechas:\n" +
|
||||
@ -42,7 +80,6 @@ Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"- o presione Shift-click para disminuirlo\n" +
|
||||
"- o presione click y arrastre del ratón para una selección rapida.";
|
||||
|
||||
Calendar._TT["TOGGLE"] = "Primer dia de la semana";
|
||||
Calendar._TT["PREV_YEAR"] = "Año anterior (Presione para menu)";
|
||||
Calendar._TT["PREV_MONTH"] = "Mes Anterior (Presione para menu)";
|
||||
Calendar._TT["GO_TODAY"] = "Ir a Hoy";
|
||||
@ -51,13 +88,23 @@ Calendar._TT["NEXT_YEAR"] = "A
|
||||
Calendar._TT["SEL_DATE"] = "Seleccione fecha";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "Arrastre y mueva";
|
||||
Calendar._TT["PART_TODAY"] = " (Hoy)";
|
||||
Calendar._TT["MON_FIRST"] = "Lunes Primero";
|
||||
Calendar._TT["SUN_FIRST"] = "Domingo Primero";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "Mostrar %s primero";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "Cerrar";
|
||||
Calendar._TT["TODAY"] = "Hoy";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)Click o arrastra para cambar el valor";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%dd-%mm-%yy";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
|
||||
|
||||
Calendar._TT["WK"] = "Smn";
|
||||
Calendar._TT["WK"] = "Sm";
|
||||
Calendar._TT["TIME"] = "Hora:";
|
||||
|
@ -1,7 +1,7 @@
|
||||
// ** I18N
|
||||
|
||||
// Calendar SV language (Swedish, svenska)
|
||||
// Author: Mihai Bazon, <mishoo@infoiasi.ro>
|
||||
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
|
||||
// Translation team: <sv@li.org>
|
||||
// Translator: Leonard Norrgård <leonard.norrgard@refactor.fi>
|
||||
// Last translator: Leonard Norrgård <leonard.norrgard@refactor.fi>
|
||||
@ -58,8 +58,8 @@ Calendar._TT["INFO"] = "Om kalendern";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Datum/tid-väljare\n" +
|
||||
"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
|
||||
"För senaste version gå till: http://dynarch.com/mishoo/calendar.epl\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"För senaste version gå till: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distribueras under GNU LGPL. Se http://gnu.org/licenses/lgpl.html för detaljer." +
|
||||
"\n\n" +
|
||||
"Val av datum:\n" +
|
||||
|
@ -1,4 +1,11 @@
|
||||
// ** Translated by ATang ** I18N
|
||||
// ** I18N
|
||||
|
||||
// Calendar ZH language
|
||||
// Author: muziq, <muziq@sina.com>
|
||||
// Encoding: GB2312 or GBK
|
||||
// Distributed under the same terms as the calendar itself.
|
||||
|
||||
// full day names
|
||||
Calendar._DN = new Array
|
||||
("星期日",
|
||||
"星期一",
|
||||
@ -8,6 +15,31 @@ Calendar._DN = new Array
|
||||
"星期五",
|
||||
"星期六",
|
||||
"星期日");
|
||||
|
||||
// Please note that the following array of short day names (and the same goes
|
||||
// for short month names, _SMN) isn't absolutely necessary. We give it here
|
||||
// for exemplification on how one can customize the short day names, but if
|
||||
// they are simply the first N letters of the full name you can simply say:
|
||||
//
|
||||
// Calendar._SDN_len = N; // short day name length
|
||||
// Calendar._SMN_len = N; // short month name length
|
||||
//
|
||||
// If N = 3 then this is not needed either since we assume a value of 3 if not
|
||||
// present, to be compatible with translation files that were written before
|
||||
// this feature.
|
||||
|
||||
// short day names
|
||||
Calendar._SDN = new Array
|
||||
("日",
|
||||
"一",
|
||||
"二",
|
||||
"三",
|
||||
"四",
|
||||
"五",
|
||||
"六",
|
||||
"日");
|
||||
|
||||
// full month names
|
||||
Calendar._MN = new Array
|
||||
("一月",
|
||||
"二月",
|
||||
@ -22,24 +54,66 @@ Calendar._MN = new Array
|
||||
"十一月",
|
||||
"十二月");
|
||||
|
||||
// short month names
|
||||
Calendar._SMN = new Array
|
||||
("一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月");
|
||||
|
||||
// tooltips
|
||||
Calendar._TT = {};
|
||||
Calendar._TT["TOGGLE"] = "切换周开始的一天";
|
||||
Calendar._TT["INFO"] = "帮助";
|
||||
|
||||
Calendar._TT["ABOUT"] =
|
||||
"DHTML Date/Time Selector\n" +
|
||||
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
|
||||
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
|
||||
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
|
||||
"\n\n" +
|
||||
"选择日期:\n" +
|
||||
"- 点击 \xab, \xbb 按钮选择年份\n" +
|
||||
"- 点击 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按钮选择月份\n" +
|
||||
"- 长按以上按钮可从菜单中快速选择年份或月份";
|
||||
Calendar._TT["ABOUT_TIME"] = "\n\n" +
|
||||
"选择时间:\n" +
|
||||
"- 点击小时或分钟可使改数值加一\n" +
|
||||
"- 按住Shift键点击小时或分钟可使改数值减一\n" +
|
||||
"- 点击拖动鼠标可进行快速选择";
|
||||
|
||||
Calendar._TT["PREV_YEAR"] = "上一年 (按住出菜单)";
|
||||
Calendar._TT["PREV_MONTH"] = "上一月 (按住出菜单)";
|
||||
Calendar._TT["GO_TODAY"] = "到今日";
|
||||
Calendar._TT["GO_TODAY"] = "转到今日";
|
||||
Calendar._TT["NEXT_MONTH"] = "下一月 (按住出菜单)";
|
||||
Calendar._TT["NEXT_YEAR"] = "下一年 (按住出菜单)";
|
||||
Calendar._TT["SEL_DATE"] = "选择日期";
|
||||
Calendar._TT["DRAG_TO_MOVE"] = "拖动";
|
||||
Calendar._TT["PART_TODAY"] = " (今日)";
|
||||
Calendar._TT["MON_FIRST"] = "首先显示星期一";
|
||||
Calendar._TT["SUN_FIRST"] = "首先显示星期日";
|
||||
|
||||
// the following is to inform that "%s" is to be the first day of week
|
||||
// %s will be replaced with the day name.
|
||||
Calendar._TT["DAY_FIRST"] = "最左边显示%s";
|
||||
|
||||
// This may be locale-dependent. It specifies the week-end days, as an array
|
||||
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
|
||||
// means Monday, etc.
|
||||
Calendar._TT["WEEKEND"] = "0,6";
|
||||
|
||||
Calendar._TT["CLOSE"] = "关闭";
|
||||
Calendar._TT["TODAY"] = "今日";
|
||||
Calendar._TT["TIME_PART"] = "(Shift-)点击鼠标或拖动改变值";
|
||||
|
||||
// date formats
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
|
||||
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
|
||||
Calendar._TT["TT_DATE_FORMAT"] = "%A, %b %e日";
|
||||
|
||||
Calendar._TT["WK"] = "周";
|
||||
Calendar._TT["TIME"] = "时间:";
|
||||
|
@ -11,9 +11,110 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div style="float: right; border: 1px solid #000; background: #fff; padding: 10px; ">
|
||||
<a href="http://www.dynarch.com/projects/calendar/">The Coolest DHTML Calendar</a><br />
|
||||
© <a href="http://www.dynarch.com/">Dynarch.com</a> 2002 and later.
|
||||
</div>
|
||||
<h1>jscalendar release notes</h1>
|
||||
|
||||
<p>This release compiled at Friday, 6 Feb 2004 (21:40).</p>
|
||||
<p>This release compiled at Monday, 7 Mar 2005 (19:06).</p>
|
||||
|
||||
<h2>1.0</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
Added support for multiple dates selection. In this mode the
|
||||
calendar will allow the user to select more than one date, and
|
||||
will maintain an array of selected dates that can be
|
||||
investigated from your custom handlers. Sample in <a
|
||||
href="multiple-dates.html">multiple-dates.html</a>.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Support for “day info”. Using this feature you can display
|
||||
custom information for certain dates. Sample in <a
|
||||
href="dayinfo.html">dayinfo.html</a>. Note that if the text
|
||||
is really big the calendar layout might appear somehow broken;
|
||||
this is something that should be easy to fix in the CSS file.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Clicking on “Today” will now close the calendar if the current
|
||||
date is already selected.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
The “first day of week” setting can now be defined in the
|
||||
language file--after all, it is locale-specific. The new
|
||||
parameter is “Calendar._FD”. Language files should be
|
||||
updated, but the calendar will not complain nor fail to
|
||||
function if the parameter is not present.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Some fixes to make the thing work in Safari. It now seems to
|
||||
be properly supported, please let me know if you encounter any
|
||||
problems.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
New skin: Aqua theme, appropriate for MacOSX fan sites :-)
|
||||
This theme is located in “skins/aqua/theme.css” (in the
|
||||
future, all themes will go to this directory).
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<b>Bug fixes.</b>
|
||||
<ul>
|
||||
<li>
|
||||
Keyboard operation now functions normally when the
|
||||
calendar is displaying days from adjacent months; it might
|
||||
even work correctly for months containing disabled dates
|
||||
:). This fix was originally developed under contract for
|
||||
<a
|
||||
href="http://www.zapatec.com/website/main/products/prod1/">The
|
||||
Zapatec Calendar</a>. Zapatec kindly allowed us to
|
||||
include the bugfixes back in the open source calendar.
|
||||
</li>
|
||||
<li>
|
||||
Fixed the time selection bug: the previous version would
|
||||
reset the time to current time when a new date was
|
||||
clicked.
|
||||
</li>
|
||||
<li>
|
||||
Parsing hours like "12:XX pm" would wrongfully replace
|
||||
"pm" with "am"--fixed.
|
||||
</li>
|
||||
<li>
|
||||
Fixed critical bugs in parseDate function that would
|
||||
initialize the calendar with 'NaN' values in all cells if
|
||||
the string to be parsed is not a valid date.
|
||||
</li>
|
||||
<li>
|
||||
The golbal variable that we are using was renamed to
|
||||
“_dynarch_popupCalendar” to minimize the risk of name
|
||||
clashes. It's still difficult to get rid of it.
|
||||
</li>
|
||||
<li>
|
||||
Added z-index property to drop-down menus style.
|
||||
</li>
|
||||
<li>
|
||||
The calendar will update an input field even in flat mode,
|
||||
if an input field was passed. Also, the “showOthers”
|
||||
parameter will be effective in both popup and flat mode.
|
||||
</li>
|
||||
<li>
|
||||
Others, probably.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Documentation & sample files updated.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>0.9.6</h2>
|
||||
|
||||
|
@ -198,7 +198,9 @@ dd.getDivW = function(d_o)
|
||||
{
|
||||
return dd.Int(
|
||||
dd.n4? (d_o.div? d_o.div.clip.width : 0)
|
||||
: d_o.div? (d_o.div.offsetWidth || d_o.css.pixelWidth || d_o.css.width || 0)
|
||||
|
||||
|
||||
: d_o.div? (d_o.div.offsetWidth || (d_o.css ? d_o.css.pixelWidth || d_o.css.width : 0))
|
||||
: 0
|
||||
);
|
||||
};
|
||||
@ -207,7 +209,7 @@ dd.getDivH = function(d_o)
|
||||
{
|
||||
return dd.Int(
|
||||
dd.n4? (d_o.div? d_o.div.clip.height : 0)
|
||||
: d_o.div? (d_o.div.offsetHeight || d_o.css.pixelHeight || d_o.css.height || 0)
|
||||
: d_o.div? (d_o.div.offsetHeight || (d_o.css ? d_o.css.pixelHeight || d_o.css.height : 0))
|
||||
: 0
|
||||
);
|
||||
};
|
||||
@ -360,6 +362,7 @@ dd.addProps = function(d_o)
|
||||
{
|
||||
d_o.div = dd.getDiv(d_o.id);
|
||||
if (d_o.div && typeof d_o.div.style != "undefined") d_o.css = d_o.div.style;
|
||||
else d_o.css = {};
|
||||
d_o.nimg = (dd.n4 && d_o.div)? d_o.div.document.images[0] : (document.images[d_o.id+'NImG'] || null);
|
||||
if (!d_o.noalt && !dd.noalt)
|
||||
{
|
||||
@ -571,6 +574,7 @@ function DDObj(d_o, d_i)
|
||||
else
|
||||
{
|
||||
if (!!(this.div = dd.getDiv(this.id)) && typeof this.div.style != "undefined") this.css = this.div.style;
|
||||
else this.css = {};
|
||||
dd.getWH(this);
|
||||
if (this.div)
|
||||
{
|
||||
|
@ -492,3 +492,4 @@ function tt_Hide()
|
||||
|
||||
|
||||
tt_Init();
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
/* Basic information about this app */
|
||||
$setup_info['phpgwapi']['name'] = 'phpgwapi';
|
||||
$setup_info['phpgwapi']['title'] = 'phpgwapi';
|
||||
$setup_info['phpgwapi']['version'] = '1.0.1.007';
|
||||
$setup_info['phpgwapi']['version'] = '1.0.1.008';
|
||||
$setup_info['phpgwapi']['versions']['current_header'] = '1.28';
|
||||
$setup_info['phpgwapi']['enable'] = 3;
|
||||
$setup_info['phpgwapi']['app_order'] = 1;
|
||||
|
@ -410,7 +410,9 @@
|
||||
'mime_id' => array('type' => 'int','precision' => 4),
|
||||
'owner_id' => array('type' => 'int','precision' => 4,'nullable' => False),
|
||||
'createdby_id' => array('type' => 'int','precision' => 4),
|
||||
'modifiedby_id' => array('type' => 'int','precision' => 4),
|
||||
'created' => array('type' => 'timestamp','default' => '1970-01-01 00:00:00', 'nullable' => False),
|
||||
'modified' => array('type' => 'timestamp', 'nullable' => true),
|
||||
'size' => array('type' => 'int','precision' => 8),
|
||||
'deleteable' => array('type' => 'char','precision' => 1,'default' => 'Y'),
|
||||
'comment' => array('type' => 'varchar','precision' => 255),
|
||||
|
@ -368,4 +368,37 @@
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.007';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
}
|
||||
|
||||
$test[] = '1.0.1.007';
|
||||
function phpgwapi_upgrade1_0_1_007()
|
||||
{
|
||||
//Creating cached values for modified and modifiedby_id
|
||||
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_vfs2_files', 'modifiedby_id', array('type' => 'int','precision' => 4));
|
||||
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_vfs2_files', 'modified', array('type' => 'timestamp', 'nullable' => true));
|
||||
|
||||
//Updating existing values
|
||||
$sql = "SELECT max(modified) as mod, file_id, modifiedby_id from phpgw_vfs2_versioning group by file_id";
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->m_odb->query($sql,__LINE__,__FILE__);
|
||||
|
||||
while ($GLOBALS['phpgw_setup']->oProc->m_odb->next_record())
|
||||
{
|
||||
$files_to_change[] = $GLOBALS['phpgw_setup']->oProc->m_odb->Record;
|
||||
}
|
||||
|
||||
foreach ($files_to_change as $key => $val)
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->m_odb->update('phpgw_vfs2_files',
|
||||
array(
|
||||
'modified' => $val['mod'],
|
||||
'modifiedby_id' => $val['modifiedby_id']
|
||||
),
|
||||
array('file_id' => $val['file_id']),__LINE__,__FILE__
|
||||
);
|
||||
}
|
||||
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.008';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
}
|
||||
|
||||
?>
|
||||
|
Loading…
Reference in New Issue
Block a user