浏览代码

[Fixes] Upload file from listview, doc preview and download

version-14
Saurabh 10 年前
committed by Rushabh Mehta
父节点
当前提交
68e8810556
共有 5 个文件被更改,包括 52 次插入8 次删除
  1. +19
    -0
      frappe/core/doctype/file/file.js
  2. +22
    -3
      frappe/core/doctype/file/file_list.js
  3. +1
    -0
      frappe/model/delete_doc.py
  4. +8
    -3
      frappe/public/js/frappe/list/doclistview.js
  5. +2
    -2
      frappe/utils/file_manager.py

+ 19
- 0
frappe/core/doctype/file/file.js 查看文件

@@ -0,0 +1,19 @@
frappe.ui.form.on("File", "onload", function(frm) {
if(frappe.utils.is_image_file(frm.doc.file_url)){
frm.doc.preview = '<div class="img_preview">\
<img style="max-widht:130px;max-height:130px;" \
src="'+frm.doc.file_url+'"></img>\
</div>';
frm.refresh_field("preview");
}
})

frappe.ui.form.on("File", "refresh", function(frm) {
frm.add_custom_button(__('Download'), function(){
window.open(frm.doc.file_url);
}, "icon-download");
})

// frappe.ui.form.on("File", "download", function(frm) {
// window.open(frm.doc.file_url);
// })

+ 22
- 3
frappe/core/doctype/file/file_list.js 查看文件

@@ -3,7 +3,7 @@ frappe.provide("frappe.ui");
frappe.listview_settings['File'] = { frappe.listview_settings['File'] = {
hide_name_column: true, hide_name_column: true,
use_route: true, use_route: true,
add_fields: ["is_folder", "file_name", "file_url"],
add_fields: ["is_folder", "file_name", "file_url", "folder"],
formatters: { formatters: {
file_size: function(value) { file_size: function(value) {
// formatter for file size // formatter for file size
@@ -22,7 +22,8 @@ frappe.listview_settings['File'] = {
} else if(frappe.utils.is_image_file(data.file_name)) { } else if(frappe.utils.is_image_file(data.file_name)) {
data._title = '<i class="icon-picture icon-fixed-width"></i> ' + data.file_name; data._title = '<i class="icon-picture icon-fixed-width"></i> ' + data.file_name;
} else { } else {
data._title = '<i class="icon-file-alt icon-fixed-width"></i> ' + (data.file_name ? data.file_name : data.file_url);
data._title = '<i class="icon-file-alt icon-fixed-width"></i> \
' + (data.file_name ? data.file_name : data.file_url);
} }
}, },
onload: function(doclist) { onload: function(doclist) {
@@ -33,12 +34,30 @@ frappe.listview_settings['File'] = {


doclist.listview.settings.setup_new_folder(doclist); doclist.listview.settings.setup_new_folder(doclist);
doclist.listview.settings.setup_dragdrop(doclist); doclist.listview.settings.setup_dragdrop(doclist);

doclist.$page.on("click", ".list-delete", function(event) {
doclist.listview.settings.add_menu_item_copy(doclist);
})
},
list_view_doc:function(doclist){
alert("test")
$(doclist.wrapper).on("click", 'button[list_view_doc="'+doclist.doctype+'"]', function(){
dialog = frappe.ui.get_upload_dialog({
"args": {
"folder": doclist.current_folder,
"from_form": 1
},
callback: function() {
doclist.refresh();
}
});
});
}, },
setup_new_folder: function(doclist) { setup_new_folder: function(doclist) {
doclist.page.add_menu_item(__("New Folder"), function() { doclist.page.add_menu_item(__("New Folder"), function() {
var d = frappe.prompt(__("Name"), function(values) { var d = frappe.prompt(__("Name"), function(values) {
if((values.value.indexOf("/") > -1)){ if((values.value.indexOf("/") > -1)){
frappe.throw("Folder name should not include / !!!")
frappe.throw("Folder name should not include / !!!");
return; return;
} }
var data = { var data = {


+ 1
- 0
frappe/model/delete_doc.py 查看文件

@@ -82,6 +82,7 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa


update_naming_series(doc) update_naming_series(doc)
delete_from_table(doctype, name, ignore_doctypes, doc) delete_from_table(doctype, name, ignore_doctypes, doc)
doc.run_method("after_delete")


if doc: if doc:
try: try:


+ 8
- 3
frappe/public/js/frappe/list/doclistview.js 查看文件

@@ -230,9 +230,14 @@ frappe.views.DocListView = frappe.ui.Listing.extend({


// make_new_doc can be overridden so that default values can be prefilled // make_new_doc can be overridden so that default values can be prefilled
// for example - communication list in customer // for example - communication list in customer
$(this.wrapper).on("click", 'button[list_view_doc="'+me.doctype+'"]', function(){
(me.listview.make_new_doc || me.make_new_doc).apply(me, [me.doctype]);
});
if(this.listview.settings.list_view_doc) {
this.listview.settings.list_view_doc(this);
}
else{
$(this.wrapper).on("click", 'button[list_view_doc="'+me.doctype+'"]', function(){
(me.listview.make_new_doc || me.make_new_doc).apply(me, [me.doctype]);
});
}


if((auto_run !== false) && (auto_run !== 0)) if((auto_run !== false) && (auto_run !== 0))
this.refresh(); this.refresh();


+ 2
- 2
frappe/utils/file_manager.py 查看文件

@@ -28,7 +28,7 @@ def upload():
if not filename and not file_url: if not filename and not file_url:
frappe.msgprint(_("Please select a file or url"), frappe.msgprint(_("Please select a file or url"),
raise_exception=True) raise_exception=True)
print folder
# save # save
if filename: if filename:
filedata = save_uploaded(dt, dn, folder) filedata = save_uploaded(dt, dn, folder)
@@ -130,7 +130,7 @@ def get_random_filename(extn=None, content_type=None):


return random_string(7) + (extn or "") return random_string(7) + (extn or "")


def save_file(fname, content, dt, dn, folder=None,decode=False):
def save_file(fname, content, dt, dn, folder=None, decode=False):
print [folder] print [folder]
if decode: if decode:
if isinstance(content, unicode): if isinstance(content, unicode):


正在加载...
取消
保存