fixed issue for utf-8
This commit is contained in:
parent
0698438c74
commit
a9f947f305
7 changed files with 35 additions and 25 deletions
|
|
@ -15,9 +15,6 @@ class Database:
|
|||
self.host = host or 'localhost'
|
||||
self.user = user or getattr(defs, 'default_db_name', '')
|
||||
|
||||
# password can be empty string
|
||||
self.password = password==None and getattr(defs, 'db_password', '') or password
|
||||
|
||||
if ac_name:
|
||||
self.user = self.get_db_login(ac_name) or defs.default_db_name
|
||||
|
||||
|
|
@ -28,6 +25,8 @@ class Database:
|
|||
self.in_transaction = 0
|
||||
self.transaction_writes = 0
|
||||
self.testing_tables = []
|
||||
|
||||
self.password = self.get_db_password(ac_name, password)
|
||||
|
||||
self.connect()
|
||||
if self.user != 'root':
|
||||
|
|
@ -36,6 +35,27 @@ class Database:
|
|||
if webnotes.logger:
|
||||
webnotes.logger.debug('Database object initialized for:%s',self.user)
|
||||
|
||||
def get_db_password(self, db_name, password):
|
||||
"""
|
||||
Return db password. order of importance:
|
||||
|
||||
1. password
|
||||
2. defs.get_db_password()
|
||||
3. defs.db_password
|
||||
"""
|
||||
# password can be empty string
|
||||
if password:
|
||||
return password
|
||||
|
||||
if hasattr(defs, 'get_db_password'):
|
||||
return defs.get_db_password(db_name)
|
||||
|
||||
if hasattr(defs, 'db_password'):
|
||||
return defs.db_password
|
||||
|
||||
else:
|
||||
return ''
|
||||
|
||||
def get_db_login(self, ac_name):
|
||||
return getattr(defs,'db_name_map').get(ac_name, getattr(defs,'default_db_name'))
|
||||
|
||||
|
|
|
|||
|
|
@ -410,17 +410,14 @@ else:
|
|||
except: # python 2.4
|
||||
import simplejson as json
|
||||
|
||||
try:
|
||||
str_out = json.dumps(webnotes.response)
|
||||
except:
|
||||
str_out = str(webnotes.response).replace(', None', ', ""')
|
||||
str_out = json.dumps(webnotes.response)
|
||||
|
||||
if acceptsGzip and len(str_out)>512:
|
||||
if acceptsGzip and 1 and len(str_out)>512:
|
||||
out_buf = compressBuf(str_out)
|
||||
print "Content-Encoding: gzip"
|
||||
print "Content-Length: %d" % (len(out_buf))
|
||||
|
||||
print "Content-Type: text/html; Charset: ISO-8859-1"
|
||||
print "Content-Type: text/html; charset: utf-8"
|
||||
|
||||
# if there ar additional cookies defined during the request, add them here
|
||||
if webnotes.cookies or webnotes.add_cookies:
|
||||
|
|
|
|||
|
|
@ -287,19 +287,13 @@ def cstr(s):
|
|||
"""
|
||||
Convert to string
|
||||
"""
|
||||
if s==None:
|
||||
if type(s) in (str, unicode):
|
||||
return s
|
||||
elif s==None:
|
||||
return ''
|
||||
else:
|
||||
if hasattr(s, 'encode'):
|
||||
try:
|
||||
s = s.encode('utf-8', 'ignore')
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
return unicode(s)
|
||||
except UnicodeDecodeError:
|
||||
return unicode(s, 'utf-8')
|
||||
|
||||
return str(s)
|
||||
|
||||
def str_esc_quote(s):
|
||||
"""
|
||||
Escape quotes
|
||||
|
|
|
|||
|
|
@ -428,7 +428,7 @@ $c_get_values=function(args,doc,dt,dn,user_callback){var call_back=function(r,rt
|
|||
refresh_field(fl[i],dn,args.table_field);else
|
||||
refresh_field(fl[i]);}}
|
||||
$c('webnotes.widgets.form.get_fields',args,call_back);}
|
||||
get_server_fields=function(method,arg,table_field,doc,dt,dn,allow_edit,call_back){if(!allow_edit)freeze('Fetching Data...');$c('runserverobj',args={'method':method,'docs':compress_doclist([doc]),'arg':arg},function(r,rt){if(r.message){var d=locals[dt][dn];var field_dict=eval('var a='+r.message+';a');for(var key in field_dict){d[key]=field_dict[key];if(table_field)refresh_field(key,d.name,table_field);else refresh_field(key);}}
|
||||
get_server_fields=function(method,arg,table_field,doc,dt,dn,allow_edit,call_back){if(!allow_edit)freeze('Fetching Data...');$c('runserverobj',args={'method':method,'docs':compress_doclist([doc]),'arg':arg},function(r,rt){if(r.message){var d=locals[dt][dn];var field_dict=r.message;for(var key in field_dict){d[key]=field_dict[key];if(table_field)refresh_field(key,d.name,table_field);else refresh_field(key);}}
|
||||
if(call_back){doc=locals[doc.doctype][doc.name];call_back(doc,dt,dn);}
|
||||
if(!allow_edit)unfreeze();});}
|
||||
set_multiple=function(dt,dn,dict,table_field){var d=locals[dt][dn];for(var key in dict){d[key]=dict[key];if(table_field)refresh_field(key,d.name,table_field);else refresh_field(key);}}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ function $c(command, args, fn, on_timeout, no_spinner, freeze_msg) {
|
|||
var rtxt = req.responseText;
|
||||
|
||||
try {
|
||||
var r = eval("var a="+rtxt+";a");
|
||||
var r = JSON.parse(rtxt);
|
||||
} catch(e) {
|
||||
alert('Handler Exception:' + rtxt);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ get_server_fields = function(method, arg, table_field, doc, dt, dn, allow_edit,
|
|||
function(r, rt) {
|
||||
if (r.message) {
|
||||
var d = locals[dt][dn];
|
||||
var field_dict = eval('var a='+r.message+';a');
|
||||
|
||||
var field_dict = r.message;
|
||||
for(var key in field_dict) {
|
||||
d[key] = field_dict[key];
|
||||
if (table_field) refresh_field(key, d.name, table_field);
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ unfreeze();return false;}}
|
|||
var pending_req=0;function newHttpReq(){if(!isIE)
|
||||
var r=new XMLHttpRequest();else if(window.ActiveXObject)
|
||||
var r=new ActiveXObject("Microsoft.XMLHTTP");return r;}
|
||||
function $c(command,args,fn,on_timeout,no_spinner,freeze_msg){var req=newHttpReq();ret_fn=function(){if(checkResponse(req,on_timeout,no_spinner,freeze_msg)){if(!no_spinner)hide_loading();var rtxt=req.responseText;try{var r=eval("var a="+rtxt+";a");}catch(e){alert('Handler Exception:'+rtxt);return;}
|
||||
function $c(command,args,fn,on_timeout,no_spinner,freeze_msg){var req=newHttpReq();ret_fn=function(){if(checkResponse(req,on_timeout,no_spinner,freeze_msg)){if(!no_spinner)hide_loading();var rtxt=req.responseText;try{var r=JSON.parse(rtxt);}catch(e){alert('Handler Exception:'+rtxt);return;}
|
||||
if(freeze_msg)unfreeze();if(!validate_session(r,rtxt))return;if(r.exc){errprint(r.exc);};if(r.server_messages){msgprint(r.server_messages);};if(r.docs){LocalDB.sync(r.docs);}
|
||||
saveAllowed=true;if(fn)fn(r,rtxt);}}
|
||||
req.onreadystatechange=ret_fn;req.open("POST",outUrl,true);req.setRequestHeader("ENCTYPE","multipart/form-data");req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");args['cmd']=command;req.send(makeArgString(args));if(!no_spinner)set_loading();if(freeze_msg)freeze(freeze_msg,1);}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue