desktop icons now use font-awesome
diff --git a/home/page/desktop/desktop.css b/home/page/desktop/desktop.css
index 88a437c..7990216 100644
--- a/home/page/desktop/desktop.css
+++ b/home/page/desktop/desktop.css
@@ -1,49 +1,13 @@
/* Sprite CSS */
-.sprite-account{ background-position: 0 0; width: 32px; height: 40px; }
-.sprite-buying{ background-position: 0 -90px; width: 40px; height: 40px; }
-.sprite-calendar{ background-position: 0 -180px; width: 35px; height: 40px; }
-.sprite-feed{ background-position: 0 -349px; width: 32px; height: 40px; }
-.sprite-hr{ background-position: 0 -439px; width: 40px; height: 32px; }
-.sprite-kb{ background-position: 0 -521px; width: 24px; height: 39px; }
-.sprite-messages{ background-position: 0 -610px; width: 40px; height: 26px; }
-.sprite-manufacturing{ background-position: 0 -686px; width: 40px; height: 33px; }
-.sprite-project{ background-position: 0 -769px; width: 40px; height: 22px; }
-.sprite-report{ background-position: 0 -841px; width: 29px; height: 40px; }
-.sprite-selling{ background-position: 0 -931px; width: 34px; height: 40px; }
-.sprite-setting{ background-position: 0 -1021px; width: 37px; height: 40px; }
-.sprite-stock{ background-position: 0 -1111px; width: 34px; height: 39px; }
-.sprite-support{ background-position: 0 -1200px; width: 40px; height: 40px; }
-.sprite-todo{ background-position: 0 -1290px; width: 40px; height: 34px; }
-.sprite-website{ background-position: 0 -1374px; width: 40px; height: 40px; }
-
-.sprite-image { background-image: url("app/images/sprite-desktop.png"); }
-
-
-.sprite-account{ margin-top: 8px; margin-left: 12px; }
-.sprite-selling{ margin-top: 8px; margin-left: 12px; }
-.sprite-stock{ margin-top: 8px; margin-left: 8px; }
-.sprite-buying{ margin-top: 8px; margin-left: 8px; }
-.sprite-support{ margin-top: 8px; margin-left: 8px; }
-.sprite-hr{ margin-top: 12px; margin-left: 8px; }
-.sprite-project{ margin-top: 16px; margin-left: 8px; }
-.sprite-manufacturing{ margin-top: 10px; margin-left: 8px; }
-.sprite-website{ margin-top: 8px; margin-left: 8px; }
-.sprite-setting{ margin-top: 8px; margin-left: 8px; }
-.sprite-report{ margin-top: 8px; margin-left: 14px; }
-
-.sprite-messages{ margin-top: 14px; margin-left: 8px; }
-.sprite-todo{ margin-top: 10px; margin-left: 10px; }
-.sprite-calendar{ margin-top: 8px; margin-left: 10px; }
-.sprite-kb{ margin-top: 8px; margin-left: 16px; }
-.sprite-feed{ margin-top: 8px; margin-left: 14px; }
.case-border {
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
- width: 56px;
- height: 56px;
- border: 4px solid white;
+ width: 32px;
+ height: 32px;
+ padding: 12px;
+ border: 2px solid white;
box-shadow: 0 0 4px 1px black;
-moz-box-shadow: 0 0 4px 1px black;
-webkit-box-shadow: 0 0 4px 1px black;
@@ -58,6 +22,12 @@
height: 100px;
}
+.case-wrapper i {
+ font-size: 32px;
+ color: #f8f8f8;
+ margin-top: 8px;
+}
+
.case-label {
color: white;
padding-top: 10px;
diff --git a/home/page/desktop/desktop.js b/home/page/desktop/desktop.js
index f9a3b54..e154b3a 100644
--- a/home/page/desktop/desktop.js
+++ b/home/page/desktop/desktop.js
@@ -1,74 +1,48 @@
wn.provide('erpnext.desktop');
-erpnext.desktop.gradient = "<style>\
- .case-%(name)s {\
- background: %(start)s; /* Old browsers */\
- background: -moz-radial-gradient(center, ellipse cover, %(start)s 0%, %(middle)s 44%, %(end)s 100%); /* FF3.6+ */\
- 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+ */\
- background: -webkit-radial-gradient(center, ellipse cover, %(start)s 0%,%(middle)s 44%,%(end)s 100%); /* Chrome10+,Safari5.1+ */\
- background: -o-radial-gradient(center, ellipse cover, %(start)s 0%,%(middle)s 44%,%(end)s 100%); /* Opera 12+ */\
- background: -ms-radial-gradient(center, ellipse cover, %(start)s 0%,%(middle)s 44%,%(end)s 100%); /* IE10+ */\
- background: radial-gradient(center, ellipse cover, %(start)s 0%,%(middle)s 44%,%(end)s 100%); /* W3C */\
- }\
- </style>"
-
erpnext.desktop.refresh = function() {
- erpnext.desktop.add_classes();
erpnext.desktop.render();
-}
-erpnext.desktop.add_classes = function() {
- $.each(wn.module_css_classes, function(i, v) {
- v.name = i;
- $(repl(erpnext.desktop.gradient, v)).appendTo('head');
+ $("#icon-grid").sortable({
+ update: function() {
+ new_order = [];
+ $("#icon-grid .case-wrapper").each(function(i, e) {
+ new_order.push($(this).attr("data-name"));
+ });
+ wn.user.set_default("_desktop_items", new_order);
+ }
});
}
erpnext.desktop.render = function() {
- var icons = {
- 'Accounts': { sprite: 'account', label: 'Accounts'},
- 'Selling': { sprite: 'selling', label: 'Selling'},
- 'Stock': { sprite: 'stock', label: 'Stock'},
- 'Buying': { sprite: 'buying', label: 'Buying'},
- 'Support': { sprite: 'support', label: 'Support'},
- 'HR': { sprite: 'hr', label: 'Human<br />Resources'},
- 'Projects': { sprite: 'project', label: 'Projects'},
- 'Manufacturing': { sprite: 'manufacturing', label: 'Manufacturing'},
- 'Website': { sprite: 'website', label: 'Website'},
- 'Activity': { sprite: 'feed', label: 'Activity'},
- 'Setup': { sprite: 'setting', label: 'Setup'},
- 'To Do': { sprite: 'todo', label: 'To Do'},
- 'Messages': { sprite: 'messages', label: 'Messages'},
- 'Calendar': { sprite: 'calendar', label: 'Calendar'},
- 'Knowledge Base': { sprite: 'kb', label: 'Knowledge<br />Base'}
- }
-
var add_icon = function(m) {
- var icon = icons[m];
- icon.link = erpnext.modules[m];
- icon.gradient = wn.module_css_map[m];
+ var module = wn.modules[m];
+ if(!module.label)
+ module.label = m;
+ module.name = m;
+ module.gradient_css = wn.get_gradient_css(module.color, 45);
$('#icon-grid').append(repl('\
- <div id="%(sprite)s" class="case-wrapper"><a href="#!%(link)s">\
- <div class="case-border case-%(gradient)s">\
- <div class="sprite-image sprite-%(sprite)s"></div>\
+ <div id="module-icon-%(link)s" class="case-wrapper" data-name="%(name)s"><a href="#%(link)s">\
+ <div class="case-border" style="%(gradient_css)s">\
+ <i class="%(icon)s"></i>\
</div></a>\
<div class="case-label">%(label)s</div>\
- </div>', icon));
+ </div>', module));
}
- // setup
- for(var i in wn.boot.modules_list) {
- var m = wn.boot.modules_list[i];
+ // modules
+ var modules_list = wn.user.get_default("_desktop_items") || wn.boot.modules_list;
+ $.each(modules_list, function(i, m) {
if(!in_list(['Setup', 'Core'], m) && wn.boot.profile.allow_modules.indexOf(m)!=-1)
add_icon(m);
- }
+ })
-
+ // setup
if(user_roles.indexOf('System Manager')!=-1)
add_icon('Setup')
- // apps
+ // notifications
erpnext.desktop.show_pending_notifications();
}
@@ -100,12 +74,12 @@
}
- add_circle('messages', 'unread_messages', 'Unread Messages');
- add_circle('support', 'open_support_tickets', 'Open Support Tickets');
- add_circle('todo', 'things_todo', 'Things To Do');
- add_circle('calendar', 'todays_events', 'Todays Events');
- add_circle('project', 'open_tasks', 'Open Tasks');
- add_circle('kb', 'unanswered_questions', 'Unanswered Questions');
+ add_circle('module-icon-messages', 'unread_messages', 'Unread Messages');
+ add_circle('module-icon-support', 'open_support_tickets', 'Open Support Tickets');
+ add_circle('module-icon-todo', 'things_todo', 'Things To Do');
+ add_circle('module-icon-calendar', 'todays_events', 'Todays Events');
+ add_circle('module-icon-project', 'open_tasks', 'Open Tasks');
+ add_circle('module-icon-kb', 'unanswered_questions', 'Unanswered Questions');
erpnext.update_messages();