@@ -3,6 +3,7 @@ | |||||
"allow_import": 0, | "allow_import": 0, | ||||
"allow_rename": 1, | "allow_rename": 1, | ||||
"autoname": "Prompt", | "autoname": "Prompt", | ||||
"beta": 0, | |||||
"creation": "2013-02-18 13:36:19", | "creation": "2013-02-18 13:36:19", | ||||
"custom": 0, | "custom": 0, | ||||
"description": "DocType is a Table / Form in the application.", | "description": "DocType is a Table / Form in the application.", | ||||
@@ -239,6 +240,32 @@ | |||||
"set_only_once": 0, | "set_only_once": 0, | ||||
"unique": 0 | "unique": 0 | ||||
}, | }, | ||||
{ | |||||
"allow_on_submit": 0, | |||||
"bold": 0, | |||||
"collapsible": 0, | |||||
"depends_on": "eval: doc.image_field", | |||||
"fieldname": "image_view", | |||||
"fieldtype": "Check", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"ignore_xss_filter": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"label": "Image View", | |||||
"length": 0, | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"precision": "", | |||||
"print_hide": 0, | |||||
"print_hide_if_no_value": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0, | |||||
"unique": 0 | |||||
}, | |||||
{ | { | ||||
"allow_on_submit": 0, | "allow_on_submit": 0, | ||||
"bold": 0, | "bold": 0, | ||||
@@ -1097,7 +1124,7 @@ | |||||
"issingle": 0, | "issingle": 0, | ||||
"istable": 0, | "istable": 0, | ||||
"max_attachments": 0, | "max_attachments": 0, | ||||
"modified": "2016-05-02 18:02:03.227684", | |||||
"modified": "2016-06-01 12:28:01.048158", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Core", | "module": "Core", | ||||
"name": "DocType", | "name": "DocType", | ||||
@@ -3,6 +3,7 @@ | |||||
"allow_import": 0, | "allow_import": 0, | ||||
"allow_rename": 0, | "allow_rename": 0, | ||||
"autoname": "DL.####", | "autoname": "DL.####", | ||||
"beta": 0, | |||||
"creation": "2013-01-29 17:55:08", | "creation": "2013-01-29 17:55:08", | ||||
"custom": 0, | "custom": 0, | ||||
"docstatus": 0, | "docstatus": 0, | ||||
@@ -159,6 +160,32 @@ | |||||
"set_only_once": 0, | "set_only_once": 0, | ||||
"unique": 0 | "unique": 0 | ||||
}, | }, | ||||
{ | |||||
"allow_on_submit": 0, | |||||
"bold": 0, | |||||
"collapsible": 0, | |||||
"depends_on": "eval: doc.image_field", | |||||
"fieldname": "image_view", | |||||
"fieldtype": "Check", | |||||
"hidden": 0, | |||||
"ignore_user_permissions": 0, | |||||
"ignore_xss_filter": 0, | |||||
"in_filter": 0, | |||||
"in_list_view": 0, | |||||
"label": "Image View", | |||||
"length": 0, | |||||
"no_copy": 0, | |||||
"permlevel": 0, | |||||
"precision": "", | |||||
"print_hide": 0, | |||||
"print_hide_if_no_value": 0, | |||||
"read_only": 0, | |||||
"report_hide": 0, | |||||
"reqd": 0, | |||||
"search_index": 0, | |||||
"set_only_once": 0, | |||||
"unique": 0 | |||||
}, | |||||
{ | { | ||||
"allow_on_submit": 0, | "allow_on_submit": 0, | ||||
"bold": 0, | "bold": 0, | ||||
@@ -414,13 +441,14 @@ | |||||
"hide_toolbar": 1, | "hide_toolbar": 1, | ||||
"icon": "icon-glass", | "icon": "icon-glass", | ||||
"idx": 1, | "idx": 1, | ||||
"image_view": 0, | |||||
"in_create": 0, | "in_create": 0, | ||||
"in_dialog": 0, | "in_dialog": 0, | ||||
"is_submittable": 0, | "is_submittable": 0, | ||||
"issingle": 1, | "issingle": 1, | ||||
"istable": 0, | "istable": 0, | ||||
"max_attachments": 0, | "max_attachments": 0, | ||||
"modified": "2016-04-14 13:18:35.095815", | |||||
"modified": "2016-06-01 12:29:28.272410", | |||||
"modified_by": "Administrator", | "modified_by": "Administrator", | ||||
"module": "Custom", | "module": "Custom", | ||||
"name": "Customize Form", | "name": "Customize Form", | ||||
@@ -23,7 +23,8 @@ doctype_properties = { | |||||
'read_only_onload': 'Check', | 'read_only_onload': 'Check', | ||||
'allow_copy': 'Check', | 'allow_copy': 'Check', | ||||
'quick_entry': 'Check', | 'quick_entry': 'Check', | ||||
'max_attachments': 'Int' | |||||
'max_attachments': 'Int', | |||||
'image_view': 'Check' | |||||
} | } | ||||
docfield_properties = { | docfield_properties = { | ||||
@@ -218,7 +218,9 @@ | |||||
"public/js/frappe/list/listview.js", | "public/js/frappe/list/listview.js", | ||||
"public/js/frappe/views/calendar_base.js", | "public/js/frappe/views/calendar_base.js", | ||||
"public/js/frappe/views/calendar.js", | "public/js/frappe/views/calendar.js", | ||||
"public/js/frappe/views/ganttview.js" | |||||
"public/js/frappe/views/ganttview.js", | |||||
"public/js/frappe/list/image_view_item_row.html", | |||||
"public/js/frappe/list/image_view_item_main_head.html" | |||||
], | ], | ||||
"css/report.min.css": [ | "css/report.min.css": [ | ||||
"public/css/report.css", | "public/css/report.css", | ||||
@@ -248,4 +250,4 @@ | |||||
"public/js/legacy/print_table.js", | "public/js/legacy/print_table.js", | ||||
"public/js/legacy/print_format.js" | "public/js/legacy/print_format.js" | ||||
] | ] | ||||
} | |||||
} |
@@ -189,3 +189,34 @@ | |||||
width: 37px; | width: 37px; | ||||
text-align: left; | text-align: left; | ||||
} | } | ||||
.image-view { | |||||
float: left; | |||||
} | |||||
.image-view-subject { | |||||
padding: inherit; | |||||
} | |||||
.image-view-col { | |||||
padding-bottom: 5px; | |||||
padding-top: 5px; | |||||
} | |||||
table.field-info { | |||||
opacity: 0; | |||||
bottom: -20px; | |||||
font-size: 8pt; | |||||
color: white; | |||||
background-color: #000000; | |||||
position: absolute; | |||||
padding-bottom: 0px !important; | |||||
} | |||||
.image-field { | |||||
position: relative; | |||||
} | |||||
.image-field:hover .field-info { | |||||
opacity: 0.9; | |||||
} |
@@ -133,7 +133,8 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ | |||||
}, | }, | ||||
init_headers: function() { | init_headers: function() { | ||||
var main = frappe.render_template("list_item_main_head", { | |||||
this.header = this.meta.image_view == 0? "list_item_main_head": "image_view_item_main_head"; | |||||
var main = frappe.render_template(this.header, { | |||||
columns: this.listview.columns, | columns: this.listview.columns, | ||||
right_column: this.listview.settings.right_column, | right_column: this.listview.settings.right_column, | ||||
_checkbox: ((frappe.model.can_delete(this.doctype) || this.listview.settings.selectable) | _checkbox: ((frappe.model.can_delete(this.doctype) || this.listview.settings.selectable) | ||||
@@ -445,6 +446,12 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ | |||||
data.doctype = this.doctype; | data.doctype = this.doctype; | ||||
this.listview.render(row, data, this); | this.listview.render(row, data, this); | ||||
}, | }, | ||||
render_image_view_row: function(row, data) { | |||||
for (var i = 0; i < data.length; i++) { | |||||
data[i].doctype = this.doctype; | |||||
this.listview.render(row, data[i], this) | |||||
} | |||||
}, | |||||
get_args: function() { | get_args: function() { | ||||
var args = { | var args = { | ||||
doctype: this.doctype, | doctype: this.doctype, | ||||
@@ -707,8 +714,14 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ | |||||
}, | }, | ||||
get_checked_items: function() { | get_checked_items: function() { | ||||
var me = this; | |||||
return $.map(this.$page.find('.list-delete:checked'), function(e) { | return $.map(this.$page.find('.list-delete:checked'), function(e) { | ||||
return $(e).parents(".list-row:first").data('data'); | |||||
if(me.meta.image_view == 0){ | |||||
return $(e).parents(".list-row:first").data('data'); | |||||
} | |||||
else{ | |||||
return $(e).parents(".image-view:first").data('data'); | |||||
} | |||||
}); | }); | ||||
}, | }, | ||||
@@ -0,0 +1,11 @@ | |||||
<div class="row"> | |||||
<div class="col-xs-12"> | |||||
{% if (_checkbox) { %} | |||||
<input class="list-select-all" type="checkbox" style="margin-right: 7px; margin-top: 2px;" | |||||
title="{%= __("Select All") %}"> | |||||
{% } %} | |||||
<i class="icon-fixed-width octicon octicon-heart text-extra-muted not-liked like-action list-liked-by-me" | |||||
title="{%= __("Likes") %}"></i> | |||||
</div> | |||||
</div> |
@@ -0,0 +1,54 @@ | |||||
<div class="col-xs-12 col-sm-3 doclist-row has-checkbox image-view text-ellipsis"> | |||||
<div class="row"> | |||||
<div class="col-xs-12 image-view-col"> | |||||
{%= subject %} | |||||
</div> | |||||
</div> | |||||
<!-- Image --> | |||||
<div class="row"> | |||||
<div class="col-xs-12 image-view-col" align="center"> | |||||
<div class="pos-item-image image-field" data-name="{{ data.name }}" style="{% if (item_image) { %} background-image: {%= item_image %} {% } | |||||
else { %} background-color: {{ color }} {% } %}"> | |||||
{% if (!item_image) { %}{%= frappe.get_abbr(data.name) %}{% } %} | |||||
<table class="table table-condensed field-info"> | |||||
{% for (var i=0, l=columns.length; i < l; i++ ) { | |||||
var col = columns[i], value=data[col.fieldname]; %} | |||||
{% if(in_list(allowed_type, col.fieldtype)) { %} | |||||
<tr> | |||||
<td align="right" width="40%">{%= col.title %}</td> | |||||
<td align="left" width="60%">{%= value %}</td> | |||||
</tr> | |||||
{% } %} | |||||
{% } %} | |||||
</table> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="row"> | |||||
<!-- comment --> | |||||
<div class="col-xs-12 image-view-col"> | |||||
<div class="row"> | |||||
<div class="col-xs-4">{%= list.get_indicator(data) %}</div> | |||||
<div class="col-xs-8 text-right"> | |||||
<div class="hidden-xs"> | |||||
<span class="list-row-modified text-muted"> | |||||
{%= comment_when(data.modified, true) %} | |||||
</span> | |||||
{% if (data._assign_list.length) { %} | |||||
<span class="filterable" | |||||
data-filter="_assign,like,%{%= data._assign_list[data._assign_list.length - 1] %}%"> | |||||
{%= frappe.avatar(data._assign_list[data._assign_list.length - 1]) %}</span> | |||||
{% } else { %} | |||||
<span class="avatar avatar-small avatar-empty"></span> | |||||
{% } %} | |||||
<span class="list-comment-count small | |||||
{% if(!data._comment_count) { %} text-extra-muted {% } else { %} text-muted {% } %}"> | |||||
<i class="octicon octicon-comment-discussion"></i> | |||||
{%= (data._comment_count > 99 ? "99+" : data._comment_count) || 0 %} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> |
@@ -124,7 +124,6 @@ frappe.views.ListView = Class.extend({ | |||||
this.total_colspans += this.columns[1].colspan; | this.total_colspans += this.columns[1].colspan; | ||||
} | } | ||||
// overridden | // overridden | ||||
var overridden = $.map(this.settings.add_columns || [], function(d) { | var overridden = $.map(this.settings.add_columns || [], function(d) { | ||||
return d.content; | return d.content; | ||||
@@ -203,21 +202,41 @@ frappe.views.ListView = Class.extend({ | |||||
this.id_list.push(data.name); | this.id_list.push(data.name); | ||||
} | } | ||||
var main = frappe.render_template("list_item_main", { | |||||
data: data, | |||||
columns: this.columns, | |||||
subject: this.get_avatar_and_id(data, true), | |||||
list: this, | |||||
right_column: this.settings.right_column | |||||
}); | |||||
$(frappe.render_template("list_item_row", { | |||||
data: data, | |||||
main: main, | |||||
list: this, | |||||
right_column: this.settings.right_column | |||||
})).appendTo(row); | |||||
if(this.meta.image_view == 0){ | |||||
var main = frappe.render_template("list_item_main", { | |||||
data: data, | |||||
columns: this.columns, | |||||
subject: this.get_avatar_and_id(data, true), | |||||
list: this, | |||||
right_column: this.settings.right_column | |||||
}); | |||||
$(frappe.render_template("list_item_row", { | |||||
data: data, | |||||
main: main, | |||||
list: this, | |||||
right_column: this.settings.right_column | |||||
})).appendTo(row); | |||||
} | |||||
else{ | |||||
this.allowed_type = [ | |||||
"Check", "Currency", "Data", "Date", | |||||
"Datetime", "Float", "Int", "Link", | |||||
"Percent", "Select", "Read Only", "Time" | |||||
]; | |||||
img_col = $(frappe.render_template("image_view_item_row", { | |||||
data: data, | |||||
list: this, | |||||
columns: this.columns, | |||||
allowed_type: this.allowed_type, | |||||
item_image: data.image ? "url('" + data.image + "')" : null, | |||||
color: frappe.get_palette(data.item_name), | |||||
subject: this.get_avatar_and_id(data, true), | |||||
right_column: this.settings.right_column | |||||
})) | |||||
.data("data", data) | |||||
.appendTo($(row).find(".image-view-marker")); | |||||
} | |||||
if(this.settings.post_render_item) { | if(this.settings.post_render_item) { | ||||
this.settings.post_render_item(this, row, data); | this.settings.post_render_item(this, row, data); | ||||
@@ -226,7 +245,6 @@ frappe.views.ListView = Class.extend({ | |||||
this.render_tags(row, data); | this.render_tags(row, data); | ||||
}, | }, | ||||
render_tags: function(row, data) { | render_tags: function(row, data) { | ||||
var me = this; | var me = this; | ||||
var row2 = $('<div class="tag-row">\ | var row2 = $('<div class="tag-row">\ | ||||
@@ -366,4 +384,4 @@ frappe.views.ListView = Class.extend({ | |||||
var icon_html = "<i class='%(icon_class)s' title='%(label)s'></i>"; | var icon_html = "<i class='%(icon_class)s' title='%(label)s'></i>"; | ||||
$(parent).append(repl(icon_html, {icon_class: icon_class, label: __(label) || ''})); | $(parent).append(repl(icon_html, {icon_class: icon_class, label: __(label) || ''})); | ||||
} | } | ||||
}); | |||||
}); |
@@ -309,8 +309,17 @@ frappe.ui.Listing = Class.extend({ | |||||
} | } | ||||
// render the rows | // render the rows | ||||
for(var i=0; i < m; i++) { | |||||
this.render_row(this.add_row(values[i]), values[i], this, i); | |||||
if(this.meta.image_view == 0){ | |||||
for(var i=0; i < m; i++) { | |||||
this.render_row(this.add_row(values[i]), values[i], this, i); | |||||
} | |||||
} | |||||
else{ | |||||
while (values.length) { | |||||
row = this.add_row(values[0]); | |||||
$("<div class='row image-view-marker'></div>").appendTo(row) | |||||
this.render_image_view_row(row, values.splice(0, 4), this, i); | |||||
} | |||||
} | } | ||||
}, | }, | ||||
update_paging: function(values) { | update_paging: function(values) { | ||||
@@ -321,7 +330,7 @@ frappe.ui.Listing = Class.extend({ | |||||
}, | }, | ||||
add_row: function(row) { | add_row: function(row) { | ||||
return $('<div class="list-row">') | return $('<div class="list-row">') | ||||
.data("data", row) | |||||
.data("data", this.meta.image_view == 0?row:null) | |||||
.appendTo(this.$w.find('.result-list')) | .appendTo(this.$w.find('.result-list')) | ||||
.get(0); | .get(0); | ||||
}, | }, | ||||