fixws and 'new' button in grid query
This commit is contained in:
@@ -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())
|
||||
|
||||
|
||||
@@ -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',
|
||||
}
|
||||
|
||||
@@ -257,3 +257,4 @@
|
||||
'web2py Recent Tweets': 'Tweets Recientes de web2py',
|
||||
'web2py is up to date': 'web2py está actualizado',
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
}
|
||||
|
||||
|
||||
@@ -153,3 +153,4 @@
|
||||
'unable to parse csv file': "incapable d'analyser le fichier cvs",
|
||||
'Readme': "Lisez-moi",
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
}
|
||||
|
||||
|
||||
@@ -91,3 +91,4 @@
|
||||
'table': 't\xc3\xa1bla',
|
||||
'unable to parse csv file': 'nem lehet a csv f\xc3\xa1jlt beolvasni',
|
||||
}
|
||||
|
||||
|
||||
@@ -91,3 +91,4 @@
|
||||
'table': 't\xc3\xa1bla',
|
||||
'unable to parse csv file': 'nem lehet a csv f\xc3\xa1jlt beolvasni',
|
||||
}
|
||||
|
||||
|
||||
@@ -105,3 +105,4 @@
|
||||
'table': 'tabella',
|
||||
'unable to parse csv file': 'non riesco a decodificare questo file CSV',
|
||||
}
|
||||
|
||||
|
||||
@@ -105,3 +105,4 @@
|
||||
'table': 'tabella',
|
||||
'unable to parse csv file': 'non riesco a decodificare questo file CSV',
|
||||
}
|
||||
|
||||
|
||||
@@ -79,3 +79,4 @@
|
||||
'table': 'tabela',
|
||||
'unable to parse csv file': 'nie mo\xc5\xbcna sparsowa\xc4\x87 pliku csv',
|
||||
}
|
||||
|
||||
|
||||
@@ -102,3 +102,4 @@
|
||||
'table': 'tabela',
|
||||
'unable to parse csv file': 'nie mo\xc5\xbcna sparsowa\xc4\x87 pliku csv',
|
||||
}
|
||||
|
||||
|
||||
@@ -140,3 +140,4 @@
|
||||
'table': 'tabela',
|
||||
'unable to parse csv file': 'não foi possível analisar arquivo csv',
|
||||
}
|
||||
|
||||
|
||||
@@ -114,3 +114,4 @@
|
||||
'table': 'tabela',
|
||||
'unable to parse csv file': 'não foi possível carregar ficheiro csv',
|
||||
}
|
||||
|
||||
|
||||
@@ -114,3 +114,4 @@
|
||||
'table': 'tabela',
|
||||
'unable to parse csv file': 'não foi possível carregar ficheiro csv',
|
||||
}
|
||||
|
||||
|
||||
@@ -94,3 +94,4 @@
|
||||
'table': 'таблица',
|
||||
'unable to parse csv file': 'нечитаемый csv-файл',
|
||||
}
|
||||
|
||||
|
||||
@@ -109,3 +109,4 @@
|
||||
'table': 'tabuľka',
|
||||
'unable to parse csv file': 'nedá sa načítať csv súbor',
|
||||
}
|
||||
|
||||
|
||||
@@ -163,3 +163,4 @@
|
||||
'table': '資料表',
|
||||
'unable to parse csv file': '無法解析逗號分隔檔(csv)',
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
#########################################################################
|
||||
|
||||
|
||||
@@ -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'),
|
||||
])
|
||||
])
|
||||
]
|
||||
)]
|
||||
_()
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;}
|
||||
|
||||
|
||||
@@ -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
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
|
||||
@@ -29,3 +29,4 @@
|
||||
<li><a href="http://web2py.com/book">{{=T('Documentation')}}</a></li>
|
||||
</ul>
|
||||
{{end}}
|
||||
|
||||
|
||||
@@ -15,4 +15,5 @@
|
||||
</div>
|
||||
<script language="javascript"><!--
|
||||
jQuery("#web2py_user_form input:visible:enabled:first").focus();
|
||||
//--></script>
|
||||
//--></script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user