blob: 3aa9049e558e0b8c551df90518dd701b1336dbe5 [file] [log] [blame]
Anand Doshieaaf6512012-02-24 15:29:07 +05301wn.provide('erpnext.desktop');
2
3erpnext.desktop.gradient = "<style>\
4 .case-%(name)s {\
5 background: %(start)s; /* Old browsers */\
Rushabh Mehta12852e72012-02-29 15:11:06 +05306 background: -moz-radial-gradient(center, ellipse cover, %(start)s 0%%, %(middle)s 44%%, %(end)s 100%%); /* FF3.6+ */\
7 background: -webkit-gradient(radial, center center, 0px, center center, 100%%, color-stop(0%%,%(start)s), color-stop(44%%,%(middle)s), color-stop(100%%,%(end)s)); /* Chrome,Safari4+ */\
8 background: -webkit-radial-gradient(center, ellipse cover, %(start)s 0%%,%(middle)s 44%%,%(end)s 100%%); /* Chrome10+,Safari5.1+ */\
9 background: -o-radial-gradient(center, ellipse cover, %(start)s 0%%,%(middle)s 44%%,%(end)s 100%%); /* Opera 12+ */\
10 background: -ms-radial-gradient(center, ellipse cover, %(start)s 0%%,%(middle)s 44%%,%(end)s 100%%); /* IE10+ */\
11 background: radial-gradient(center, ellipse cover, %(start)s 0%%,%(middle)s 44%%,%(end)s 100%%); /* W3C */\
Anand Doshieaaf6512012-02-24 15:29:07 +053012 }\
13 </style>"
14
15erpnext.desktop.refresh = function() {
16 erpnext.desktop.add_classes();
17 erpnext.desktop.render();
18}
19
20erpnext.desktop.add_classes = function() {
21 var classes = [
Anand Doshidb628762012-02-24 17:56:00 +053022 { name: 'red', start: '#A90329', middle: '#8F0222', end: '#6D0019' },
23 { name: 'brown', start: '#723e02', middle: '#633501', end: '#4a2700' },
24 { name: 'green', start: '#4b5602', middle: '#3f4901', end: '#313800' },
25 { name: 'blue', start: '#026584', middle: '#025770', end: '#004256' },
26 { name: 'yellow', start: '#be7902', middle: '#a66a02', end: '#865500' },
27 { name: 'purple', start: '#4d017d', middle: '#410169', end: '#310050' },
28 { name: 'ocean', start: '#02a47e', middle: '#018d6c', end: '#006a51' },
29 { name: 'pink', start: '#a40281', middle: '#8d016e', end: '#6a0053' },
30 { name: 'grey', start: '#545454', middle: '#484848', end: '#363636' },
31 { name: 'dark-red', start: '#68021a', middle: '#590116', end: '#440010' },
32 { name: 'leaf-green', start: '#b0a400', middle: '#968c00', end: '#726a00' },
33 //{ name: 'dark-blue', start: '#023bae', middle: '#013295', end: '#002672' },
34 { name: 'bright-green', start: '#03ad1f', middle: '#02941a', end: '#007213' },
35 { name: 'bright-yellow', start: '#ffd65e', middle: '#febf04', end: '#ed9017' },
36 { name: 'peacock', start: '#026584', middle: '#026584', end: '#322476' },
37 { name: 'violet', start: '#50448e', middle: '#473b7f', end: '#3a3169' },
38 { name: 'ultra-dark-green', start: '#014333', middle: '#01372b', end: '#002a20' },
Anand Doshieaaf6512012-02-24 15:29:07 +053039 ];
40 $.each(classes, function(i, v) {
41 $(repl(erpnext.desktop.gradient, v)).appendTo('head');
42 });
43}
44
45erpnext.desktop.render = function() {
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053046 var icons = {
47 'Accounts': { gradient: 'blue', sprite: 'account', label: 'Accounts'},
48 'Selling': { gradient: 'green', sprite: 'selling', label: 'Selling'},
49 'Stock': { gradient: 'yellow', sprite: 'stock', label: 'Stock'},
50 'Buying': { gradient: 'red', sprite: 'buying', label: 'Buying'},
51 'Support': { gradient: 'purple', sprite: 'support', label: 'Support'},
52 'HR': { gradient: 'ocean', sprite: 'hr', label: 'Human<br />Resources'},
53 'Projects': { gradient: 'violet', sprite: 'project', label: 'Projects'},
54 'Production': { gradient: 'dark-red', sprite: 'production', label: 'Production'},
55 'Website': { gradient: 'leaf-green', sprite: 'website', label: 'Website'},
56 'Activity': { gradient: 'brown', sprite: 'feed', label: 'Activity'},
57 'Setup': { gradient: 'grey', sprite: 'setting', label: 'Setup'},
58 'Dashboard': { gradient: 'bright-green', sprite: 'dashboard', label: 'Dashboard'},
59 'To Do': { gradient: 'bright-yellow', sprite: 'todo', label: 'To Do'},
60 'Messages': { gradient: 'pink', sprite: 'messages', label: 'Messages'},
61 'Calendar': { gradient: 'peacock', sprite: 'calendar', label: 'Calendar'},
62 'Knowledge Base': { gradient: 'ultra-dark-green', sprite: 'kb', label: 'Knowledge<br />Base'}
63 }
64
Anand Doshieaaf6512012-02-24 15:29:07 +053065
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053066 var add_icon = function(m) {
67 var icon = icons[m];
68 icon.link = erpnext.modules[m];
Rushabh Mehta17da7642012-02-28 18:56:56 +053069 $('#icon-grid').append(repl('\
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053070 <div id="%(sprite)s" class="case-wrapper"><a href="#!%(link)s">\
Anand Doshieaaf6512012-02-24 15:29:07 +053071 <div class="case-border case-%(gradient)s">\
72 <div class="sprite-image sprite-%(sprite)s"></div>\
73 </div></a>\
74 <div class="case-label">%(label)s</div>\
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053075 </div>', icon));
Rushabh Mehta17da7642012-02-28 18:56:56 +053076 }
77
Rushabh Mehta17da7642012-02-28 18:56:56 +053078 // setup
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053079
80 for(var i in wn.boot.modules_list) {
81 var m = wn.boot.modules_list[i];
Rushabh Mehta12852e72012-02-29 15:11:06 +053082 if(m!='Setup')
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053083 add_icon(m);
84 }
85
Rushabh Mehta17da7642012-02-28 18:56:56 +053086 if(user_roles.indexOf('System Manager')!=-1)
Rushabh Mehtaa38bbe22012-02-29 10:55:43 +053087 add_icon('Setup')
Rushabh Mehta17da7642012-02-28 18:56:56 +053088
89 // apps
Anand Doshidb628762012-02-24 17:56:00 +053090 erpnext.desktop.show_pending_notifications();
91
92}
93
94erpnext.desktop.show_pending_notifications = function() {
Anand Doshi5b1beeb2012-02-27 17:17:48 +053095 $('#messages a:first').prepend('<div id="msg_count" class="circle" title="Unread Messages">\
Anand Doshidb628762012-02-24 17:56:00 +053096 <span class="circle-text"></span></div>');
97 $('#msg_count').toggle(false);
98 update_messages();
99
Anand Doshieaaf6512012-02-24 15:29:07 +0530100}
101
102pscript.onload_desktop = function() {
103 // load desktop
104 erpnext.desktop.refresh();
105}
106