From 9ec8024db7ff1632a6b2ec9f9cfa8efb08872214 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Jul 2012 16:46:12 +0530 Subject: [PATCH 1/6] show order type icon in sales order list view --- .../selling/doctype/sales_order/listview.js | 28 ++- public/css/all-app.css | 27 ++- public/css/all-web.css | 22 ++- public/js/all-app.js | 165 ++++++++---------- public/js/all-web.js | 19 +- public/js/fields.js | 9 +- public/js/report-legacy.js | 2 +- 7 files changed, 152 insertions(+), 120 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/listview.js b/erpnext/selling/doctype/sales_order/listview.js index cbe35daae1..3fa63a5d7f 100644 --- a/erpnext/selling/doctype/sales_order/listview.js +++ b/erpnext/selling/doctype/sales_order/listview.js @@ -3,21 +3,23 @@ wn.doclistviews['Sales Order'] = wn.views.ListView.extend({ init: function(d) { this._super(d) this.fields = this.fields.concat([ - "`tabSales Order`.customer_name", + "`tabSales Order`.customer_name", + "`tabSales Order`.status", + "`tabSales Order`.order_type", "ifnull(`tabSales Order`.per_delivered,0) as per_delivered", "ifnull(`tabSales Order`.per_billed,0) as per_billed", "`tabSales Order`.currency", "ifnull(`tabSales Order`.grand_total_export,0) as grand_total_export" ]); - this.stats = this.stats.concat(['status', 'company']); + this.stats = this.stats.concat(['status', 'order_type', 'company']); }, columns: [ {width: '3%', content: 'check'}, - {width: '5%', content:'avatar'}, - {width: '3%', content:'docstatus'}, - {width: '15%', content:'name'}, - {width: '32%', content:'customer_name+tags', css: {color:'#222'}}, + {width: '5%', content: 'avatar'}, + {width: '3%', content: 'docstatus'}, + {width: '15%', content: 'name'}, + {width: '29%', content: 'customer_name+tags', css: {color:'#222'}}, { width: '18%', content: function(parent, data) { @@ -25,7 +27,19 @@ wn.doclistviews['Sales Order'] = wn.views.ListView.extend({ }, css: {'text-align':'right'} }, - {width: '8%', content: 'per_delivered', type:'bar-graph', label:'Delivered'}, + { + width: '11%', + content: function(parent, data, me) { + var order_type = data.order_type.toLowerCase(); + + if (order_type === 'sales') { + me.render_icon(parent, 'icon-tag', data.order_type); + me.render_bar_graph(parent, data, 'per_billed', 'Delivered'); + } else if (order_type === 'maintenance') { + me.render_icon(parent, 'icon-wrench', data.order_type); + } + }, + }, {width: '8%', content: 'per_billed', type:'bar-graph', label:'Billed'}, {width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}} ] diff --git a/public/css/all-app.css b/public/css/all-app.css index 84ac2758c3..ecdbe652f9 100644 --- a/public/css/all-app.css +++ b/public/css/all-app.css @@ -2314,6 +2314,11 @@ div.form-title { border-bottom: 1px solid #eee; } +.appframe-titlebar .label { + vertical-align: middle; + margin-right: 7px; +} + div.form-section-head { margin: 11px -15px 3px -15px; border-top: 1px solid #ccc; @@ -3214,6 +3219,8 @@ div.stat-item { height: 18px; border: 1px solid #aaa; border-radius: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; overflow: hidden; } @@ -3222,6 +3229,10 @@ div.stat-bar { left: 0px; height: 100%; z-index: 0; + /* So that this div is also curved like the enclosing one */ + border-radius: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; background: #e0ff84; /* Old browsers */ background: -moz-linear-gradient(top, #e0ff84 0%, #a4e567 100%); /* FF3.6+ */ @@ -3237,12 +3248,8 @@ div.stat-bar { * lib/css/ui/views.css */ -.breadcrumbs { - color: #000000; -} - -.breadcrumbs a { - color: #000000; +.breadcrumb-area, .breadcrumb-area span { + vertical-align: middle; } div.appframe-titlebar { @@ -3260,6 +3267,14 @@ div.appframe-titlebar { border-radius: 5px 5px 0px 0px; -webkit-border-radius: 5px 5px 0px 0px; -moz-border-radius: 5px 5px 0px 0px; + + text-shadow: 0px 1px 1px #fff; + color: #555; +} + +span.appframe-title { + font-size: 160%; + font-weight: bold; } div.appframe-toolbar { diff --git a/public/css/all-web.css b/public/css/all-web.css index ec2fbcd333..332471b01b 100644 --- a/public/css/all-web.css +++ b/public/css/all-web.css @@ -2470,6 +2470,8 @@ div.stat-item { height: 18px; border: 1px solid #aaa; border-radius: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; overflow: hidden; } @@ -2478,6 +2480,10 @@ div.stat-bar { left: 0px; height: 100%; z-index: 0; + /* So that this div is also curved like the enclosing one */ + border-radius: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; background: #e0ff84; /* Old browsers */ background: -moz-linear-gradient(top, #e0ff84 0%, #a4e567 100%); /* FF3.6+ */ @@ -2493,12 +2499,8 @@ div.stat-bar { * lib/css/ui/views.css */ -.breadcrumbs { - color: #000000; -} - -.breadcrumbs a { - color: #000000; +.breadcrumb-area, .breadcrumb-area span { + vertical-align: middle; } div.appframe-titlebar { @@ -2516,6 +2518,14 @@ div.appframe-titlebar { border-radius: 5px 5px 0px 0px; -webkit-border-radius: 5px 5px 0px 0px; -moz-border-radius: 5px 5px 0px 0px; + + text-shadow: 0px 1px 1px #fff; + color: #555; +} + +span.appframe-title { + font-size: 160%; + font-weight: bold; } div.appframe-toolbar { diff --git a/public/js/all-app.js b/public/js/all-app.js index a9d1967b75..e8c3603fbb 100644 --- a/public/js/all-app.js +++ b/public/js/all-app.js @@ -249,7 +249,7 @@ throw new SyntaxError('JSON.parse');};}}()); * lib/js/wn/router.js */ wn.re_route={} -wn.route=function(){if(wn.re_route[window.location.hash]){window.location.hash=wn.re_route[window.location.hash];} +wn.route=function(){if(wn.re_route[window.location.hash]){var re_route_val=wn.get_route_str(wn.re_route[window.location.hash]);var cur_route_val=wn.get_route_str(wn._cur_route);if(decodeURIComponent(re_route_val)===decodeURIComponent(cur_route_val)){window.history.back();return;}else{window.location.hash=wn.re_route[window.location.hash];}} wn._cur_route=window.location.hash;route=wn.get_route();switch(route[0]){case"List":wn.views.doclistview.show(route[1]);break;case"Form":if(route.length>3){route[2]=route.splice(2).join('/');} wn.views.formview.show(route[1],route[2]);break;case"Report":wn.views.reportview.show(route[1],route[2]);break;case"Report2":wn.views.reportview2.show();break;default:wn.views.pageview.show(route[0]);}} wn.get_route=function(route){return $.map(wn.get_route_str(route).split('/'),function(r){return decodeURIComponent(r);});} @@ -349,7 +349,8 @@ df.original_type=df.fieldtype;df.description='';df.reqd=0;if(fieldtype){df.field if(df.fieldtype=='Check'){df.fieldtype='Select';df.options='No\nYes';}else if(['Text','Text Editor','Code','Link'].indexOf(df.fieldtype)!=-1){df.fieldtype='Data';}},set_default_condition:function(df,fieldtype){if(!fieldtype){if(df.fieldtype=='Data'){this.$w.find('.condition').val('like');}else{this.$w.find('.condition').val('=');}}},get_value:function(){var me=this;var val=me.field.get_value();var cond=me.$w.find('.condition').val();if(me.field.df.original_type=='Check'){val=(val=='Yes'?1:0);} if(cond=='like'){val=val+'%';} return[me.fieldselect.$select.find('option:selected').attr('table'),me.field.df.fieldname,me.$w.find('.condition').val(),cstr(val)];}});wn.ui.FieldSelect=Class.extend({init:function(parent,doctype,filter_fields,with_blank){this.doctype=doctype;this.fields_by_name={};this.with_blank=with_blank;this.$select=$('').appendTo(parent);if(filter_fields){for(var i in filter_fields) -this.add_field_option(this.filter_fields[i])}else{this.build_options();}},build_options:function(){var me=this;me.table_fields=[];var std_filters=[{fieldname:'name',fieldtype:'Data',label:'ID',parent:me.doctype},{fieldname:'modified',fieldtype:'Date',label:'Last Modified',parent:me.doctype},{fieldname:'owner',fieldtype:'Data',label:'Created By',parent:me.doctype},{fieldname:'creation',fieldtype:'Date',label:'Created On',parent:me.doctype},{fieldname:'_user_tags',fieldtype:'Data',label:'Tags',parent:me.doctype}];if(this.with_blank){this.$select.append($('