user background
diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
index b14f1f8..d72c7ae 100644
--- a/erpnext/home/page/activity/activity.js
+++ b/erpnext/home/page/activity/activity.js
@@ -14,7 +14,7 @@
init: function(row, data) {
this.scrub_data(data);
this.add_date_separator(row, data);
- $(row).append(repl('<span %(onclick)s\
+ $(row).append(sprintf('<span %(onclick)s\
class="label %(add_class)s">%(feed_type)s</span>\
%(link)s %(subject)s <span class="user-info">%(by)s</span>', data));
},
diff --git a/erpnext/home/page/profile_settings/profile_settings.js b/erpnext/home/page/profile_settings/profile_settings.js
index 9dac7f6..8ce94f8 100644
--- a/erpnext/home/page/profile_settings/profile_settings.js
+++ b/erpnext/home/page/profile_settings/profile_settings.js
@@ -26,13 +26,15 @@
this.make = function() {
this.head = new PageHeader(this.wrapper, 'My Profile Settings');
- this.head.add_button('Change Password', this.change_password)
+ this.head.add_button('Change Password', this.change_password);
+ this.head.add_button('Change Background', this.change_background);
+
this.tab = make_table($a(this.wrapper, 'div', '', {marginTop:'19px'}),
1, 2, '90%', ['50%', '50%'], {padding:'11px'})
this.img = $a($td(this.tab, 0, 0), 'img');
set_user_img(this.img, user);
- $btn($a($td(this.tab, 0, 0), 'div', '', {marginTop:'11px'}), 'Change Image', this.change_image)
+ $btn($a($td(this.tab, 0, 0), 'div', '', {marginTop:'11px'}), 'Change Image', this.change_image);
this.make_form();
this.load_details();
@@ -105,32 +107,42 @@
//
this.change_image = function() {
- if(!me.change_dialog) {
-
- var d = new Dialog(400,200,'Set Your Profile Image');
- d.make_body([
- ['HTML','wrapper']
- ]);
-
- var w = d.widgets['wrapper'];
- me.uploader = new Uploader(w,
- {
- modulename:'home.page.profile_settings.profile_settings',
- method: 'set_user_image'
- },
- pscript.user_image_upload, 1)
- me.change_dialog = d;
- }
- me.change_dialog.show();
+ var d = new wn.widgets.Dialog({
+ title: 'Set your Profile'
+ })
+ me.uploader = new Uploader(d.body, {
+ modulename:'home.page.profile_settings.profile_settings',
+ method: 'set_user_image'
+ },
+ pscript.user_image_upload, 1)
+ d.show();
+ pscript.open_dialog = d;
+ }
+
+ this.change_background = function() {
+ var d = new wn.widgets.Dialog({
+ title: 'Set Background Image'
+ })
+ me.uploader = new Uploader(d.body, {
+ modulename:'home.page.profile_settings.profile_settings',
+ method: 'set_user_background'
+ },
+ pscript.background_change, 1)
+ d.show();
+ pscript.open_dialog = d;
}
this.make();
}
+pscript.background_change = function(fid) {
+ //erpnext.set_background_image(fid);
+ pscript.open_dialog.hide();
+}
+
pscript.user_image_upload = function(fid) {
msgprint('File Uploaded');
-
if(fid) {
- pscript.myprofile.change_dialog.hide();
+ pscript.open_dialog.hide();
set_user_img(pscript.myprofile.img, user, null, fid);
}
}
diff --git a/erpnext/home/page/profile_settings/profile_settings.py b/erpnext/home/page/profile_settings/profile_settings.py
index f614c75..fb633fd 100644
--- a/erpnext/home/page/profile_settings/profile_settings.py
+++ b/erpnext/home/page/profile_settings/profile_settings.py
@@ -63,6 +63,31 @@
"""
Set uploaded image as user image
"""
- from webnotes.utils.file_manager import add_file_list, remove_all
- remove_all('Profile', webnotes.session['user'])
- add_file_list('Profile', webnotes.session['user'], fname, fid)
+ from webnotes.utils.file_manager import add_file_list, remove_file
+ user = webnotes.session['user']
+
+ # remove old file
+ old_image = webnotes.conn.get_value('Profile', user, 'user_image')
+ if old_image:
+ remove_file('Profile', user, old_image)
+
+ # add new file
+ add_file_list('Profile', user, fname, fid)
+ webnotes.conn.set_value('Profile', user, 'user_image', fid)
+
+@webnotes.whitelist()
+def set_user_background(fid, fname):
+ """
+ Set uploaded image as user image
+ """
+ from webnotes.utils.file_manager import add_file_list, remove_file
+ user = webnotes.session['user']
+
+ # remove old file
+ old_image = webnotes.conn.get_value('Profile', user, 'background_image')
+ if old_image:
+ remove_file('Profile', user, old_image)
+
+ # add new file
+ add_file_list('Profile', user, fname, fid)
+ webnotes.conn.set_value('Profile', user, 'background_image', fid)
diff --git a/erpnext/patches/jan_mar_2012/navupdate.py b/erpnext/patches/jan_mar_2012/navupdate.py
index 18338dd..29939e5 100644
--- a/erpnext/patches/jan_mar_2012/navupdate.py
+++ b/erpnext/patches/jan_mar_2012/navupdate.py
@@ -35,6 +35,7 @@
reload_doc('setup', 'page', 'modules_setup')
reload_doc('utilities', 'page', 'users')
reload_doc('home', 'page', 'activity')
+ reload_doc('core', 'doctype', 'profile')
webnotes.conn.set_value('Control Panel', 'Control Panel', 'home_page',
'desktop')
diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py
index 79fd603..dca9e0c 100644
--- a/erpnext/startup/event_handlers.py
+++ b/erpnext/startup/event_handlers.py
@@ -93,6 +93,8 @@
# if no company, show a dialog box to create a new company
bootinfo['setup_complete'] = webnotes.conn.sql("""select name from
tabCompany limit 1""") and 'Yes' or 'No'
+
+ bootinfo['user_background'] = webnotes.conn.get_value("Profile", webnotes.session['user'], 'background_image') or ''
def get_letter_heads():
"""load letter heads with startup"""
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index aef298c..ad8289e 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -50,6 +50,9 @@
if(wn.boot.custom_css) {
set_style(wn.boot.custom_css);
}
+ if(wn.boot.user_background) {
+ erpnext.set_user_background(wn.boot.user_background);
+ }
if(user == 'Guest'){
if(wn.boot.website_settings.title_prefix) {
@@ -132,6 +135,10 @@
wn.updates.id = setInterval(update_messages, 60000);
}
+erpnext.set_user_background = function(src) {
+ set_style(repl('body { background: url("files/%(src)s") repeat !important;}', {src:src}))
+}
+
// =======================================
// start
diff --git a/erpnext/website/doctype/style_settings/custom_template.css b/erpnext/website/doctype/style_settings/custom_template.css
index e6eeeb3..8eb3d63 100644
--- a/erpnext/website/doctype/style_settings/custom_template.css
+++ b/erpnext/website/doctype/style_settings/custom_template.css
@@ -1,6 +1,6 @@
body {
{% if doc.background_image %}
- background: url("files/{{ doc.background_image }}") repeat !important;
+ background: url("files/{{ doc.background_image }}") repeat;
{% elif doc.background_color %}
background-color: #{{ doc.background_color }};
{% endif %}
diff --git a/js/all-app.js b/js/all-app.js
index aaa12db..e5e7967 100644
--- a/js/all-app.js
+++ b/js/all-app.js
Binary files differ
diff --git a/js/all-web.js b/js/all-web.js
index 0395fc2..1df9639 100644
--- a/js/all-web.js
+++ b/js/all-web.js
@@ -206,7 +206,9 @@
return s;}
var rstrip=function(s,chars){if(!chars)chars=['\n','\t',' '];var last_char=s.substr(s.length-1);while(in_list(chars,last_char)){var s=s.substr(0,this.length-1);last_char=s.substr(this.length-1);}
return s;}
-function repl(s,dict){return sprintf(s,dict);}
+function repl_all(s,s1,s2){var idx=s.indexOf(s1);while(idx!=-1){s=s.replace(s1,s2);idx=s.indexOf(s1);}
+return s;}
+function repl(s,dict){if(s==null)return'';for(key in dict)s=repl_all(s,'%('+key+')s',dict[key]);return s;}
function keys(obj){var mykeys=[];for(key in obj)mykeys[mykeys.length]=key;return mykeys;}
function values(obj){var myvalues=[];for(key in obj)myvalues[myvalues.length]=obj[key];return myvalues;}
function in_list(list,item){for(var i=0;i<list.length;i++)
@@ -1070,6 +1072,7 @@
erpnext.startup.set_globals=function(){pscript.is_erpnext_saas=cint(wn.control_panel.sync_with_gateway)
if(inList(user_roles,'System Manager'))is_system_manager=1;}
erpnext.startup.start=function(){$('#startup_div').html('Starting up...').toggle(true);erpnext.startup.set_globals();if(wn.boot.custom_css){set_style(wn.boot.custom_css);}
+if(wn.boot.user_background){erpnext.set_user_background(wn.boot.user_background);}
if(user=='Guest'){if(wn.boot.website_settings.title_prefix){wn.title_prefix=wn.boot.website_settings.title_prefix;}}else{erpnext.toolbar.setup();erpnext.startup.set_periodic_updates();$('footer').html('<div class="web-footer erpnext-footer">\
Powered by <a href="https://erpnext.com">ERPNext</a></div>');if(in_list(user_roles,'System Manager')&&(wn.boot.setup_complete=='No')){wn.require("erpnext/startup/js/complete_setup.js");erpnext.complete_setup();}}
$('#startup_div').toggle(false);}
@@ -1082,6 +1085,7 @@
if(circle){if(r.message.length){circle.find('span:first').text(r.message.length);circle.toggle(true);}else{circle.toggle(false);}}}else{clearInterval(wn.updates.id);}});}
erpnext.startup.set_periodic_updates=function(){wn.updates={};if(wn.updates.id){clearInterval(wn.updates.id);}
wn.updates.id=setInterval(update_messages,60000);}
+erpnext.set_user_background=function(src){set_style(repl('body { background: url("files/%(src)s") repeat !important;}',{src:src}))}
$(document).bind('startup',function(){erpnext.startup.start();});
/*
* erpnext/website/js/topbar.js