| |
21 |
21 |
title:onevalue |
| |
22 |
22 |
lock_title_p:onevalue |
| |
23 |
23 |
instructions:onevalue |
| |
24 |
24 |
} -validate { |
| |
25 |
25 |
file_id_or_folder_id { |
| |
26 |
26 |
if {[info exists file_id] && ![info exists folder_id]} { |
| |
27 |
27 |
set folder_id [content::item::get_parent_folder -item_id $file_id] |
| |
28 |
28 |
if {$folder_id eq ""} { |
| |
29 |
29 |
ad_complain "The specified file_id is not valid." |
| |
30 |
30 |
return |
| |
31 |
31 |
} |
| |
32 |
32 |
} |
| |
33 |
33 |
if {![info exists folder_id] || ![fs_folder_p $folder_id]} { |
| |
34 |
34 |
ad_complain "The specified parent folder is not valid." |
| |
35 |
35 |
} |
| |
36 |
36 |
} |
| |
37 |
37 |
max_size -requires {upload_file} { |
| |
38 |
38 |
set n_bytes [file size ${upload_file.tmpfile}] |
| |
39 |
39 |
set max_bytes [fs::max_upload_size] |
| |
40 |
40 |
if { $n_bytes > $max_bytes } { |
| |
41 |
|
ad_complain "Your file is larger than the maximum file size allowed on this system ([util_commify_number $max_bytes] bytes)" |
| |
|
41 |
set number_of_bytes $max_bytes ; # needed by message key |
| |
|
42 |
ad_complain [_ file-storage.lt_Your_file_is_larger_t] |
| |
42 |
43 |
} |
| |
43 |
44 |
} |
| |
44 |
45 |
} |
| |
45 |
46 |
|
| |
46 |
47 |
set user_id [ad_conn user_id] |
| |
47 |
48 |
set package_id [ad_conn package_id] |
| |
48 |
49 |
set unpack_binary [util::which [string trim [parameter::get -parameter UnzipBinary]]] |
| |
49 |
50 |
set unpack_available_p [expr {$unpack_binary ne ""}] |
| |
50 |
51 |
|
| |
51 |
52 |
# check for write permission on the folder or item |
| |
52 |
53 |
permission::require_permission \ |
| |
53 |
54 |
-object_id $folder_id \ |
| |
54 |
55 |
-party_id $user_id \ |
| |
55 |
56 |
-privilege "write" |
| |
56 |
57 |
|
| |
57 |
58 |
if {![ad_form_new_p -key file_id]} { |
| |
58 |
59 |
permission::require_permission \ |
| |
59 |
60 |
-object_id $file_id \ |
| |
60 |
61 |
-party_id $user_id \ |
| |
61 |
62 |
-privilege "write" |
| |
62 |
63 |
set page_title [_ file-storage.Add_Revision] |
| |
63 |
64 |
} else { |
| |
64 |
65 |
set page_title [_ file-storage.Add_File] |
| |
65 |
66 |
} |
| |
66 |
67 |
set context [fs_context_bar_list -final $page_title $folder_id] |
| |
67 |
68 |
|
| |
|
69 |
set max_upload_size [fs::max_upload_size] |
| |
68 |
70 |
ad_form -html { enctype multipart/form-data } \ |
| |
69 |
71 |
-export { folder_id lock_title_p name return_url } \ |
| |
70 |
72 |
-form { |
| |
71 |
73 |
file_id:key |
| |
72 |
74 |
{upload_file:file |
| |
73 |
75 |
{label "#file-storage.Upload_a_file#"} |
| |
74 |
76 |
{html "size 30"} |
| |
|
77 |
{help_text "[_ file-storage.Upload_Limit]: $max_upload_size"} |
| |
75 |
78 |
} |
| |
76 |
79 |
} |
| |
77 |
80 |
|
| |
|
81 |
# Try to prevent upload of too big files from the client side. Saves |
| |
|
82 |
# us some useless requests and gives a quicker feedback to the user. |
| |
|
83 |
set number_of_bytes $max_upload_size ; # needed by message key |
| |
|
84 |
set file_too_big_msg [_ file-storage.lt_Your_file_is_larger_t] |
| |
|
85 |
template::add_event_listener -event submit -id file-add \ |
| |
|
86 |
-preventdefault=false -script [subst -nocommands { |
| |
|
87 |
var uploadFileField = this.elements.namedItem('upload_file'); |
| |
|
88 |
var uploadFile = uploadFileField.files[0]; |
| |
|
89 |
if (uploadFile != undefined && |
| |
|
90 |
uploadFile.size > $max_upload_size) { |
| |
|
91 |
alert('$file_too_big_msg'); |
| |
|
92 |
event.preventDefault(); |
| |
|
93 |
} |
| |
|
94 |
}] |
| |
|
95 |
|
| |
78 |
96 |
if {[parameter::get -parameter AllowTextEdit -default 0]} { |
| |
79 |
97 |
if {[ad_form_new_p -key file_id]} { |
| |
80 |
98 |
# To allow the creation of files |
| |
81 |
99 |
ad_form -extend -form { |
| |
82 |
100 |
{content_body:richtext(richtext),optional |
| |
83 |
101 |
{label "Create a file"} |
| |
84 |
102 |
{html "rows 20 cols 70" } |
| |
85 |
103 |
{htmlarea_p 1} |
| |
86 |
104 |
} |
| |
87 |
105 |
} |
| |
88 |
106 |
} else { |
| |
89 |
107 |
# To make content editable |
| |
90 |
108 |
set mime_type [db_string get_mime_type { |
| |
91 |
109 |
select mime_type from fs_objects where object_id = :file_id |
| |
92 |
110 |
}] |
| |
93 |
111 |
if {$mime_type eq "text/html"} { |
| |
94 |
112 |
ad_form -extend -form { |
| |
95 |
113 |
{edit_content:richtext(richtext),optional |
| |
96 |
114 |
{label "Content"} |
| |
97 |
115 |
{html "rows 20 cols 70" } |