diff --git a/mod/data/data.js b/mod/data/data.js
index b7c3db3c69f..59466272715 100644
--- a/mod/data/data.js
+++ b/mod/data/data.js
@@ -71,7 +71,6 @@ M.data_filepicker.init = function(Y, options) {
M.data_urlpicker = {};
M.data_urlpicker.init = function(Y, options) {
- this.formelementid = options.formelementid;
options.formcallback = M.data_urlpicker.callback;
if (!M.core_filepicker.instances[options.client_id]) {
M.core_filepicker.init(Y, options);
@@ -84,12 +83,11 @@ M.data_urlpicker.init = function(Y, options) {
};
M.data_urlpicker.callback = function (params) {
- document.getElementById(M.data_urlpicker.formelementid).value = params.url;
+ document.getElementById('field_url_'+params.client_id).value = params.url;
}
M.data_imagepicker = {};
-
M.data_imagepicker.callback = function(params) {
var html = ' '+params['file']+'';
document.getElementById('file_info_'+params['client_id']).innerHTML = html;
diff --git a/mod/data/field/url/field.class.php b/mod/data/field/url/field.class.php
index e5d65d121d9..b86d8764d22 100755
--- a/mod/data/field/url/field.class.php
+++ b/mod/data/field/url/field.class.php
@@ -28,6 +28,16 @@ class data_field_url extends data_field_base {
function display_add_field($recordid=0) {
global $CFG, $DB, $OUTPUT, $PAGE;
+ $args = new stdclass;
+ $args->accepted_types = '*';
+ $args->return_types = FILE_EXTERNAL;
+ $args->context = $this->context;
+ $args->env = 'url';
+ $fp = new file_picker($args);
+ $options = $fp->options;
+
+ $fieldid = 'field_url_'.$options->client_id;
+
$straddlink = get_string('choosealink', 'repository');
$url = '';
$text = '';
@@ -36,30 +46,22 @@ class data_field_url extends data_field_base {
$url = $content->content;
$text = $content->content1;
}
- }
+ }
$str = '
| '; - $str .= get_string('url','data').': | '; $str .= ' |
| '.get_string('text','data').': |