desktop: first cut
This commit is contained in:
parent
b73fa49f34
commit
eaaf65131b
0
erpnext/home/page/desktop/__init__.py
Normal file
0
erpnext/home/page/desktop/__init__.py
Normal file
95
erpnext/home/page/desktop/desktop.css
Normal file
95
erpnext/home/page/desktop/desktop.css
Normal file
@ -0,0 +1,95 @@
|
||||
/* Sprite CSS */
|
||||
.sprite-account{ background-position: 0 0; width: 32px; height: 40px; }
|
||||
.sprite-selling{ background-position: 0 -90px; width: 40px; height: 40px; }
|
||||
.sprite-calendar{ background-position: 0 -180px; width: 35px; height: 40px; }
|
||||
.sprite-dashboard{ background-position: 0 -270px; width: 40px; height: 29px; }
|
||||
.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-production{ 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-buying{ 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("images/sprite-desktop.png"); }
|
||||
|
||||
|
||||
.sprite-account{ margin-top: 8px; margin-left: 12px; }
|
||||
.sprite-selling{ margin-top: 8px; margin-left: 8px; }
|
||||
.sprite-stock{ margin-top: 8px; margin-left: 8px; }
|
||||
.sprite-buying{ margin-top: 8px; margin-left: 12px; }
|
||||
.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-production{ margin-top: 10px; margin-left: 8px; }
|
||||
.sprite-website{ margin-top: 8px; margin-left: 8px; }
|
||||
.sprite-setting{ margin-top: 8px; margin-left: 8px; }
|
||||
.sprite-dashboard{ margin-top: 14px; 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;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border: 4px solid white;
|
||||
box-shadow: 0 0 10px 1px black;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.case-wrapper {
|
||||
margin: 24px;
|
||||
float: left;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.case-label {
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
padding-top: 10px;
|
||||
text-align: center;
|
||||
text-shadow: 1px 1px 5px #000, 3px 3px 5px #000;
|
||||
}
|
||||
|
||||
/* Hover and click effects */
|
||||
.case-border:hover {
|
||||
animation: hover-effect 0.5s;
|
||||
-moz-animation: hover-effect 0.5s; /* Firefox */
|
||||
-webkit-animation: hover-effect 0.5s; /* Safari and Chrome */
|
||||
box-shadow: 0 0 2px 0 black, 0 0 10px 1px white;
|
||||
}
|
||||
|
||||
.case-border:active, .case-border:focus {
|
||||
box-shadow: 0 0 5px 2px black;
|
||||
}
|
||||
|
||||
@keyframes hover-effect
|
||||
{
|
||||
from {box-shadow: 0 0 10px 1px black}
|
||||
to {box-shadow: 0 0 2px 0 black, 0 0 10px 1px white;}
|
||||
}
|
||||
|
||||
@-moz-keyframes hover-effect /* Firefox */
|
||||
{
|
||||
from {box-shadow: 0 0 10px 1px black}
|
||||
to {box-shadow: 0 0 2px 0 black, 0 0 10px 1px white;}
|
||||
}
|
||||
|
||||
@-webkit-keyframes hover-effect /* Safari and Chrome */
|
||||
{
|
||||
from {box-shadow: 0 0 10px 1px black}
|
||||
to {box-shadow: 0 0 2px 0 black, 0 0 10px 1px white;}
|
||||
}
|
||||
|
6
erpnext/home/page/desktop/desktop.html
Normal file
6
erpnext/home/page/desktop/desktop.html
Normal file
@ -0,0 +1,6 @@
|
||||
<div style="min-height: 300px; background: None; text-align: center;
|
||||
margin: 0px auto;">
|
||||
<div id="icon-grid">
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both"></div>
|
79
erpnext/home/page/desktop/desktop.js
Normal file
79
erpnext/home/page/desktop/desktop.js
Normal file
@ -0,0 +1,79 @@
|
||||
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() {
|
||||
var classes = [
|
||||
{ name: 'red', start: '#A90329', middle: '#8F0222', end: '#6D0019' },
|
||||
{ name: 'brown', start: '#723e02', middle: '#633501', end: '#4a2700' },
|
||||
{ name: 'green', start: '#4b5602', middle: '#3f4901', end: '#313800' },
|
||||
{ name: 'blue', start: '#026584', middle: '#025770', end: '#004256' },
|
||||
{ name: 'yellow', start: '#be7902', middle: '#a66a02', end: '#865500' },
|
||||
{ name: 'purple', start: '#4d017d', middle: '#410169', end: '#310050' },
|
||||
{ name: 'ocean', start: '#02a47e', middle: '#018d6c', end: '#006a51' },
|
||||
{ name: 'pink', start: '#a40281', middle: '#8d016e', end: '#6a0053' },
|
||||
{ name: 'grey', start: '#545454', middle: '#484848', end: '#363636' },
|
||||
{ name: 'dark-red', start: '#68021a', middle: '#590116', end: '#440010' },
|
||||
{ name: 'leaf-green', start: '#b0a400', middle: '#968c00', end: '#726a00' },
|
||||
{ name: 'dark-blue', start: '#023bae', middle: '#013295', end: '#002672' },
|
||||
{ name: 'bright-green', start: '#03ad1f', middle: '#02941a', end: '#007213' },
|
||||
{ name: 'bright-yellow', start: '#ffd65e', middle: '#febf04', end: '#ed9017' },
|
||||
];
|
||||
$.each(classes, function(i, v) {
|
||||
$(repl(erpnext.desktop.gradient, v)).appendTo('head');
|
||||
});
|
||||
}
|
||||
|
||||
erpnext.desktop.render = function() {
|
||||
var icons = [
|
||||
{ gradient: 'brown', sprite: 'feed', label: 'Activity', link: '#!Event Updates' },
|
||||
{ gradient: 'blue', sprite: 'account', label: 'Accounts', link: '#!accounts-home' },
|
||||
{ gradient: 'green', sprite: 'selling', label: 'Selling', link: '#!selling-home' },
|
||||
{ gradient: 'yellow', sprite: 'stock', label: 'Stock', link: '#!stock-home' },
|
||||
{ gradient: 'red', sprite: 'buying', label: 'Buying', link: '#!buying-home' },
|
||||
{ gradient: 'purple', sprite: 'support', label: 'Support', link: '#!support-home' },
|
||||
{ gradient: 'ocean', sprite: 'hr', label: 'Human<br />Resources', link: '#!hr-home' },
|
||||
{ gradient: 'red', sprite: 'project', label: 'Projects', link: '#!projects-home' },
|
||||
{ gradient: 'dark-red', sprite: 'production', label: 'Production', link: '#!production-home' },
|
||||
{ gradient: 'leaf-green', sprite: 'website', label: 'Website', link: '#!website-home' },
|
||||
{ gradient: 'grey', sprite: 'setting', label: 'Settings', link: '#!Setup' },
|
||||
{ gradient: 'bright-green', sprite: 'dashboard', label: 'Dashboard', link: '#!dashboard' },
|
||||
//{ gradient: 'dark-blue', sprite: 'report', label: 'Report' },
|
||||
{ gradient: 'pink', sprite: 'messages', label: 'Messages', link: '#!messages' },
|
||||
{ gradient: 'bright-yellow', sprite: 'todo', label: 'To Do', link: '#!todo' },
|
||||
{ gradient: 'red', sprite: 'calendar', label: 'Calendar', link: '#!calendar' },
|
||||
{ gradient: 'red', sprite: 'kb', label: 'Knowledge<br />Base', link: '#!questions' },
|
||||
]
|
||||
|
||||
$.each(icons, function(i, v) {
|
||||
var icon_case = $('#icon-grid').append(repl('\
|
||||
<div class="case-wrapper"><a href=%(link)s>\
|
||||
<div class="case-border case-%(gradient)s">\
|
||||
<div class="sprite-image sprite-%(sprite)s"></div>\
|
||||
</div></a>\
|
||||
<div class="case-label">%(label)s</div>\
|
||||
</div>', v));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
pscript.onload_desktop = function() {
|
||||
// load desktop
|
||||
erpnext.desktop.refresh();
|
||||
}
|
||||
|
28
erpnext/home/page/desktop/desktop.txt
Normal file
28
erpnext/home/page/desktop/desktop.txt
Normal file
@ -0,0 +1,28 @@
|
||||
# Page, desktop
|
||||
[
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2012-02-24 11:37:43',
|
||||
'docstatus': 0,
|
||||
'modified': '2012-02-24 11:37:43',
|
||||
'modified_by': u'Administrator',
|
||||
'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'module': u'Home',
|
||||
'name': '__common__',
|
||||
'page_name': u'desktop',
|
||||
'standard': u'Yes',
|
||||
'title': u'Desktop'
|
||||
},
|
||||
|
||||
# Page, desktop
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': u'desktop'
|
||||
}
|
||||
]
|
@ -27,10 +27,11 @@ def execute():
|
||||
reload_doc('production', 'page', 'production_home')
|
||||
reload_doc('projects', 'page', 'projects_home')
|
||||
reload_doc('website', 'page', 'website_home')
|
||||
reload_doc('home', 'page', 'desktop')
|
||||
|
||||
webnotes.conn.commit()
|
||||
webnotes.conn.sql("""create table __SchedulerLog (
|
||||
`timestamp` timestamp,
|
||||
method varchar(200),
|
||||
error text
|
||||
) engine=MyISAM""")
|
||||
) engine=MyISAM""")
|
||||
|
BIN
images/sprite-desktop.png
Normal file
BIN
images/sprite-desktop.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Loading…
x
Reference in New Issue
Block a user