infopark_fiona7 1.5.3.2.0 → 1.5.4.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +30 -1
- data/app/assets/javascripts/fiona7/task_list_command.js +15 -0
- data/app/assets/javascripts/fiona7/task_list_dialog.js +100 -0
- data/app/assets/javascripts/fiona7/task_list_menu_item.js +30 -0
- data/app/assets/javascripts/fiona7/templates.js +106 -0
- data/app/assets/javascripts/fiona7/translations.js +136 -0
- data/app/assets/javascripts/fiona7_ui.js +10 -110
- data/app/assets/javascripts/scrivito_patches/ajax.js +6 -3
- data/app/assets/javascripts/scrivito_patches/ajax_error_handling.js +1 -1
- data/app/assets/javascripts/scrivito_patches/attribute_serializer.js +2 -2
- data/app/assets/javascripts/scrivito_patches/binary_utils.js +1 -1
- data/app/assets/javascripts/scrivito_patches/cms_rest_api.js +4 -4
- data/app/assets/javascripts/scrivito_patches/models/api/basic_obj.js +1 -1
- data/app/assets/javascripts/scrivito_patches/models/obj.js +1 -1
- data/app/controllers/fiona7/tasks_controller.rb +30 -0
- data/app/helpers/fiona7_override_helper.rb +0 -1
- data/app/models/fiona7/task.rb +0 -0
- data/app/models/rails_connector/task.rb +19 -0
- data/app/views/fiona7/tasks/index.jbuilder +20 -0
- data/config/locales/workspace.yml +9 -0
- data/config/precedence_routes.rb +2 -0
- data/infopark_fiona7.gemspec +3 -2
- data/lib/fiona7/attribute_writers/referencelist_as_linklist.rb +1 -1
- data/lib/fiona7/attribute_writers/referencelist_as_text.rb +1 -1
- data/lib/fiona7/engine.rb +3 -0
- data/lib/fiona7/forbidden_obj_classes.rb +17 -0
- data/lib/fiona7/tasks/loader.rb +54 -0
- data/lib/fiona7/tasks/task.rb +6 -0
- data/lib/fiona7/verity_search_engine.rb +1 -1
- data/lib/fiona7/version.rb +1 -1
- data/lib/fiona7/version_helper.rb +45 -40
- data/lib/fiona7/workspace.rb +8 -1
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48f2e2270c1b9a56258e9a46ef13492dcd835805
|
4
|
+
data.tar.gz: f8c931d72b8a80bc2da52f3af652736e1e8494c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e5ed06ef8ec90a08b28e7ef26dcede484ad4e6c7a8164ae4bd02d0062447b7af90ab54e5fa03a25f9766a0cb4b6286a068919d20114fe87244737cae2862f36
|
7
|
+
data.tar.gz: abc9e5a582f2c4aa46ebce452d923591fd462a4069c862f776cb3804131e3573c966ba9d36eeef4cc25da8dd5dc86bc4577defab72e3d3c0f9eac6f12fddf81b
|
data/Rakefile
CHANGED
@@ -18,8 +18,10 @@ end
|
|
18
18
|
namespace "package" do
|
19
19
|
desc "Package javascript"
|
20
20
|
task "js" do
|
21
|
-
puts "Transpiling javascript files"
|
22
21
|
require 'babel/transpiler'
|
22
|
+
require 'handlebars_assets'
|
23
|
+
|
24
|
+
puts "Transpiling javascript files"
|
23
25
|
Dir["app/**/*"].each do |fname|
|
24
26
|
if /\.es6\.js$/ =~ fname
|
25
27
|
nfname = ::File.join(::File.dirname(fname), ::File.basename(fname, '.es6.js') + '.js')
|
@@ -29,6 +31,33 @@ namespace "package" do
|
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
34
|
+
puts "Processing handlebars templates"
|
35
|
+
templates = []
|
36
|
+
template_namespace = 'ScrivitoHandlebarsTemplates'
|
37
|
+
|
38
|
+
Dir["app/assets/javascripts/fiona7/templates/**/*"].each do |fname|
|
39
|
+
if /\.hbs$/ =~ fname
|
40
|
+
puts "Compiling #{fname}"
|
41
|
+
template_name = fname.sub(/.*javascripts\/fiona7\/templates\//, '').sub(/\.hbs$/, '').dump
|
42
|
+
precompiled = HandlebarsAssets::Handlebars.precompile(File.read(fname))
|
43
|
+
template = "Handlebars.template(#{precompiled})"
|
44
|
+
|
45
|
+
templates << <<-TEMPLATE
|
46
|
+
(function() {
|
47
|
+
this.#{template_namespace} || (this.#{template_namespace} = {});
|
48
|
+
this.#{template_namespace}[#{template_name}] = #{template};
|
49
|
+
return this.#{template_namespace}[#{template_name}];
|
50
|
+
}).call(this);
|
51
|
+
TEMPLATE
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
puts "Writing app/assets/javascripts/fiona7/templates.js"
|
56
|
+
File.open('app/assets/javascripts/fiona7/templates.js', 'w') do |f|
|
57
|
+
templates.each do |t|
|
58
|
+
f.write(t)
|
59
|
+
end
|
60
|
+
end
|
32
61
|
end
|
33
62
|
end
|
34
63
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
(function() {
|
2
|
+
_.extend(scrivito, {
|
3
|
+
task_list_command: function() {
|
4
|
+
return scrivito.command.create_instance({
|
5
|
+
id: 'fiona7.task_list',
|
6
|
+
title: scrivito.t('commands.task_list.title'),
|
7
|
+
icon: '',
|
8
|
+
|
9
|
+
execute: function() {
|
10
|
+
scrivito.task_list_dialog.open();
|
11
|
+
}
|
12
|
+
});
|
13
|
+
}
|
14
|
+
});
|
15
|
+
}());
|
@@ -0,0 +1,100 @@
|
|
1
|
+
(function() {
|
2
|
+
var dialog, promise, transferred;
|
3
|
+
|
4
|
+
_.extend(scrivito, {
|
5
|
+
task_list_dialog: {
|
6
|
+
open: function() {
|
7
|
+
promise = $.Deferred();
|
8
|
+
transferred = [];
|
9
|
+
dialog = $(scrivito.template.render('task_list_dialog')).appendTo($('#scrivito_editing'));
|
10
|
+
|
11
|
+
load_task_list();
|
12
|
+
|
13
|
+
scrivito.dialog.open_and_adjust_without_transition(dialog);
|
14
|
+
return scrivito.withDialogBehaviour(dialog, promise, {escape: close});
|
15
|
+
}
|
16
|
+
}
|
17
|
+
});
|
18
|
+
|
19
|
+
var fetch_task_list = function(mode) {
|
20
|
+
var base_url = window.location.protocol + '//' + window.location.host + '/__scrivito/';
|
21
|
+
var path = 'tasks';
|
22
|
+
|
23
|
+
// the other option is 'all'
|
24
|
+
mode = mode || 'user';
|
25
|
+
|
26
|
+
return $.ajax(base_url + path, {
|
27
|
+
type: 'GET',
|
28
|
+
data: {mode: mode},
|
29
|
+
dataType: 'json',
|
30
|
+
cache: false
|
31
|
+
});
|
32
|
+
};
|
33
|
+
|
34
|
+
var load_task_list = function(mode) {
|
35
|
+
var objs;
|
36
|
+
|
37
|
+
render(mode);
|
38
|
+
|
39
|
+
fetch_task_list(mode).then(function(result, text_status, xhr) {
|
40
|
+
var tasks = result.tasks;
|
41
|
+
|
42
|
+
_.each(tasks, function(task) {
|
43
|
+
task.obj_data = task.obj;
|
44
|
+
task.obj = scrivito.obj.create_instance(task.obj);
|
45
|
+
task.last_changed = string_date_to_function(task.last_changed);
|
46
|
+
});
|
47
|
+
|
48
|
+
render(mode, tasks);
|
49
|
+
});
|
50
|
+
};
|
51
|
+
|
52
|
+
var string_date_to_function = function(string_date) {
|
53
|
+
return function() {
|
54
|
+
return scrivito.parseDate(string_date);
|
55
|
+
};
|
56
|
+
};
|
57
|
+
|
58
|
+
var render = function(mode, tasks) {
|
59
|
+
mode = mode || 'user';
|
60
|
+
|
61
|
+
dialog.html(scrivito.template.render('task_list_dialog/content', {
|
62
|
+
title: scrivito.t('task_list_dialog.title.' + mode),
|
63
|
+
tasks: tasks,
|
64
|
+
is_loaded: !!tasks,
|
65
|
+
mode_button: scrivito.t('task_list_dialog.mode_toggle.' + mode)
|
66
|
+
}));
|
67
|
+
|
68
|
+
// on click go to page
|
69
|
+
dialog.find('[data-scrivito-obj-id]').on('click', function() {
|
70
|
+
var obj_id = $(this).attr('data-scrivito-obj-id');
|
71
|
+
var task = _.find(tasks || [], function(task) { return task.obj.id() === obj_id; });
|
72
|
+
scrivito.open_obj(task.obj);
|
73
|
+
return false;
|
74
|
+
});
|
75
|
+
|
76
|
+
scrivito.updateAutoHeightFor(dialog.find('.scrivito_changes_dialog_content'));
|
77
|
+
|
78
|
+
dialog.find('.scrivito_cancel').on('click', close);
|
79
|
+
|
80
|
+
// TODO: sortable
|
81
|
+
|
82
|
+
// TODO: my/all changes
|
83
|
+
// mine/all changes toggle
|
84
|
+
dialog.find('.fiona7_toggle_task_list_type').on('click', function() {
|
85
|
+
|
86
|
+
if (mode == 'all') {
|
87
|
+
load_task_list('user');
|
88
|
+
} else {
|
89
|
+
load_task_list('all');
|
90
|
+
}
|
91
|
+
});
|
92
|
+
};
|
93
|
+
|
94
|
+
var close = function() {
|
95
|
+
scrivito.dialog.close_without_transition(dialog);
|
96
|
+
promise.resolve(transferred);
|
97
|
+
return false;
|
98
|
+
};
|
99
|
+
|
100
|
+
}());
|
@@ -0,0 +1,30 @@
|
|
1
|
+
(function() {
|
2
|
+
/*
|
3
|
+
var template = function() {
|
4
|
+
return '<li id="fiona7_task_list" class="scrivito_menu_item fiona7_task_list"><span title="' + scrivito.t('commands.task_list.title') + '"><i class="scrivito_icon"></i> ' + scrivito.t('commands.task_list.title') + '</span></li>';
|
5
|
+
};
|
6
|
+
*/
|
7
|
+
|
8
|
+
_.extend(scrivito, {
|
9
|
+
task_list_menu_item: {
|
10
|
+
init: function() {
|
11
|
+
scrivito.menu_bar.register_item_renderer(function(menu_bar) {
|
12
|
+
var workspace_select = menu_bar.find('#scrivito_workspace_select');
|
13
|
+
var changes = menu_bar.find('#scrivito_sdk_workspace_changes');
|
14
|
+
var command = scrivito.task_list_command();
|
15
|
+
|
16
|
+
changes.after(scrivito.template.render('task_list_menu_item', {
|
17
|
+
title: command.title,
|
18
|
+
icon: command.icon
|
19
|
+
}));
|
20
|
+
workspace_select.on('click', '#fiona7_task_list', function() {
|
21
|
+
command.execute();
|
22
|
+
});
|
23
|
+
|
24
|
+
|
25
|
+
});
|
26
|
+
|
27
|
+
}
|
28
|
+
}
|
29
|
+
})
|
30
|
+
}());
|
@@ -0,0 +1,106 @@
|
|
1
|
+
(function() {
|
2
|
+
this.ScrivitoHandlebarsTemplates || (this.ScrivitoHandlebarsTemplates = {});
|
3
|
+
this.ScrivitoHandlebarsTemplates["task_list_dialog/content"] = Handlebars.template({"1":function(container,depth0,helpers,partials,data) {
|
4
|
+
var stack1;
|
5
|
+
|
6
|
+
return " <table class=\"scrivito_changes_table\">\n"
|
7
|
+
+ ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tasks : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
|
8
|
+
+ "\n <tbody>\n"
|
9
|
+
+ ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tasks : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(7, data, 0),"data":data})) != null ? stack1 : "")
|
10
|
+
+ " </tbody>\n </table>\n";
|
11
|
+
},"2":function(container,depth0,helpers,partials,data) {
|
12
|
+
return " <thead>\n <tr>\n <th>\n <span>\n "
|
13
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"task_list_dialog.user_login",{"name":"translate","hash":{},"data":data}))
|
14
|
+
+ "\n </span>\n </th>\n <th>\n <span>\n "
|
15
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"task_list_dialog.group_name",{"name":"translate","hash":{},"data":data}))
|
16
|
+
+ "\n </span>\n </th>\n <th>\n <span>\n "
|
17
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"changes_dialog.description_for_editor",{"name":"translate","hash":{},"data":data}))
|
18
|
+
+ "\n </span>\n </th>\n <th>\n <span>\n "
|
19
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"changes_dialog.obj_class",{"name":"translate","hash":{},"data":data}))
|
20
|
+
+ "\n </span>\n </th>\n <th>\n <span>\n "
|
21
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"task_list_dialog.comment",{"name":"translate","hash":{},"data":data}))
|
22
|
+
+ "\n </span>\n </th>\n <th>\n <span>\n "
|
23
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"changes_dialog.last_changed",{"name":"translate","hash":{},"data":data}))
|
24
|
+
+ "\n </span>\n </th>\n </tr>\n </thead>\n";
|
25
|
+
},"4":function(container,depth0,helpers,partials,data) {
|
26
|
+
var stack1;
|
27
|
+
|
28
|
+
return " "
|
29
|
+
+ ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tasks : depth0),{"name":"each","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
|
30
|
+
+ "\n";
|
31
|
+
},"5":function(container,depth0,helpers,partials,data) {
|
32
|
+
return container.escapeExpression((helpers.render || (depth0 && depth0.render) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"task_list_dialog/row",depth0,{"name":"render","hash":{},"data":data}));
|
33
|
+
},"7":function(container,depth0,helpers,partials,data) {
|
34
|
+
return " <tr>\n <td class=\"scrivito_empty_result\" colspan=\"5\">"
|
35
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"task_list_dialog.empty",{"name":"translate","hash":{},"data":data}))
|
36
|
+
+ "</td>\n </tr>\n";
|
37
|
+
},"9":function(container,depth0,helpers,partials,data) {
|
38
|
+
return " <tr><td colspan=\"5\"><i class=\"scrivito_icon scrivito_spinning\"></i></td></tr>\n";
|
39
|
+
},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
|
40
|
+
var stack1, helper;
|
41
|
+
|
42
|
+
return "<div class=\"scrivito_changes_dialog_content scrivito_auto_height\">\n <div class=\"scrivito_modal_header\">\n <h3>\n <i class=\"scrivito_icon\"></i> "
|
43
|
+
+ container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"title","hash":{},"data":data}) : helper)))
|
44
|
+
+ "\n </h3>\n </div>\n\n <div class=\"scrivito_modal_body scrivito_auto_height\">\n"
|
45
|
+
+ ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.is_loaded : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(9, data, 0),"data":data})) != null ? stack1 : "")
|
46
|
+
+ " </div>\n</div>\n\n<div class=\"scrivito_modal_footer\">\n <a href=\"#\" class=\"scrivito_button scrivito_left fiona7_toggle_task_list_type\">\n "
|
47
|
+
+ container.escapeExpression(((helper = (helper = helpers.mode_button || (depth0 != null ? depth0.mode_button : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"mode_button","hash":{},"data":data}) : helper)))
|
48
|
+
+ "\n </a>\n <a href=\"#\" class=\"scrivito_button scrivito_cancel scrivito_green\">"
|
49
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"done",{"name":"translate","hash":{},"data":data}))
|
50
|
+
+ "</a>\n</div>\n";
|
51
|
+
},"useData":true});
|
52
|
+
return this.ScrivitoHandlebarsTemplates["task_list_dialog/content"];
|
53
|
+
}).call(this);
|
54
|
+
(function() {
|
55
|
+
this.ScrivitoHandlebarsTemplates || (this.ScrivitoHandlebarsTemplates = {});
|
56
|
+
this.ScrivitoHandlebarsTemplates["task_list_dialog/row"] = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
|
57
|
+
var stack1, helper;
|
58
|
+
|
59
|
+
return "<tr title=\""
|
60
|
+
+ container.escapeExpression(((helper = (helper = helpers.tooltip || (depth0 != null ? depth0.tooltip : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"tooltip","hash":{},"data":data}) : helper)))
|
61
|
+
+ "\" data-scrivito-obj-id=\""
|
62
|
+
+ container.escapeExpression(((helper = (helper = helpers.obj_id || (depth0 != null ? depth0.obj_id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"obj_id","hash":{},"data":data}) : helper)))
|
63
|
+
+ "\">\n <td>\n <span>\n "
|
64
|
+
+ container.escapeExpression(((helper = (helper = helpers.user_login || (depth0 != null ? depth0.user_login : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"user_login","hash":{},"data":data}) : helper)))
|
65
|
+
+ "\n </span>\n </td>\n\n <td>\n <span>\n "
|
66
|
+
+ container.escapeExpression(((helper = (helper = helpers.group_name || (depth0 != null ? depth0.group_name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"group_name","hash":{},"data":data}) : helper)))
|
67
|
+
+ "\n </span>\n </td>\n\n <td><span class=\"scrivito_title\">"
|
68
|
+
+ container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.obj_data : depth0)) != null ? stack1.description_for_editor : stack1), depth0))
|
69
|
+
+ "</span>\n <td><span class=\"scrivito_obj_class\">"
|
70
|
+
+ container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.obj_data : depth0)) != null ? stack1.obj_class : stack1), depth0))
|
71
|
+
+ "</span></td>\n\n <td>\n <span>\n "
|
72
|
+
+ container.escapeExpression(((helper = (helper = helpers.comment || (depth0 != null ? depth0.comment : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"comment","hash":{},"data":data}) : helper)))
|
73
|
+
+ "\n </span>\n </td>\n\n <td>\n <span>\n <time datetime=\""
|
74
|
+
+ container.escapeExpression(((helper = (helper = helpers.last_changed || (depth0 != null ? depth0.last_changed : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"last_changed","hash":{},"data":data}) : helper)))
|
75
|
+
+ "\" title=\""
|
76
|
+
+ container.escapeExpression((helpers.localize_date || (depth0 && depth0.localize_date) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.last_changed : depth0),{"name":"localize_date","hash":{},"data":data}))
|
77
|
+
+ "\">\n "
|
78
|
+
+ container.escapeExpression((helpers.localizeDateRelative || (depth0 && depth0.localizeDateRelative) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.last_changed : depth0),{"name":"localizeDateRelative","hash":{},"data":data}))
|
79
|
+
+ "\n </time>\n </span>\n </td>\n</tr>\n";
|
80
|
+
},"useData":true});
|
81
|
+
return this.ScrivitoHandlebarsTemplates["task_list_dialog/row"];
|
82
|
+
}).call(this);
|
83
|
+
(function() {
|
84
|
+
this.ScrivitoHandlebarsTemplates || (this.ScrivitoHandlebarsTemplates = {});
|
85
|
+
this.ScrivitoHandlebarsTemplates["task_list_dialog"] = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
|
86
|
+
return "<div class=\"scrivito_changes_overview scrivito_modal_large adjust_dialog\" >\n <div class=\"scrivito_changes_dialog_content scrivito_auto_height\"></div>\n <div class=\"scrivito_modal_footer\">\n <a href=\"#\" class=\"scrivito_button scrivito_cancel scrivito_green\">"
|
87
|
+
+ container.escapeExpression((helpers.translate || (depth0 && depth0.translate) || helpers.helperMissing).call(depth0 != null ? depth0 : {},"done",{"name":"translate","hash":{},"data":data}))
|
88
|
+
+ "</a>\n </div>\n</div>\n";
|
89
|
+
},"useData":true});
|
90
|
+
return this.ScrivitoHandlebarsTemplates["task_list_dialog"];
|
91
|
+
}).call(this);
|
92
|
+
(function() {
|
93
|
+
this.ScrivitoHandlebarsTemplates || (this.ScrivitoHandlebarsTemplates = {});
|
94
|
+
this.ScrivitoHandlebarsTemplates["task_list_menu_item"] = Handlebars.template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
|
95
|
+
var stack1, helper;
|
96
|
+
|
97
|
+
return "<li id=\"fiona7_task_list\" class=\"scrivito_menu_item fiona7_task_list\">\n<span title=\""
|
98
|
+
+ container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"title","hash":{},"data":data}) : helper)))
|
99
|
+
+ "\"><i class=\"scrivito_icon\">"
|
100
|
+
+ ((stack1 = ((helper = (helper = helpers.icon || (depth0 != null ? depth0.icon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"icon","hash":{},"data":data}) : helper))) != null ? stack1 : "")
|
101
|
+
+ "</i> "
|
102
|
+
+ container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"title","hash":{},"data":data}) : helper)))
|
103
|
+
+ " </span>\n</li>\n";
|
104
|
+
},"useData":true});
|
105
|
+
return this.ScrivitoHandlebarsTemplates["task_list_menu_item"];
|
106
|
+
}).call(this);
|
@@ -0,0 +1,136 @@
|
|
1
|
+
(function() {
|
2
|
+
$.i18n().load({
|
3
|
+
'commands.release_obj.title': 'Seite freigeben',
|
4
|
+
'commands.release_obj.not_modified_obj': 'Diese Seite wurde nicht geändert. Daher gibt es nichts zu freigeben.',
|
5
|
+
'commands.release_obj.dialog.title': 'Änderungen an dieser Seite veröffentlichen?',
|
6
|
+
'commands.release_obj.dialog.description': 'Eine Arbeitsversion zu veröffentlichen ist endgültig. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
7
|
+
'commands.release_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
8
|
+
'commands.release_obj.dialog.confirm': 'Freigeben',
|
9
|
+
'commands.release_obj.failed': 'Freigabe fehlgeschlagen',
|
10
|
+
|
11
|
+
'commands.edit_obj.title': 'Workflow starten',
|
12
|
+
'commands.edit_obj.dialog.title': 'Workflow starten?',
|
13
|
+
'commands.edit_obj.dialog.description': 'Es wird eine neue Arbeitsversion erstellt.',
|
14
|
+
'commands.edit_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
15
|
+
'commands.edit_obj.dialog.confirm': 'Starten',
|
16
|
+
'commands.edit_obj.failed': 'Workflow fehlgeschlagen',
|
17
|
+
|
18
|
+
'commands.forward_obj.title': 'Seite weiterleiten',
|
19
|
+
'commands.forward_obj.dialog.title': 'Seite weiterleiten?',
|
20
|
+
'commands.forward_obj.dialog.description': 'Die Arbeitsversion wird an einen weiteren Bearbeiter weitergeleitet. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
21
|
+
'commands.forward_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
22
|
+
'commands.forward_obj.dialog.confirm': 'Weiterleiten',
|
23
|
+
'commands.forward_obj.failed': 'Weiterleitung fehlgeschlagen',
|
24
|
+
|
25
|
+
'commands.reject_obj.title': 'Seite ablehnen',
|
26
|
+
'commands.reject_obj.dialog.title': 'Seite ablehnen?',
|
27
|
+
'commands.reject_obj.dialog.description': 'Die Arbeitsversion wird abgelehnt. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
28
|
+
'commands.reject_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
29
|
+
'commands.reject_obj.dialog.confirm': 'Ablehnen',
|
30
|
+
'commands.reject_obj.failed': 'Ablehnung fehlgeschlagen',
|
31
|
+
|
32
|
+
'commands.sign_obj.title': 'Seite abzeichnen',
|
33
|
+
'commands.sign_obj.dialog.title': 'Seite abzeichnen?',
|
34
|
+
'commands.sign_obj.dialog.description': 'Die eingereichte Version wird abgezeichnet. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
35
|
+
'commands.sign_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
36
|
+
'commands.sign_obj.dialog.confirm': 'Abzeichnen',
|
37
|
+
'commands.sign_obj.failed': 'Abzeichnung fehlgeschlagen',
|
38
|
+
|
39
|
+
'commands.commit_obj.title': 'Seite einreichen',
|
40
|
+
'commands.commit_obj.dialog.title': 'Seite einreichen?',
|
41
|
+
'commands.commit_obj.dialog.description': 'Die Arbeitsversion wird eingereicht. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
42
|
+
'commands.commit_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
43
|
+
'commands.commit_obj.dialog.confirm': 'Einreichen',
|
44
|
+
'commands.commit_obj.failed': 'Einreichung fehlgeschlagen',
|
45
|
+
|
46
|
+
'commands.take_obj.title': 'Seite übernehmen',
|
47
|
+
'commands.take_obj.dialog.title': 'Seite übernehmen?',
|
48
|
+
'commands.take_obj.dialog.description': 'Die Arbeitsversion wird übernommen. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
49
|
+
'commands.take_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
50
|
+
'commands.take_obj.dialog.confirm': 'Übernehmen',
|
51
|
+
'commands.take_obj.failed': 'Übernahme fehlgeschlagen',
|
52
|
+
|
53
|
+
'editing_disabled.workflow': 'Die Datei unterliegt einem Workflow und kann nicht direkt bearbeitet werden.',
|
54
|
+
'editing_disabled.permissions': 'Ihnen fehlen die Rechte um die Datei zu bearbeiten'
|
55
|
+
}, 'de');
|
56
|
+
|
57
|
+
$.i18n().load({
|
58
|
+
'commands.release_obj.title': 'Release page',
|
59
|
+
'commands.release_obj.not_modified_obj': 'This resource has not been modified. Therefore, nothing can be released.',
|
60
|
+
'commands.release_obj.dialog.title': 'Release this page?',
|
61
|
+
'commands.release_obj.dialog.description': 'Releasing an edited page is final. This operation cannot be reverted.',
|
62
|
+
'commands.release_obj.dialog.placeholder': 'Comment',
|
63
|
+
'commands.release_obj.dialog.confirm': 'Release',
|
64
|
+
'commands.release_obj.failed': 'Release failed',
|
65
|
+
|
66
|
+
'commands.edit_obj.title': 'Start a workflow',
|
67
|
+
'commands.edit_obj.dialog.title': 'Start a workflow for this page?',
|
68
|
+
'commands.edit_obj.dialog.description': 'A new version of this page will be created.',
|
69
|
+
'commands.edit_obj.dialog.placeholder': 'Comment',
|
70
|
+
'commands.edit_obj.dialog.confirm': 'Start a workflow',
|
71
|
+
'commands.edit_obj.failed': 'Workflow failed',
|
72
|
+
|
73
|
+
'commands.forward_obj.title': 'Forward page',
|
74
|
+
'commands.forward_obj.dialog.title': 'Forward this page?',
|
75
|
+
'commands.forward_obj.dialog.description': 'Forward and edited page is final. This operation cannot be reverted.',
|
76
|
+
'commands.forward_obj.dialog.placeholder': 'Comment',
|
77
|
+
'commands.forward_obj.dialog.confirm': 'Forward',
|
78
|
+
'commands.forward_obj.failed': 'Forward failed',
|
79
|
+
|
80
|
+
'commands.reject_obj.title': 'Reject page',
|
81
|
+
'commands.reject_obj.dialog.title': 'Reject this page?',
|
82
|
+
'commands.reject_obj.dialog.description': 'Current page will be rejected. This operation cannot be reverted.',
|
83
|
+
'commands.reject_obj.dialog.placeholder': 'Comment',
|
84
|
+
'commands.reject_obj.dialog.confirm': 'Reject',
|
85
|
+
'commands.reject_obj.failed': 'Reject failed',
|
86
|
+
|
87
|
+
'commands.sign_obj.title': 'Sign page',
|
88
|
+
'commands.sign_obj.dialog.title': 'Sign this page?',
|
89
|
+
'commands.sign_obj.dialog.description': 'Committed page will be signed. This operation cannot be reverted.',
|
90
|
+
'commands.sign_obj.dialog.placeholder': 'Comment',
|
91
|
+
'commands.sign_obj.dialog.confirm': 'Sign',
|
92
|
+
'commands.sign_obj.failed': 'Signing failed',
|
93
|
+
|
94
|
+
'commands.commit_obj.title': 'Commit page',
|
95
|
+
'commands.commit_obj.dialog.title': 'Commit this page?',
|
96
|
+
'commands.commit_obj.dialog.description': 'Die Arbeitsversion wird eingereicht. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
97
|
+
'commands.commit_obj.dialog.placeholder': 'Comment',
|
98
|
+
'commands.commit_obj.dialog.confirm': 'Commit',
|
99
|
+
'commands.commit_obj.failed': 'Commit failed',
|
100
|
+
|
101
|
+
'commands.take_obj.title': 'Take page',
|
102
|
+
'commands.take_obj.dialog.title': 'Tage this page?',
|
103
|
+
'commands.take_obj.dialog.description': 'Die Arbeitsversion wird übernommen. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
104
|
+
'commands.take_obj.dialog.placeholder': 'Comment',
|
105
|
+
'commands.take_obj.dialog.confirm': 'Take',
|
106
|
+
'commands.take_obj.failed': 'Take failed',
|
107
|
+
|
108
|
+
'editing_disabled.workflow': 'The current page belongs to a workflow and cannot be edited directly.',
|
109
|
+
'editing_disabled.permissions': 'You do not have the permissions required to edit this page.'
|
110
|
+
}, 'en');
|
111
|
+
|
112
|
+
$.i18n().load({
|
113
|
+
'commands.task_list.title': 'Aufgaben anzeigen',
|
114
|
+
'task_list_dialog.title.all': 'Aufgaben anzeigen: alle Aufgaben',
|
115
|
+
'task_list_dialog.title.user': 'Aufgaben anzeigen: meine Aufgaben',
|
116
|
+
'task_list_dialog.mode_toggle.all': 'Meine Aufgaben anzeigen',
|
117
|
+
'task_list_dialog.mode_toggle.user': 'Alle Aufgaben anzeigen',
|
118
|
+
'task_list_dialog.user_login': 'Benutzer',
|
119
|
+
'task_list_dialog.group_name': 'Gruppe',
|
120
|
+
'task_list_dialog.comment': 'Kommentar',
|
121
|
+
'task_list_dialog.empty': 'Keine Aufgaben'
|
122
|
+
}, 'de');
|
123
|
+
|
124
|
+
$.i18n().load({
|
125
|
+
'commands.task_list.title': 'Task list',
|
126
|
+
'task_list_dialog.title.all': 'Task list: All tasks',
|
127
|
+
'task_list_dialog.title.user': 'Task list: My tasks',
|
128
|
+
'task_list_dialog.mode_toggle.all': 'Show only my tasks',
|
129
|
+
'task_list_dialog.mode_toggle.user': 'Show all tasks',
|
130
|
+
'task_list_dialog.user_login': 'User',
|
131
|
+
'task_list_dialog.group_name': 'Receiving group',
|
132
|
+
'task_list_dialog.comment': 'Comment',
|
133
|
+
'task_list_dialog.empty': 'No taks'
|
134
|
+
}, 'en');
|
135
|
+
|
136
|
+
}());
|
@@ -8,6 +8,11 @@
|
|
8
8
|
//= require scrivito_patches/cms_rest_api
|
9
9
|
//= require scrivito_patches/obj_serializer
|
10
10
|
//= require scrivito_patches/binary_utils
|
11
|
+
//= require fiona7/translations
|
12
|
+
//= require fiona7/templates
|
13
|
+
//= require fiona7/task_list_dialog
|
14
|
+
//= require fiona7/task_list_command
|
15
|
+
//= require fiona7/task_list_menu_item
|
11
16
|
//= require_self
|
12
17
|
|
13
18
|
(function() {
|
@@ -15,6 +20,10 @@
|
|
15
20
|
var _ = window._;
|
16
21
|
var $ = window.$;
|
17
22
|
|
23
|
+
scrivito.gui.on('open', function() {
|
24
|
+
scrivito.task_list_menu_item.init();
|
25
|
+
});
|
26
|
+
|
18
27
|
var original_create_instance = scrivito.child_list_element.create_instance;
|
19
28
|
|
20
29
|
/* patch the create page command to not create incomprehensible paths */
|
@@ -41,6 +50,7 @@
|
|
41
50
|
icon: icon,
|
42
51
|
color: 'green',
|
43
52
|
accept_button_text: scrivito.t('commands.'+action+'_obj.dialog.confirm'),
|
53
|
+
allow_blank: true,
|
44
54
|
accept_button_color: 'green'
|
45
55
|
});
|
46
56
|
};
|
@@ -102,116 +112,6 @@
|
|
102
112
|
return deferred;
|
103
113
|
};
|
104
114
|
|
105
|
-
$.i18n().load({
|
106
|
-
'commands.release_obj.title': 'Seite freigeben',
|
107
|
-
'commands.release_obj.not_modified_obj': 'Diese Seite wurde nicht geändert. Daher gibt es nichts zu freigeben.',
|
108
|
-
'commands.release_obj.dialog.title': 'Änderungen an dieser Seite veröffentlichen?',
|
109
|
-
'commands.release_obj.dialog.description': 'Eine Arbeitsversion zu veröffentlichen ist endgültig. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
110
|
-
'commands.release_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
111
|
-
'commands.release_obj.dialog.confirm': 'Freigeben',
|
112
|
-
'commands.release_obj.failed': 'Freigabe fehlgeschlagen',
|
113
|
-
|
114
|
-
'commands.edit_obj.title': 'Workflow starten',
|
115
|
-
'commands.edit_obj.dialog.title': 'Workflow starten?',
|
116
|
-
'commands.edit_obj.dialog.description': 'Es wird eine neue Arbeitsversion erstellt.',
|
117
|
-
'commands.edit_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
118
|
-
'commands.edit_obj.dialog.confirm': 'Starten',
|
119
|
-
'commands.edit_obj.failed': 'Workflow fehlgeschlagen',
|
120
|
-
|
121
|
-
'commands.forward_obj.title': 'Seite weiterleiten',
|
122
|
-
'commands.forward_obj.dialog.title': 'Seite weiterleiten?',
|
123
|
-
'commands.forward_obj.dialog.description': 'Die Arbeitsversion wird an einen weiteren Bearbeiter weitergeleitet. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
124
|
-
'commands.forward_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
125
|
-
'commands.forward_obj.dialog.confirm': 'Weiterleiten',
|
126
|
-
'commands.forward_obj.failed': 'Weiterleitung fehlgeschlagen',
|
127
|
-
|
128
|
-
'commands.reject_obj.title': 'Seite ablehnen',
|
129
|
-
'commands.reject_obj.dialog.title': 'Seite ablehnen?',
|
130
|
-
'commands.reject_obj.dialog.description': 'Die Arbeitsversion wird abgelehnt. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
131
|
-
'commands.reject_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
132
|
-
'commands.reject_obj.dialog.confirm': 'Ablehnen',
|
133
|
-
'commands.reject_obj.failed': 'Ablehnung fehlgeschlagen',
|
134
|
-
|
135
|
-
'commands.sign_obj.title': 'Seite abzeichnen',
|
136
|
-
'commands.sign_obj.dialog.title': 'Seite abzeichnen?',
|
137
|
-
'commands.sign_obj.dialog.description': 'Die eingereichte Version wird abgezeichnet. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
138
|
-
'commands.sign_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
139
|
-
'commands.sign_obj.dialog.confirm': 'Abzeichnen',
|
140
|
-
'commands.sign_obj.failed': 'Abzeichnung fehlgeschlagen',
|
141
|
-
|
142
|
-
'commands.commit_obj.title': 'Seite einreichen',
|
143
|
-
'commands.commit_obj.dialog.title': 'Seite einreichen?',
|
144
|
-
'commands.commit_obj.dialog.description': 'Die Arbeitsversion wird eingereicht. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
145
|
-
'commands.commit_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
146
|
-
'commands.commit_obj.dialog.confirm': 'Einreichen',
|
147
|
-
'commands.commit_obj.failed': 'Einreichung fehlgeschlagen',
|
148
|
-
|
149
|
-
'commands.take_obj.title': 'Seite übernehmen',
|
150
|
-
'commands.take_obj.dialog.title': 'Seite übernehmen?',
|
151
|
-
'commands.take_obj.dialog.description': 'Die Arbeitsversion wird übernommen. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
152
|
-
'commands.take_obj.dialog.placeholder': 'Bitte Kommentar eintragen',
|
153
|
-
'commands.take_obj.dialog.confirm': 'Übernehmen',
|
154
|
-
'commands.take_obj.failed': 'Übernahme fehlgeschlagen',
|
155
|
-
|
156
|
-
'editing_disabled.workflow': 'Die Datei unterliegt einem Workflow und kann nicht direkt bearbeitet werden.',
|
157
|
-
'editing_disabled.permissions': 'Ihnen fehlen die Rechte um die Datei zu bearbeiten'
|
158
|
-
}, 'de');
|
159
|
-
|
160
|
-
$.i18n().load({
|
161
|
-
'commands.release_obj.title': 'Release page',
|
162
|
-
'commands.release_obj.not_modified_obj': 'This resource has not been modified. Therefore, nothing can be released.',
|
163
|
-
'commands.release_obj.dialog.title': 'Release this page?',
|
164
|
-
'commands.release_obj.dialog.description': 'Releasing an edited page is final. This operation cannot be reverted.',
|
165
|
-
'commands.release_obj.dialog.placeholder': 'Comment',
|
166
|
-
'commands.release_obj.dialog.confirm': 'Release',
|
167
|
-
'commands.release_obj.failed': 'Release failed',
|
168
|
-
|
169
|
-
'commands.edit_obj.title': 'Start a workflow',
|
170
|
-
'commands.edit_obj.dialog.title': 'Start a workflow for this page?',
|
171
|
-
'commands.edit_obj.dialog.description': 'A new version of this page will be created.',
|
172
|
-
'commands.edit_obj.dialog.placeholder': 'Comment',
|
173
|
-
'commands.edit_obj.dialog.confirm': 'Start a workflow',
|
174
|
-
'commands.edit_obj.failed': 'Workflow failed',
|
175
|
-
|
176
|
-
'commands.forward_obj.title': 'Forward page',
|
177
|
-
'commands.forward_obj.dialog.title': 'Forward this page?',
|
178
|
-
'commands.forward_obj.dialog.description': 'Forward and edited page is final. This operation cannot be reverted.',
|
179
|
-
'commands.forward_obj.dialog.placeholder': 'Comment',
|
180
|
-
'commands.forward_obj.dialog.confirm': 'Forward',
|
181
|
-
'commands.forward_obj.failed': 'Forward failed',
|
182
|
-
|
183
|
-
'commands.reject_obj.title': 'Reject page',
|
184
|
-
'commands.reject_obj.dialog.title': 'Reject this page?',
|
185
|
-
'commands.reject_obj.dialog.description': 'Current page will be rejected. This operation cannot be reverted.',
|
186
|
-
'commands.reject_obj.dialog.placeholder': 'Comment',
|
187
|
-
'commands.reject_obj.dialog.confirm': 'Reject',
|
188
|
-
'commands.reject_obj.failed': 'Reject failed',
|
189
|
-
|
190
|
-
'commands.sign_obj.title': 'Sign page',
|
191
|
-
'commands.sign_obj.dialog.title': 'Sign this page?',
|
192
|
-
'commands.sign_obj.dialog.description': 'Committed page will be signed. This operation cannot be reverted.',
|
193
|
-
'commands.sign_obj.dialog.placeholder': 'Comment',
|
194
|
-
'commands.sign_obj.dialog.confirm': 'Sign',
|
195
|
-
'commands.sign_obj.failed': 'Signing failed',
|
196
|
-
|
197
|
-
'commands.commit_obj.title': 'Commit page',
|
198
|
-
'commands.commit_obj.dialog.title': 'Commit this page?',
|
199
|
-
'commands.commit_obj.dialog.description': 'Die Arbeitsversion wird eingereicht. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
200
|
-
'commands.commit_obj.dialog.placeholder': 'Comment',
|
201
|
-
'commands.commit_obj.dialog.confirm': 'Commit',
|
202
|
-
'commands.commit_obj.failed': 'Commit failed',
|
203
|
-
|
204
|
-
'commands.take_obj.title': 'Take page',
|
205
|
-
'commands.take_obj.dialog.title': 'Tage this page?',
|
206
|
-
'commands.take_obj.dialog.description': 'Die Arbeitsversion wird übernommen. Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
207
|
-
'commands.take_obj.dialog.placeholder': 'Comment',
|
208
|
-
'commands.take_obj.dialog.confirm': 'Take',
|
209
|
-
'commands.take_obj.failed': 'Take failed',
|
210
|
-
|
211
|
-
'editing_disabled.workflow': 'The current page belongs to a workflow and cannot be edited directly.',
|
212
|
-
'editing_disabled.permissions': 'You do not have the permissions required to edit this page.'
|
213
|
-
}, 'en');
|
214
|
-
|
215
115
|
var dialog_icons = {
|
216
116
|
"edit": "",
|
217
117
|
"forward": "",
|
@@ -31,7 +31,10 @@
|
|
31
31
|
|
32
32
|
for (k in objParams) {
|
33
33
|
if (objParams.hasOwnProperty(k)) {
|
34
|
-
result =
|
34
|
+
result = objParams[k] && (scrivito.BinaryUtils.isFile(objParams[k]) ||
|
35
|
+
scrivito.BinaryUtils.isBlob(objParams[k]) ||
|
36
|
+
scrivito.BinaryUtils.isBlobWithName(objParams[k])
|
37
|
+
);
|
35
38
|
if (result) {
|
36
39
|
return result;
|
37
40
|
}
|
@@ -69,7 +72,7 @@
|
|
69
72
|
fd.append("obj[" + attr + "][" + w + "][" + widgetAttr + "]", widgetValue);
|
70
73
|
} else if (scrivito.BinaryUtils.isBlobWithName(widgetValue)) {
|
71
74
|
fd.append("obj[" + attr + "][" + w + "][" + widgetAttr + "]", widgetValue.blob_to_upload, widgetValue.filename);
|
72
|
-
} else if (typeof value === 'object') {
|
75
|
+
} else if (value && typeof value === 'object') {
|
73
76
|
// blob/copy rename
|
74
77
|
for (l in widgetValue) {
|
75
78
|
if (widgetValue.hasOwnProperty(l)) {
|
@@ -93,7 +96,7 @@
|
|
93
96
|
fd.append("obj[" + attr + "]", value);
|
94
97
|
} else if (scrivito.BinaryUtils.isBlobWithName(value)) {
|
95
98
|
fd.append("obj[" + attr + "]", value.blob_to_upload, value.filename);
|
96
|
-
} else if (typeof value === 'object') {
|
99
|
+
} else if (value && typeof value === 'object') {
|
97
100
|
// blob/copy rename
|
98
101
|
for (l in value) {
|
99
102
|
if (value.hasOwnProperty(l)) {
|
@@ -6,7 +6,7 @@
|
|
6
6
|
var message = undefined;
|
7
7
|
|
8
8
|
// -- PATCH BEGINS HERE --
|
9
|
-
if (typeof error === 'object' && error.message) {
|
9
|
+
if (error && typeof error === 'object' && error.message) {
|
10
10
|
scrivito.alertDialog(error.message);
|
11
11
|
} else {
|
12
12
|
message = scrivito.t('ajax_error.communication');
|
@@ -115,7 +115,7 @@
|
|
115
115
|
}
|
116
116
|
} else if (scrivito.BinaryUtils.isFile(value) || scrivito.BinaryUtils.isBlob(value)) {
|
117
117
|
return value;
|
118
|
-
} else if (typeof value === 'object' && value.id_to_copy) {
|
118
|
+
} else if (value && typeof value === 'object' && value.id_to_copy) {
|
119
119
|
return value;
|
120
120
|
} else {
|
121
121
|
invalidAttributeValue(value, name, 'A Binary.');
|
@@ -244,7 +244,7 @@
|
|
244
244
|
}
|
245
245
|
|
246
246
|
function isValidReference(value) {
|
247
|
-
return _.isString(value) || value instanceof scrivito.BasicObj;
|
247
|
+
return _.isString(value) || _.isNumber(value) || value instanceof scrivito.BasicObj;
|
248
248
|
}
|
249
249
|
|
250
250
|
function isValidReferencelistValue(value) {
|
@@ -230,7 +230,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
230
230
|
// if params[k] is an array
|
231
231
|
if (objParams[k].pop) {
|
232
232
|
// file uploads require form data
|
233
|
-
result = scrivito.BinaryUtils.isFile(objParams[k][1]) || scrivito.BinaryUtils.isBlob(objParams[k][1]) || scrivito.BinaryUtils.isBlobWithName(objParams[k][1]);
|
233
|
+
result = objParams[k][1] && (scrivito.BinaryUtils.isFile(objParams[k][1]) || scrivito.BinaryUtils.isBlob(objParams[k][1]) || scrivito.BinaryUtils.isBlobWithName(objParams[k][1]));
|
234
234
|
if (result) {
|
235
235
|
return result;
|
236
236
|
}
|
@@ -290,7 +290,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
290
290
|
var attr = _step2.value;
|
291
291
|
|
292
292
|
// attr is a [type, value] pair
|
293
|
-
if (typeof objParams[attr] === 'object' && objParams[attr].pop) {
|
293
|
+
if (objParams[attr] && typeof objParams[attr] === 'object' && objParams[attr].pop) {
|
294
294
|
var _objParams$attr = _slicedToArray(objParams[attr], 2);
|
295
295
|
|
296
296
|
var type = _objParams$attr[0];
|
@@ -309,7 +309,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
309
309
|
} else if (scrivito.BinaryUtils.isBlobWithName(value)) {
|
310
310
|
fd.append('params[obj][' + attr + '][]', type);
|
311
311
|
fd.append('params[obj][' + attr + '][]', value.blob_to_upload, value.filename);
|
312
|
-
} else if (typeof value === 'object') {
|
312
|
+
} else if (value && typeof value === 'object') {
|
313
313
|
// blob/copy rename
|
314
314
|
fd.append('params[obj][' + attr + '[]', type);
|
315
315
|
var _iteratorNormalCompletion3 = true;
|
@@ -380,7 +380,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
380
380
|
} else if (scrivito.BinaryUtils.isBlobWithName(widgetValue)) {
|
381
381
|
fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
|
382
382
|
fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetValue.blob_to_upload, widgetValue.filename);
|
383
|
-
} else if (typeof widgetValue === 'object') {
|
383
|
+
} else if (widgetValue && typeof widgetValue === 'object') {
|
384
384
|
// blob/copy rename
|
385
385
|
fd.append('params[obj][' + attr + '][' + widgetId + '][' + widgetAttr + '][]', widgetAttrType);
|
386
386
|
var _iteratorNormalCompletion6 = true;
|
@@ -126,7 +126,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== 'function'
|
|
126
126
|
var path = typeof page.provided_path === 'function' && page.provided_path();
|
127
127
|
if (path) {
|
128
128
|
var blobName = undefined;
|
129
|
-
if (typeof serializedAttributes.blob === 'object') {
|
129
|
+
if (serializedAttributes.blob && typeof serializedAttributes.blob === 'object') {
|
130
130
|
blobName = serializedAttributes.blob.name || serializedAttributes.blob.filename;
|
131
131
|
} else {
|
132
132
|
blobName = undefined;
|
@@ -202,7 +202,7 @@
|
|
202
202
|
var page = scrivito.application_document().page();
|
203
203
|
var path = (typeof page.provided_path === 'function') && page.provided_path();
|
204
204
|
var blobName;
|
205
|
-
if (typeof serialized_attrs.blob === 'object') {
|
205
|
+
if (serialized_attrs.blob && typeof serialized_attrs.blob === 'object') {
|
206
206
|
blobName = serialized_attrs.blob.name || serialized_attrs.blob.filename;
|
207
207
|
}
|
208
208
|
if (path) {
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'fiona7/tasks/loader'
|
2
|
+
|
3
|
+
module Fiona7
|
4
|
+
class TasksController < ActionController::Base
|
5
|
+
def index
|
6
|
+
@details_view = self.details_view_lambda
|
7
|
+
@tasks = Fiona7::Tasks::Loader.new(self.user_name).call
|
8
|
+
end
|
9
|
+
|
10
|
+
protected
|
11
|
+
def user_name
|
12
|
+
if params[:mode] == 'user'
|
13
|
+
rsession.user_name
|
14
|
+
else
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
def details_view_lambda
|
21
|
+
lambda do |obj|
|
22
|
+
begin
|
23
|
+
lookup_context.find(obj.details_view_path).present?
|
24
|
+
rescue ActionView::MissingTemplate
|
25
|
+
false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -32,7 +32,6 @@ module Fiona7OverrideHelper
|
|
32
32
|
tt = lambda {|action|
|
33
33
|
I18n.t(:"fiona7.workflow.#{action}", locale: locale)
|
34
34
|
}
|
35
|
-
# TODO: add translation
|
36
35
|
html = <<-EOHTML
|
37
36
|
<div class="btn-group workflow dropdown">
|
38
37
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module RailsConnector
|
2
|
+
class Task < AbstractModel
|
3
|
+
self.primary_key = "task_id"
|
4
|
+
|
5
|
+
def full_task_type
|
6
|
+
case task_type
|
7
|
+
when 'E'
|
8
|
+
'edit'
|
9
|
+
when 'S'
|
10
|
+
'sign'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def time_stamp_date
|
15
|
+
value = self.time_stamp
|
16
|
+
RailsConnector::DateAttribute.parse(value) unless value.nil?
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
json.tasks @tasks do |task|
|
2
|
+
json.user_login task.user_login
|
3
|
+
json.group_name task.group_name
|
4
|
+
json.last_changed task.obj.last_changed.to_iso
|
5
|
+
json.id task.id
|
6
|
+
json.obj_id task.obj.id
|
7
|
+
json.comment task.comment
|
8
|
+
|
9
|
+
json.obj do
|
10
|
+
json.id task.obj.id
|
11
|
+
json.obj_class task.obj.obj_class
|
12
|
+
json.description_for_editor task.obj.description_for_editor
|
13
|
+
json.modification task.obj.modification
|
14
|
+
json.is_binary task.obj.binary?
|
15
|
+
json.has_children task.obj.children.any?
|
16
|
+
json.has_conflict task.obj.has_conflict?
|
17
|
+
json.has_details_view @details_view[task.obj]
|
18
|
+
json.parent_path task.obj.parent_path
|
19
|
+
end
|
20
|
+
end
|
data/config/precedence_routes.rb
CHANGED
@@ -24,6 +24,8 @@ Fiona7::Engine.routes.draw do
|
|
24
24
|
|
25
25
|
|
26
26
|
get '/__scrivito/objs/:id/release/preview(.:format)', to: 'fiona7/release#preview', as: :fiona7_release_preview
|
27
|
+
|
28
|
+
get '/__scrivito/tasks', to: 'fiona7/tasks#index', as: :fiona7_tasks
|
27
29
|
end
|
28
30
|
|
29
31
|
Scrivito::SdkEngine.routes.draw do
|
data/infopark_fiona7.gemspec
CHANGED
@@ -15,11 +15,12 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.description = "scrivito-compatible interface for classic Fiona"
|
16
16
|
|
17
17
|
s.files = Dir["{app,config,db,lib}/**/*", "Rakefile", "README.md", "infopark_fiona7.gemspec"].reject do |f|
|
18
|
-
/^app\/assets.*\.es6\.js$/ =~ f
|
18
|
+
/^app\/assets.*\.es6\.js$/ =~ f ||
|
19
|
+
/^app\/assets.*\.hbs$/ =~ f
|
19
20
|
end.sort
|
20
21
|
|
21
22
|
s.add_dependency "rails", "~> 4.2.2"
|
22
|
-
s.add_dependency "scrivito", "= 1.5.
|
23
|
+
s.add_dependency "scrivito", "= 1.5.4"
|
23
24
|
s.add_dependency "scrivito_sdk"
|
24
25
|
s.add_dependency "scrivito_editors"
|
25
26
|
s.add_dependency "infopark_fiona_connector", "= 7.0.1.beta2"
|
data/lib/fiona7/engine.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'fiona7/obj_class_name_mangler'
|
2
|
+
|
3
|
+
module Fiona7
|
4
|
+
class ForbiddenObjClasses
|
5
|
+
SYSTEM_CLASSES = ['X_Generic', 'X_Image', 'X_Container'].freeze
|
6
|
+
|
7
|
+
def call
|
8
|
+
# NOTE: to_s handles shadow classes properly
|
9
|
+
widget_classes = Scrivito.models.widgets.map(&:to_s)
|
10
|
+
widget_obj_classes = widget_classes.map do |obj_class|
|
11
|
+
Fiona7::ObjClassNameMangler.new(obj_class).mangle
|
12
|
+
end
|
13
|
+
|
14
|
+
SYSTEM_CLASSES + widget_obj_classes
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'fiona7/forbidden_obj_classes'
|
2
|
+
require 'fiona7/tasks/task'
|
3
|
+
|
4
|
+
module Fiona7
|
5
|
+
module Tasks
|
6
|
+
class Loader
|
7
|
+
def initialize(user_name=nil, forbidden_classes=Fiona7::ForbiddenObjClasses.new.call)
|
8
|
+
self.user_name = user_name
|
9
|
+
self.forbidden_classes = forbidden_classes
|
10
|
+
end
|
11
|
+
|
12
|
+
def call
|
13
|
+
raw_tasks = RailsConnector::Task.where(self.user_login_condition).joins(
|
14
|
+
"INNER JOIN #{Fiona7::EditedObj.table_name} objs ON objs.obj_id = #{RailsConnector::Task.table_name}.obj_id"
|
15
|
+
).where(
|
16
|
+
"objs.obj_class NOT IN (?)", self.forbidden_classes
|
17
|
+
).order("#{RailsConnector::Task.table_name}.time_stamp DESC")
|
18
|
+
|
19
|
+
objs = nil
|
20
|
+
Scrivito::Workspace.find('rtc').as_current do
|
21
|
+
objs = Hash[
|
22
|
+
Scrivito::BasicObj.find(raw_tasks.map(&:obj_id)).map {|obj|
|
23
|
+
[obj.id.to_i, obj]
|
24
|
+
}
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
28
|
+
real_tasks = raw_tasks.map do |raw_task|
|
29
|
+
if obj = objs[raw_task.obj_id]
|
30
|
+
Fiona7::Tasks::Task.new(
|
31
|
+
raw_task.task_id, obj, raw_task.full_task_type,
|
32
|
+
raw_task.title, raw_task.user_login, raw_task.group_name,
|
33
|
+
raw_task.time_stamp_date, raw_task.task_comment
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# NOTE: this will cause to hide tasks which do not have
|
39
|
+
# a valid scrivito obj assigned
|
40
|
+
real_tasks.compact
|
41
|
+
end
|
42
|
+
|
43
|
+
protected
|
44
|
+
attr_accessor :user_name, :forbidden_classes
|
45
|
+
def user_login_condition
|
46
|
+
if self.user_name
|
47
|
+
{user_login: self.user_name}
|
48
|
+
else
|
49
|
+
{}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -139,7 +139,7 @@ module Fiona7
|
|
139
139
|
if [:objClass, :obj_id, :permalink, :lastChanged, :name].include?(field)
|
140
140
|
fields = [field.to_s]
|
141
141
|
else
|
142
|
-
fields = Fiona7::AttributeNamesFromQueries.new(field.to_s, @query).attributes || Fiona7::AttributeNamesFromCms.new(field.to_s).attributes || [field.to_s]
|
142
|
+
fields = (Fiona7::AttributeNamesFromQueries.new(field.to_s, @query).attributes || Fiona7::AttributeNamesFromCms.new(field.to_s).attributes).presence || [field.to_s]
|
143
143
|
# NOTE: verity does not like more than 94 fields in its queries
|
144
144
|
# so to be safe we limit the number of fields to 80
|
145
145
|
fields = fields[0, 80]
|
data/lib/fiona7/version.rb
CHANGED
@@ -5,60 +5,65 @@ require 'digest/sha1'
|
|
5
5
|
|
6
6
|
module Fiona7
|
7
7
|
class VersionHelper
|
8
|
-
attr_reader :revision_id, :content_state_id, :base_revision_id, :base_content_state_id
|
8
|
+
attr_reader :workspace_id, :revision_id, :content_state_id, :base_revision_id, :base_content_state_id
|
9
9
|
def initialize(workspace_id)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
@base_revision_id =
|
15
|
-
@base_content_state_id = published_revision_id
|
10
|
+
self.workspace_id = workspace_id.to_sym
|
11
|
+
|
12
|
+
if self.workspace_id == :published
|
13
|
+
self.compute_for_published
|
16
14
|
else
|
17
|
-
|
18
|
-
@content_state_id = rtc_revision_id
|
19
|
-
@base_revision_id =
|
20
|
-
@base_content_state_id = "f" * 40 #published_revision_id
|
15
|
+
self.compute_for_rtc
|
21
16
|
end
|
22
17
|
end
|
23
18
|
|
24
19
|
protected
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
#
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
#
|
33
|
-
|
20
|
+
attr_writer :workspace_id, :revision_id, :content_state_id, :base_revision_id, :base_content_state_id
|
21
|
+
|
22
|
+
def compute_for_published
|
23
|
+
# NOTE: with this implementation
|
24
|
+
#
|
25
|
+
# released content changed => revision change
|
26
|
+
#
|
27
|
+
# but not neccessarily
|
28
|
+
#
|
29
|
+
# revision change => released content changed
|
30
|
+
#
|
31
|
+
query = Fiona7::WriteObj.select('max(last_changed), count(*)').where('is_released = 1 AND is_edited = 0').to_sql
|
32
|
+
last_changed, obj_count = *Fiona7::WriteObj.connection.execute(query).first
|
34
33
|
|
35
|
-
#
|
36
|
-
|
37
|
-
#rescue => e
|
38
|
-
# Rails.logger.debug(e.backtrace.join("\n"))
|
39
|
-
#end
|
34
|
+
# tag + padding + obj_count (hex) + last changed
|
35
|
+
revision_id = "f" + ('0' * 17) + ("%08x" % obj_count.to_i) + last_changed.to_s
|
40
36
|
|
41
|
-
@
|
37
|
+
@revision_id =
|
38
|
+
@content_state_id =
|
39
|
+
@base_revision_id =
|
40
|
+
@base_content_state_id = revision_id
|
42
41
|
end
|
43
42
|
|
44
|
-
def
|
45
|
-
|
46
|
-
|
43
|
+
def compute_for_rtc
|
44
|
+
first_query = Fiona7::WriteObj.select('1, count(*), max(last_changed), NULL').to_sql
|
45
|
+
second_query= Fiona7::WriteObj.select("obj_id, is_released, last_changed, attr_values").order("last_changed DESC").limit(23).to_sql
|
46
|
+
third_query = Fiona7::WriteObj.select('1, count(*), max(last_changed), NULL').where('is_released = 1 AND is_edited = 0').to_sql
|
47
|
+
union_query = "SELECT * FROM ( #{first_query} ) QUERY1 UNION ALL SELECT * FROM ( #{second_query} ) QUERY2 UNION ALL SELECT * FROM ( #{third_query} ) QUERY3"
|
47
48
|
|
48
|
-
first_query = klass.select("obj_id, count(*), last_changed, attr_values").to_sql
|
49
|
-
# NOTE: the hidden assumption here is that no more than 23 object have been changed in the last second
|
50
|
-
second_query= klass.select("obj_id, is_released, last_changed, attr_values").order("last_changed DESC").limit(23).to_sql
|
51
|
-
union_query = "SELECT * FROM ( #{first_query} ) QUERY1 UNION ALL SELECT * FROM ( #{second_query} ) QUERY2"
|
52
49
|
# only one query executed
|
53
|
-
results
|
54
|
-
obj_count
|
55
|
-
|
50
|
+
results = Fiona7::WriteObj.connection.execute(union_query).to_a
|
51
|
+
_, obj_count, last_changed= *results.shift
|
52
|
+
_, pobj_count, plast_changed= *results.pop
|
53
|
+
changed_contents = results
|
54
|
+
|
55
|
+
content_digest = Digest::SHA1.hexdigest("#{changed_contents}")[0,17]
|
56
|
+
|
57
|
+
# tag + content digest + obj_count (hex) + last changed
|
58
|
+
rtc_version_id = "b" + content_digest + ("%08x" % obj_count.to_i) + last_changed.to_s
|
59
|
+
# tag + padding + obj_count (hex) + last changed
|
60
|
+
published_version_id = "f" + ('0' * 17) + ("%08x" % pobj_count.to_i) + plast_changed.to_s
|
56
61
|
|
57
|
-
revision_id =
|
62
|
+
@revision_id =
|
63
|
+
@content_state_id = rtc_version_id
|
58
64
|
|
59
|
-
|
60
|
-
|
61
|
-
@rtc_revision_id = revision_id
|
65
|
+
@base_revision_id =
|
66
|
+
@base_content_state_id = published_version_id
|
62
67
|
end
|
63
68
|
|
64
69
|
end
|
data/lib/fiona7/workspace.rb
CHANGED
@@ -26,7 +26,8 @@ module Fiona7
|
|
26
26
|
|
27
27
|
def title
|
28
28
|
if self.id == :rtc
|
29
|
-
|
29
|
+
|
30
|
+
self.localized_title
|
30
31
|
else
|
31
32
|
nil
|
32
33
|
end
|
@@ -74,5 +75,11 @@ module Fiona7
|
|
74
75
|
|
75
76
|
protected
|
76
77
|
attr_reader :version_helper
|
78
|
+
def localized_title
|
79
|
+
locale = Scrivito::Configuration.ui_locale || I18n.locale
|
80
|
+
I18n.t(:"fiona7.workspace.rtc", locale: locale)
|
81
|
+
rescue
|
82
|
+
'Arbeitskopie '
|
83
|
+
end
|
77
84
|
end
|
78
85
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infopark_fiona7
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.3.
|
4
|
+
version: 1.5.4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Przedmojski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.5.
|
33
|
+
version: 1.5.4
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.5.
|
40
|
+
version: 1.5.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: scrivito_sdk
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,6 +134,11 @@ files:
|
|
134
134
|
- app/assets/images/fiona7-logo.png
|
135
135
|
- app/assets/images/fiona7-marker.png
|
136
136
|
- app/assets/javascripts/fiona7.js
|
137
|
+
- app/assets/javascripts/fiona7/task_list_command.js
|
138
|
+
- app/assets/javascripts/fiona7/task_list_dialog.js
|
139
|
+
- app/assets/javascripts/fiona7/task_list_menu_item.js
|
140
|
+
- app/assets/javascripts/fiona7/templates.js
|
141
|
+
- app/assets/javascripts/fiona7/translations.js
|
137
142
|
- app/assets/javascripts/fiona7_ui.js
|
138
143
|
- app/assets/javascripts/scrivito_patches/ajax.js
|
139
144
|
- app/assets/javascripts/scrivito_patches/ajax_error_handling.js
|
@@ -153,6 +158,7 @@ files:
|
|
153
158
|
- app/controllers/fiona7/default_scrivito_cms_controller.rb
|
154
159
|
- app/controllers/fiona7/release_controller.rb
|
155
160
|
- app/controllers/fiona7/sessions_controller.rb
|
161
|
+
- app/controllers/fiona7/tasks_controller.rb
|
156
162
|
- app/controllers/fiona7/workflow_controller.rb
|
157
163
|
- app/controllers/fiona7_login_page_controller.rb
|
158
164
|
- app/controllers/scrivito/cms_dispatch_controller.rb
|
@@ -164,12 +170,15 @@ files:
|
|
164
170
|
- app/models/fiona7/edited_obj.rb
|
165
171
|
- app/models/fiona7/internal_released_obj.rb
|
166
172
|
- app/models/fiona7/released_obj.rb
|
173
|
+
- app/models/fiona7/task.rb
|
167
174
|
- app/models/fiona7/write_obj.rb
|
168
175
|
- app/models/fiona7_login_page.rb
|
176
|
+
- app/models/rails_connector/task.rb
|
169
177
|
- app/models/x_container.rb
|
170
178
|
- app/models/x_generic.rb
|
171
179
|
- app/models/x_image.rb
|
172
180
|
- app/views/fiona7/release/preview.html.erb
|
181
|
+
- app/views/fiona7/tasks/index.jbuilder
|
173
182
|
- app/views/fiona7_login_page/index.html.erb
|
174
183
|
- app/views/layouts/fiona7_login_page_layout.html.erb
|
175
184
|
- app/views/scrivito/ui/index.html.erb
|
@@ -180,6 +189,7 @@ files:
|
|
180
189
|
- config/locales/permissions.yml
|
181
190
|
- config/locales/release.yml
|
182
191
|
- config/locales/workflow.yml
|
192
|
+
- config/locales/workspace.yml
|
183
193
|
- config/precedence_routes.rb
|
184
194
|
- infopark_fiona7.gemspec
|
185
195
|
- lib/fiona7/access_permission_check.rb
|
@@ -255,6 +265,7 @@ files:
|
|
255
265
|
- lib/fiona7/facet_builder.rb
|
256
266
|
- lib/fiona7/fiona_connector_patches/basic_obj.rb
|
257
267
|
- lib/fiona7/fiona_connector_patches/cms_accessible.rb
|
268
|
+
- lib/fiona7/forbidden_obj_classes.rb
|
258
269
|
- lib/fiona7/in_editable_view.rb
|
259
270
|
- lib/fiona7/initializer.rb
|
260
271
|
- lib/fiona7/json/obj_decorator.rb
|
@@ -311,6 +322,8 @@ files:
|
|
311
322
|
- lib/fiona7/shadow_classes.rb
|
312
323
|
- lib/fiona7/super_object_finder.rb
|
313
324
|
- lib/fiona7/table_switcher.rb
|
325
|
+
- lib/fiona7/tasks/loader.rb
|
326
|
+
- lib/fiona7/tasks/task.rb
|
314
327
|
- lib/fiona7/tools/attribute_remover.rb
|
315
328
|
- lib/fiona7/type_loader.rb
|
316
329
|
- lib/fiona7/type_register.rb
|