fixws and 'new' button in grid query

This commit is contained in:
Massimo Di Pierro
2011-12-05 11:39:42 -06:00
parent 01f6f82cdf
commit d281acb421
305 changed files with 8352 additions and 8032 deletions
+7 -5
View File
@@ -349,7 +349,7 @@ def ccache():
seconds = math.floor(seconds)
return (hours, minutes, seconds)
for key, value in cache.ram.storage.items():
if isinstance(value, dict):
ram['hits'] = value['hit_total'] - value['misses']
@@ -388,7 +388,7 @@ def ccache():
if value[0] < disk['oldest']:
disk['oldest'] = value[0]
disk['keys'].append((key, GetInHMS(time.time() - value[0])))
finally:
portalocker.unlock(locker)
locker.close()
@@ -417,14 +417,16 @@ def ccache():
def key_table(keys):
return TABLE(
TR(TD(B('Key')), TD(B('Time in Cache (h:m:s)'))),
*[TR(TD(k[0]), TD('%02d:%02d:%02d' % k[1])) for k in keys],
*[TR(TD(k[0]), TD('%02d:%02d:%02d' % k[1])) for k in keys],
**dict(_class='cache-keys',
_style="border-collapse: separate; border-spacing: .5em;"))
ram['keys'] = key_table(ram['keys'])
disk['keys'] = key_table(disk['keys'])
total['keys'] = key_table(total['keys'])
return dict(form=form, total=total,
ram=ram, disk=disk, object_stats=hp != False)
@@ -68,3 +68,4 @@ def data():
LOAD('default','data.load',args='tables',ajax=True,user_signature=True)
"""
return dict(form=crud())
+131 -131
View File
@@ -1,131 +1,131 @@
# cs-cz.py pro web2py
# coding: utf8
{
'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" je voliteľný výraz ako "field1=\'newvalue\'". Nemôžete upravovať alebo zmazať výsledky JOINu',
'%Y-%m-%d': '%d.%m.%Y',
'%Y-%m-%d %H:%M:%S': '%d.%m.%Y %H:%M:%S',
'%s rows deleted': '%s zmazaných záznamů',
'%s rows updated': '%s upravených záznamů',
'Administrative interface': 'pro administrátorské rozhranie kliknite sem',
'Are you sure you want to delete this object?': 'Opravdu chceš odstranit tento objekt?',
'Available databases and tables': 'Dostupné databáze a tabuľky',
'Cannot be empty': 'Nemůže být prázdné',
'Change password': 'Změna hesla',
'Check to delete': 'Označit ke smazání',
'Check to delete:': 'Check to delete:',
'Client IP': 'Client IP',
'Controller': 'Controller',
'Copyright': 'Copyright',
'Current request': 'Aktuální požadavek',
'Current response': 'Aktuální odpověď',
'Current session': 'Aktuální session',
'DB Model': 'DB Model',
'Database': 'Databáze',
'Delete:': 'Smazat:',
'Description': 'Popis',
'Documentation': 'Dokumentáce',
'E-mail': 'E-mail',
'Edit': 'Upravit',
'Edit Profile': 'Upravit profil',
'Edit current record': 'Upravit aktuální záznam',
'First name': 'Křestní jméno',
'Group %(group_id)s created': 'Skupina %(group_id)s vytvořena',
'Group ID': 'ID skupiny',
'Hello World': 'Ahoj světe',
'Import/Export': 'Import/Export',
'Index': 'Index',
'Internal State': 'Vnitřní stav',
'Invalid Query': 'Neplatná dotaz',
'Invalid email': 'Neplatný email',
'Invalid password': 'Nesprávné heslo',
'Last name': 'Příjmení',
'Layout': 'Layout',
'Logged in': 'Přihlášení úspěšné',
'Logged out': 'Odhlášení úspěšné',
'Login': 'Login',
'Lost Password': 'Ztracené heslo?',
'Menu Model': 'Menu Model',
'Name': 'Jméno',
'New Record': 'Nový záznam',
'New password': 'Nové heslo',
'No databases in this application': 'V této aplikáci nejsou databáze',
'Object or table name': 'Objekt či tabulka',
'Old password': 'Staré heslo',
'Online examples': 'pro online příklady klikněte sem',
'Origin': 'Púvod',
'Password': 'Heslo',
"Password fields don't match": 'Hesla se neshodují',
'Powered by': 'Powered by',
'Query:': 'Dotaz:',
'Readme': 'Nápověda',
'Record ID': 'ID záznamu',
'Register': 'Zaregistrovat se',
'Registration identifier': 'Registrační identifikátor',
'Registration key': 'Registrační kľíč',
'Remember me (for 30 days)': 'Zapamatuj si mne (na 30 dní)',
'Reset Password key': 'Nastavit registrační kľíč',
'Retrieve username': 'Retrieve username',
'Role': 'Role',
'Rows in table': 'řádků v tabulce',
'Rows selected': 'označených řádků',
'Stylesheet': 'CSS',
'Submit': 'Odeslat',
'Sure you want to delete this object?': 'Opravdu chceš smazat tento objekt?',
'Table name': 'Název tabulky',
'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"query" je podmínka jako "db.table1.field1==\'value\'". Něco jako "db.table1.field1==db.table2.field2" má za výsledek SQL JOIN.',
'The output of the file is a dictionary that was rendered by the view': 'Výstup zo souboru je slovník, ktorý byl zobrazený ve view',
'This is a copy of the scaffolding application': 'Toto je kopie skeletu aplikace',
'Timestamp': 'Časové razítko',
'Update:': 'Upravit:',
'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Použijte (...)&(...) pro AND, (...)|(...) pro OR a ~(...) pro NOT na poskládaní komplexnejších dotazů.',
'User %(id)s Logged-in': 'Uživatel %(id)s prihlásen',
'User %(id)s Logged-out': 'Uživatel %(id)s odhlášen',
'User %(id)s Password changed': 'Uživatel %(id)s zmenil heslo',
'User %(id)s Profile updated': 'Uživatel %(id)s upravil profil',
'User %(id)s Registered': 'Uživatel %(id)s se zaregistroval',
'User %(id)s Username retrieved': 'User %(id)s Username retrieved',
'User ID': 'ID uživatele',
'Username': 'Nick',
'Verify Password': 'Zopakuj heslo',
'View': 'Zobrazit',
'Welcome': 'Vítej',
'Welcome to web2py': 'Vitejte ve web2py',
'Which called the function': 'Ktorý zavolal funkci',
'You are successfully running web2py': 'Úspešně jste spustili web2py',
'You can modify this application and adapt it to your needs': 'Můžete upravit tuto aplikáci a prispôsobit ji svojim potřebám',
'You visited the url': 'Navštívili jste URL',
'appadmin is disabled because insecure channel': 'appadmin je zakázaný bez zabezpečeného spojení',
'cache': 'cache',
'customize me!': 'uprav mě!',
'data uploaded': 'data nahrána',
'database': 'databáze',
'database %s select': 'databáze %s výber',
'db': 'db',
'design': 'návrh',
'done!': 'hotovo!',
'enter a number between %(min)g and %(max)g': 'zadej číslo mezi %(min)g a %(max)g',
'enter an integer between %(min)g and %(max)g': 'zadej celé číslo mezi %(min)g a %(max)g',
'export as csv file': 'exportovat do csv souboru',
'forgot username?': 'neznáš svúj nick?',
'insert new': 'vložit nový záznam ',
'insert new %s': 'vložit nový záznam %s',
'invalid request': 'Neplatný požadavek',
'located in the file': 'v souboru ',
'login': 'prihlásit',
'logout': 'odhlásit',
'lost password?': 'neznáš heslo?',
'new record inserted': 'nový záznam byl vložen',
'next 100 rows': 'dalších 100 řádků',
'or import from csv file': 'a nebo naimportovat z csv souboru',
'password': 'heslo',
'previous 100 rows': 'předchádzajících 100 řádků',
'profile': 'profil',
'record': 'záznam',
'record does not exist': 'záznam neexistuje',
'record id': 'id záznamu',
'register': 'registrovat',
'selected': 'označených',
'state': 'stav',
'table': 'tabulka',
'unable to parse csv file': 'nedá sa zpracovat csv soubor',
}
# cs-cz.py pro web2py
# coding: utf8
{
'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" je voliteľný výraz ako "field1=\'newvalue\'". Nemôžete upravovať alebo zmazať výsledky JOINu',
'%Y-%m-%d': '%d.%m.%Y',
'%Y-%m-%d %H:%M:%S': '%d.%m.%Y %H:%M:%S',
'%s rows deleted': '%s zmazaných záznamů',
'%s rows updated': '%s upravených záznamů',
'Administrative interface': 'pro administrátorské rozhranie kliknite sem',
'Are you sure you want to delete this object?': 'Opravdu chceš odstranit tento objekt?',
'Available databases and tables': 'Dostupné databáze a tabuľky',
'Cannot be empty': 'Nemůže být prázdné',
'Change password': 'Změna hesla',
'Check to delete': 'Označit ke smazání',
'Check to delete:': 'Check to delete:',
'Client IP': 'Client IP',
'Controller': 'Controller',
'Copyright': 'Copyright',
'Current request': 'Aktuální požadavek',
'Current response': 'Aktuální odpověď',
'Current session': 'Aktuální session',
'DB Model': 'DB Model',
'Database': 'Databáze',
'Delete:': 'Smazat:',
'Description': 'Popis',
'Documentation': 'Dokumentáce',
'E-mail': 'E-mail',
'Edit': 'Upravit',
'Edit Profile': 'Upravit profil',
'Edit current record': 'Upravit aktuální záznam',
'First name': 'Křestní jméno',
'Group %(group_id)s created': 'Skupina %(group_id)s vytvořena',
'Group ID': 'ID skupiny',
'Hello World': 'Ahoj světe',
'Import/Export': 'Import/Export',
'Index': 'Index',
'Internal State': 'Vnitřní stav',
'Invalid Query': 'Neplatná dotaz',
'Invalid email': 'Neplatný email',
'Invalid password': 'Nesprávné heslo',
'Last name': 'Příjmení',
'Layout': 'Layout',
'Logged in': 'Přihlášení úspěšné',
'Logged out': 'Odhlášení úspěšné',
'Login': 'Login',
'Lost Password': 'Ztracené heslo?',
'Menu Model': 'Menu Model',
'Name': 'Jméno',
'New Record': 'Nový záznam',
'New password': 'Nové heslo',
'No databases in this application': 'V této aplikáci nejsou databáze',
'Object or table name': 'Objekt či tabulka',
'Old password': 'Staré heslo',
'Online examples': 'pro online příklady klikněte sem',
'Origin': 'Púvod',
'Password': 'Heslo',
"Password fields don't match": 'Hesla se neshodují',
'Powered by': 'Powered by',
'Query:': 'Dotaz:',
'Readme': 'Nápověda',
'Record ID': 'ID záznamu',
'Register': 'Zaregistrovat se',
'Registration identifier': 'Registrační identifikátor',
'Registration key': 'Registrační kľíč',
'Remember me (for 30 days)': 'Zapamatuj si mne (na 30 dní)',
'Reset Password key': 'Nastavit registrační kľíč',
'Retrieve username': 'Retrieve username',
'Role': 'Role',
'Rows in table': 'řádků v tabulce',
'Rows selected': 'označených řádků',
'Stylesheet': 'CSS',
'Submit': 'Odeslat',
'Sure you want to delete this object?': 'Opravdu chceš smazat tento objekt?',
'Table name': 'Název tabulky',
'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': '"query" je podmínka jako "db.table1.field1==\'value\'". Něco jako "db.table1.field1==db.table2.field2" má za výsledek SQL JOIN.',
'The output of the file is a dictionary that was rendered by the view': 'Výstup zo souboru je slovník, ktorý byl zobrazený ve view',
'This is a copy of the scaffolding application': 'Toto je kopie skeletu aplikace',
'Timestamp': 'Časové razítko',
'Update:': 'Upravit:',
'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...) for NOT to build more complex queries.': 'Použijte (...)&(...) pro AND, (...)|(...) pro OR a ~(...) pro NOT na poskládaní komplexnejších dotazů.',
'User %(id)s Logged-in': 'Uživatel %(id)s prihlásen',
'User %(id)s Logged-out': 'Uživatel %(id)s odhlášen',
'User %(id)s Password changed': 'Uživatel %(id)s zmenil heslo',
'User %(id)s Profile updated': 'Uživatel %(id)s upravil profil',
'User %(id)s Registered': 'Uživatel %(id)s se zaregistroval',
'User %(id)s Username retrieved': 'User %(id)s Username retrieved',
'User ID': 'ID uživatele',
'Username': 'Nick',
'Verify Password': 'Zopakuj heslo',
'View': 'Zobrazit',
'Welcome': 'Vítej',
'Welcome to web2py': 'Vitejte ve web2py',
'Which called the function': 'Ktorý zavolal funkci',
'You are successfully running web2py': 'Úspešně jste spustili web2py',
'You can modify this application and adapt it to your needs': 'Můžete upravit tuto aplikáci a prispôsobit ji svojim potřebám',
'You visited the url': 'Navštívili jste URL',
'appadmin is disabled because insecure channel': 'appadmin je zakázaný bez zabezpečeného spojení',
'cache': 'cache',
'customize me!': 'uprav mě!',
'data uploaded': 'data nahrána',
'database': 'databáze',
'database %s select': 'databáze %s výber',
'db': 'db',
'design': 'návrh',
'done!': 'hotovo!',
'enter a number between %(min)g and %(max)g': 'zadej číslo mezi %(min)g a %(max)g',
'enter an integer between %(min)g and %(max)g': 'zadej celé číslo mezi %(min)g a %(max)g',
'export as csv file': 'exportovat do csv souboru',
'forgot username?': 'neznáš svúj nick?',
'insert new': 'vložit nový záznam ',
'insert new %s': 'vložit nový záznam %s',
'invalid request': 'Neplatný požadavek',
'located in the file': 'v souboru ',
'login': 'prihlásit',
'logout': 'odhlásit',
'lost password?': 'neznáš heslo?',
'new record inserted': 'nový záznam byl vložen',
'next 100 rows': 'dalších 100 řádků',
'or import from csv file': 'a nebo naimportovat z csv souboru',
'password': 'heslo',
'previous 100 rows': 'předchádzajících 100 řádků',
'profile': 'profil',
'record': 'záznam',
'record does not exist': 'záznam neexistuje',
'record id': 'id záznamu',
'register': 'registrovat',
'selected': 'označených',
'state': 'stav',
'table': 'tabulka',
'unable to parse csv file': 'nedá sa zpracovat csv soubor',
}
+1
View File
@@ -257,3 +257,4 @@
'web2py Recent Tweets': 'Tweets Recientes de web2py',
'web2py is up to date': 'web2py está actualizado',
}
+1
View File
@@ -165,3 +165,4 @@
'unable to parse csv file': "incapable d'analyser le fichier cvs",
'value already in database or empty': 'valeur déjà dans la base ou vide',
}
+1
View File
@@ -153,3 +153,4 @@
'unable to parse csv file': "incapable d'analyser le fichier cvs",
'Readme': "Lisez-moi",
}
+1
View File
@@ -80,3 +80,4 @@
'table': '\xe0\xa4\xa4\xe0\xa4\xbe\xe0\xa4\xb2\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xbe',
'unable to parse csv file': 'csv \xe0\xa4\xab\xe0\xa4\xbc\xe0\xa4\xbe\xe0\xa4\x87\xe0\xa4\xb2 \xe0\xa4\xaa\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xb8 \xe0\xa4\x95\xe0\xa4\xb0\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 \xe0\xa4\x85\xe0\xa4\xb8\xe0\xa4\xae\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xa5',
}
+1
View File
@@ -91,3 +91,4 @@
'table': 't\xc3\xa1bla',
'unable to parse csv file': 'nem lehet a csv f\xc3\xa1jlt beolvasni',
}
+1
View File
@@ -91,3 +91,4 @@
'table': 't\xc3\xa1bla',
'unable to parse csv file': 'nem lehet a csv f\xc3\xa1jlt beolvasni',
}
+1
View File
@@ -105,3 +105,4 @@
'table': 'tabella',
'unable to parse csv file': 'non riesco a decodificare questo file CSV',
}
+1
View File
@@ -105,3 +105,4 @@
'table': 'tabella',
'unable to parse csv file': 'non riesco a decodificare questo file CSV',
}
+1
View File
@@ -79,3 +79,4 @@
'table': 'tabela',
'unable to parse csv file': 'nie mo\xc5\xbcna sparsowa\xc4\x87 pliku csv',
}
+1
View File
@@ -102,3 +102,4 @@
'table': 'tabela',
'unable to parse csv file': 'nie mo\xc5\xbcna sparsowa\xc4\x87 pliku csv',
}
+1
View File
@@ -140,3 +140,4 @@
'table': 'tabela',
'unable to parse csv file': 'não foi possível analisar arquivo csv',
}
+1
View File
@@ -114,3 +114,4 @@
'table': 'tabela',
'unable to parse csv file': 'não foi possível carregar ficheiro csv',
}
+1
View File
@@ -114,3 +114,4 @@
'table': 'tabela',
'unable to parse csv file': 'não foi possível carregar ficheiro csv',
}
+1
View File
@@ -94,3 +94,4 @@
'table': 'таблица',
'unable to parse csv file': 'нечитаемый csv-файл',
}
+1
View File
@@ -109,3 +109,4 @@
'table': 'tabuľka',
'unable to parse csv file': 'nedá sa načítať csv súbor',
}
+1
View File
@@ -163,3 +163,4 @@
'table': '資料表',
'unable to parse csv file': '無法解析逗號分隔檔(csv)',
}
+7 -6
View File
@@ -5,14 +5,14 @@
## File is released under public domain and you can use without limitations
#########################################################################
if not request.env.web2py_runtime_gae:
if not request.env.web2py_runtime_gae:
## if NOT running on Google App Engine use SQLite or other DB
db = DAL('sqlite://storage.sqlite')
db = DAL('sqlite://storage.sqlite')
else:
## connect to Google BigTable (optional 'google:datastore://namespace')
db = DAL('google:datastore')
db = DAL('google:datastore')
## store sessions and tickets there
session.connect(request, response, db = db)
session.connect(request, response, db = db)
## or store session in Memcache, Redis, etc.
## from gluon.contrib.memdb import MEMDB
## from google.appengine.api.memcache import Client
@@ -36,11 +36,11 @@ response.generic_patterns = ['*'] if request.is_local else []
#########################################################################
from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
auth = Auth(db, hmac_key=Auth.get_or_create_key())
auth = Auth(db, hmac_key=Auth.get_or_create_key())
crud, service, plugins = Crud(db), Service(), PluginManager()
## create all tables needed by auth if not custom tables
auth.define_tables()
auth.define_tables()
## configure email
mail=auth.settings.mailer
@@ -74,3 +74,4 @@ use_janrain(auth,filename='private/janrain.key')
## >>> rows=db(db.mytable.myfield=='value').select(db.mytable.ALL)
## >>> for row in rows: print row.id, row.myfield
#########################################################################
+3 -2
View File
@@ -33,7 +33,7 @@ response.menu = [
def _():
# shortcuts
app = request.application
ctr = request.controller
ctr = request.controller
# useful links to internal and external resources
response.menu+=[
(SPAN('web2py',_style='color:yellow'),False, None, [
@@ -95,7 +95,8 @@ def _():
('plugin_wiki',False,'http://web2py.com/examples/default/download'),
(T('Other Plugins'),False,'http://web2py.com/plugins'),
(T('Layout Plugins'),False,'http://web2py.com/layouts'),
])
])
]
)]
_()
+1
View File
@@ -0,0 +1 @@
+4 -4
View File
@@ -1,5 +1,5 @@
/* anytimec.css 4.1112H (anytime.css 4.1112H)
Copyright 2008-2010 Andrew M. Andrews III (www.AMA3.com). Some Rights
Copyright 2008-2010 Andrew M. Andrews III (www.AMA3.com). Some Rights
Reserved. This work licensed under the Creative Commons Attribution-
Noncommercial-Share Alike 3.0 Unported License except in jurisdicitons
for which the license has been ported by Creative Commons International,
@@ -41,7 +41,7 @@ Any+Time is a trademark of Andrew M. Andrews III. */
.AnyTime-pkr .AnyTime-secs {float:left;padding-left:0.5em;padding-right:0.5em;text-align:center;width:4.7em}
.AnyTime-pkr .AnyTime-secs-tens, .AnyTime-pkr .AnyTime-secs-ones {float:left;width:2.3em}
.AnyTime-pkr .AnyTime-sec-ten-btn, .AnyTime-pkr .AnyTime-sec-one-btn {float:left;text-align:center;width:2em}
.AnyTime-pkr .AnyTime-sec-ten-btn-empty, .AnyTime-pkr .AnyTime-sec-one-btn-empty {background-color:#F3F3F4;border:1px solid #C0C0c1}
.AnyTime-pkr .AnyTime-sec-ten-btn-empty, .AnyTime-pkr .AnyTime-sec-one-btn-empty {background-color:#F3F3F4;border:1px solid #C0C0c1}
.AnyTime-pkr .AnyTime-offs {clear:left;float:left;padding-left:0.5em;padding-top:0.5em;text-align:center}
.AnyTime-pkr .AnyTime-off-select-btn {width:1.5em}
.AnyTime-pkr .AnyTime-body-yr-selector {padding:1em; }
@@ -52,5 +52,5 @@ Any+Time is a trademark of Andrew M. Andrews III. */
.AnyTime-pkr .AnyTime-body-off-selector {margin:0.5em; }
.AnyTime-pkr .AnyTime-off-off-btn {clear:left;padding-left:1em;padding-right:1em;text-align:left}
.AnyTime-pkr .AnyTime-cur-btn {border:1px solid #333334;background-color:#C0C0C1;color:#FCFCFE;font-weight:bold}
.AnyTime-pkr .AnyTime-out-btn {background-color:#F0F0F1;border:1px solid #C0C0c1}
.AnyTime-pkr .AnyTime-focus-btn {border:1px dashed black}
.AnyTime-pkr .AnyTime-out-btn {background-color:#F0F0F1;border:1px solid #C0C0c1}
.AnyTime-pkr .AnyTime-focus-btn {border:1px dashed black}
+1 -1
View File
@@ -4,4 +4,4 @@ border-radius: 10px;
-webkit-border-radius: 10px;
}.calendar table{margin:0px;font-size:11px;color:#000;cursor:default;font-family:tahoma,verdana,sans-serif;}.calendar .button{text-align:center;padding:1px;color:#fff;background:#000;}.calendar .nav{background:#000;color:#fff}.calendar thead .title{font-weight:bold;padding:1px;background:#000;color:#fff;text-align:center;}.calendar thead .name{padding:2px;text-align:center;background:#bbb;}.calendar thead .weekend{color:#f00;}.calendar thead .hilite {background-color:#666;}.calendar thead .active{padding:2px 0 0 2px;background-color:#c4c0b8;}.calendar tbody .day{width:2em;text-align:right;padding:2px 4px 2px 2px;}.calendar tbody .day.othermonth{color:#aaa;}.calendar tbody .day.othermonth.oweekend{color:#faa;}.calendar table .wn{padding:2px 3px 2px 2px;background:#bbb;}.calendar tbody .rowhilite td{background:#ddd;}.calendar tbody td.hilite{background:#bbb;}.calendar tbody td.active{background:#bbb;}.calendar tbody td.selected{font-weight:bold;background:#ddd;}.calendar tbody td.weekend{color:#f00;}.calendar tbody td.today{font-weight:bold;color:#00f;}.calendar tbody .disabled{color:#999;}.calendar tbody .emptycell{visibility:hidden;}.calendar tbody .emptyrow{display:none;}.calendar tfoot .ttip{background:#bbb;padding:1px;background:#000;color:#fff;text-align:center;}.calendar tfoot .hilite{background:#ddd;}.calendar tfoot .active{}.calendar .combo{position:absolute;display:none;width:4em;top:0;left:0;cursor:default;background:#e4e0d8;padding:1px;z-index:100;}.calendar .combo .label,.calendar .combo .label-IEfix{text-align:center;padding:1px;}.calendar .combo .label-IEfix{width:4em;}.calendar .combo .active{background:#c4c0b8;}.calendar .combo .hilite{background:#048;color:#fea;}.calendar td.time{padding:1px 0;text-align:center;background-color:#bbb;}.calendar td.time .hour,.calendar td.time .minute,.calendar td.time .ampm{padding:0 3px 0 4px;font-weight:bold;}.calendar td.time .ampm{text-align:center;}.calendar td.time .colon{padding:0 2px 0 3px;font-weight:bold;}.calendar td.time span.hilite{}.calendar td.time span.active{border-color:#f00;background-color:#000;color:#0f0;}.hour,.minute{font-size:2em;}
#CP_hourcont{z-index:99;padding:0;position:absolute;border:1px dashed #666;background-color:#eee;display:none;}#CP_minutecont{z-index:99;background-color:#ddd;padding:1px;position:absolute;width:45px;display:none;}.floatleft{float:left;}.CP_hour{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:35px;}.CP_minute{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:auto;}.CP_over{background-color:#fff;z-index:99}
#CP_hourcont{z-index:99;padding:0;position:absolute;border:1px dashed #666;background-color:#eee;display:none;}#CP_minutecont{z-index:99;background-color:#ddd;padding:1px;position:absolute;width:45px;display:none;}.floatleft{float:left;}.CP_hour{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:35px;}.CP_minute{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:auto;}.CP_over{background-color:#fff;z-index:99}
+1
View File
@@ -626,3 +626,4 @@
}
@@ -89,7 +89,7 @@ ul.sf-menu li li li.sfHover ul {
padding-bottom: 0.25em;
color: #959595;
}
.sf-menu li:hover, .sf-menu a:focus, .sf-menu a:active, .sf-menu li.sfHover, .sf-menu a:hover {
.sf-menu li:hover, .sf-menu a:focus, .sf-menu a:active, .sf-menu li.sfHover, .sf-menu a:hover {
color: #FFFFFF;
background-color: #303030;
outline: 0;
@@ -109,7 +109,7 @@ ul.sf-menu li li li.sfHover ul {
width: 10px;
height: 10px;
text-indent: -999em;
overflow: hidden;
overflow: hidden;
background: url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
}
a > .sf-sub-indicator { /* give all except IE6 the correct values */
@@ -149,3 +149,4 @@ li.sfHover > a > .sf-sub-indicator {
.sf-shadow ul.sf-shadow-off {
background: transparent;
}
+10 -9
View File
@@ -50,22 +50,22 @@ html, body {
.footer, .push {
height: 6em;
padding: 1em 0;
clear: both;
clear: both;
}
.footer-content {position: relative; bottom: -4em; width: 100%;}
.auth_navbar {
white-space: nowrap;
.auth_navbar {
white-space: nowrap;
}
/* Sticky footer end */
body {
background-color: #FFFFFF;
background-color: #FFFFFF;
}
.footer {
background-color: #ECECEC;
background-color: #ECECEC;
}
.header {
// background: <fill here for header image>;
@@ -93,7 +93,7 @@ td.w2p_fl, td.w2p_fc { padding-top: 4px; }
a, a:visited, a:hover { color:#0069D6}
/*********** web2py specific ***********/
/*********** web2py specific ***********/
div.flash {
font-weight: bold;
display: none;
@@ -167,7 +167,7 @@ div.error {
.copyright {float: left;}
/* #MEDIA QUERIES SECTION */
/* All Mobile Sizes (devices and browser) */
@media only screen and (max-width: 767px) {
@@ -208,7 +208,7 @@ div.error {
}
.web2py_grid thead th {
background-color:#EAEAEA;
background-color:#EAEAEA;
padding: 10px 5px 10px 5px;
line-height: 13.5px;
vertical-align: middle;
@@ -261,7 +261,7 @@ div.error {
.web2py_console input[type=submit],
.web2py_console input[type=button],
.web2py_console button {
line-height: 20px;
line-height: 20px;
margin-right: 5px; display: inline-block;
padding: 3px 5px 3px 5px;
font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
@@ -346,3 +346,4 @@ color: #222;
border-radius:2px;
}
.ie9 #query_panel {padding-bottom:2px;}
+2 -1
View File
@@ -1,5 +1,5 @@
/* anytimec.js 4.1112H (anytime.js 4.1112H)
Copyright 2008-2010 Andrew M. Andrews III (www.AMA3.com). Some Rights
Copyright 2008-2010 Andrew M. Andrews III (www.AMA3.com). Some Rights
Reserved. This work licensed under the Creative Commons Attribution-
Noncommercial-Share Alike 3.0 Unported License except in jurisdicitons
for which the license has been ported by Creative Commons International,
@@ -788,3 +788,4 @@ yearValue=AnyTime.pad(yearValue,4);var eY=_this.earliest&&new Date(_this.earlies
{$(this).AnyTime_current(era<0,(!_this.earliest)||(_this.earliest<0));});this.yDiv.find('.AnyTime-ce-btn').each(function()
{$(this).AnyTime_current(era>0,(!_this.latest)||(_this.latest>0));});this.conv.setUtcFormatOffsetAlleged(this.offMin);this.conv.setUtcFormatOffsetSubIndex(this.offSI);this.inp.val(this.conv.format(this.time)).change();this.upd(fBtn);}};__pickers[id].initialize(id);}})(jQuery);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10 -9
View File
@@ -28,7 +28,7 @@
o.retainPath=($.inArray($$[0],o.$path)>-1);
$$.hideSuperfishUl();
if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
},o.delay);
},o.delay);
},
getMenu = function($menu){
var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
@@ -36,7 +36,7 @@
return menu;
},
addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
return this.each(function() {
var s = this.serial = sf.o.length;
var o = $.extend({},sf.defaults,op);
@@ -45,20 +45,20 @@
.filter('li:has(ul)').removeClass(o.pathClass);
});
sf.o[s] = sf.op = o;
$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
if (o.autoArrows) addArrow( $('>a:first-child',this) );
})
.not('.'+c.bcClass)
.hideSuperfishUl();
var $a = $('a',this);
$a.each(function(i){
var $li = $a.eq(i).parents('li');
$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
});
o.onInit.call(this);
}).each(function() {
var menuClasses = [c.menuClass];
if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
@@ -159,7 +159,7 @@
// cache all ul elements
$ULs = $$.find('ul');
// loop through each ul in menu
$ULs.each(function(i) {
$ULs.each(function(i) {
// cache this ul
var $ul = $ULs.eq(i);
// get all (li) children of this ul
@@ -199,7 +199,7 @@
$childUl.css(offsetDirection,$ul.width());
});
});
});
};
// expose defaults
@@ -208,15 +208,16 @@
maxWidth : 25, // requires em unit.
extraWidth : 0 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
};
})(jQuery); // plugin code ends
/**
* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
*
* @param f onMouseOver function || An object with configuration options
* @param g onMouseOut function || Nothing (use configuration options object)
* @author Brian Cherne brian(at)cherne(dot)net
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);
+10 -9
View File
@@ -18,7 +18,7 @@ function ajax(u,s,t) {
}
if (pcs.length>0){query = pcs.join("&");}
}
jQuery.ajax({type: "POST", url: u, data: query, success: function(msg) { if(t) { if(t==':eval') eval(msg); else jQuery("#" + t).html(msg); } } });
jQuery.ajax({type: "POST", url: u, data: query, success: function(msg) { if(t) { if(t==':eval') eval(msg); else jQuery("#" + t).html(msg); } } });
}
String.prototype.reverse = function () { return this.split('').reverse().join('');};
@@ -30,9 +30,9 @@ function web2py_ajax_fields(target) {
var date_format = (typeof w2p_ajax_date_format != 'undefined') ? w2p_ajax_date_format : "%Y-%m-%d";
var datetime_format = (typeof w2p_ajax_datetime_format != 'undefined') ? w2p_ajax_datetime_format : "%Y-%m-%d %H:%M:%S";
jQuery("input.date",target).each(function() {Calendar.setup({inputField:this, ifFormat:date_format, showsTime:false });});
jQuery("input.datetime",target).each(function() {Calendar.setup({inputField:this, ifFormat:datetime_format, showsTime: true, timeFormat: "24" });});
jQuery("input.datetime",target).each(function() {Calendar.setup({inputField:this, ifFormat:datetime_format, showsTime: true, timeFormat: "24" });});
jQuery("input.time",target).each(function(){jQuery(this).timeEntry();});
};
function web2py_ajax_init(target) {
@@ -43,7 +43,7 @@ function web2py_ajax_init(target) {
web2py_ajax_fields(target);
};
jQuery(function() {
jQuery(function() {
var flash = jQuery('.flash');
flash.hide();
if(flash.html()) flash.slideDown();
@@ -68,7 +68,7 @@ function web2py_trap_link(target) {
web2py_ajax_page('get',link.attr('href'),[],target);
e.preventDefault();
});
});
});
}
function web2py_ajax_page(method,action,data,target) {
jQuery.ajax({'type':method,'url':action,'data':data,
@@ -77,16 +77,16 @@ function web2py_ajax_page(method,action,data,target) {
xhr.setRequestHeader('web2py-component-element',target);},
'complete':function(xhr,text){
var html=xhr.responseText;
var content=xhr.getResponseHeader('web2py-component-content');
var content=xhr.getResponseHeader('web2py-component-content');
var command=xhr.getResponseHeader('web2py-component-command');
var flash=xhr.getResponseHeader('web2py-component-flash');
var t = jQuery('#'+target);
if(content=='prepend') t.prepend(html);
if(content=='prepend') t.prepend(html);
else if(content=='append') t.append(html);
else if(content!='hide') t.html(html);
else if(content!='hide') t.html(html);
web2py_trap_form(action,target);
web2py_trap_link(target);
web2py_ajax_init('#'+target);
web2py_ajax_init('#'+target);
if(command) eval(command);
if(flash) jQuery('.flash').html(flash).slideDown();
}
@@ -104,3 +104,4 @@ function web2py_comet(url,onmessage,onopen,onclose) {
return true; // supported
} else return false; // not supported
}
+1
View File
@@ -0,0 +1 @@
@@ -29,3 +29,4 @@
<li><a href="http://web2py.com/book">{{=T('Documentation')}}</a></li>
</ul>
{{end}}
+2 -1
View File
@@ -15,4 +15,5 @@
</div>
<script language="javascript"><!--
jQuery("#web2py_user_form input:visible:enabled:first").focus();
//--></script>
//--></script>