scrivito_sdk 0.40.0.rc1 → 0.40.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8252a5e0d8e9065485321bf6b634ffd8b3cf7af5
4
- data.tar.gz: c9dd3a959868293794361fbd0d03eac3fa7c5e2a
3
+ metadata.gz: 7498188dfcdfe0f66634fda2984b92bbf6385cfa
4
+ data.tar.gz: fe7358c377c964a4ca0e5f9240785ac2ab55b3c2
5
5
  SHA512:
6
- metadata.gz: d22f78b19c0d6d92b6a7761dcd5915f2542e681ab155666d773a11edeadf264b8c690847d18f80f47141c91a211f68ee23908e6f3078f4b200531c038c145d99
7
- data.tar.gz: f2d5bae0a15db0c9fa70ebc23cf0866b9c0b6156731312e3c97d440b7a85de0fdb93b81b6bc18a05ba75ed6d4c751e48cae4324b428bc8403e0995107822b7d2
6
+ metadata.gz: 691ab70b6dae7619714d36bbbfd82113b2f967f8bb5f410e685fff5d6d5de3cdeb9b1c35b9ef407c17a1a83ddb5de54a6e5fb46697307052b4cd3780f78304e4
7
+ data.tar.gz: adce3b4e426bd92db2057e60143a65b4b5953779d12f50a0cbcae67292bccde50f978771d42948df0581be1f77b9cd1b65e850d0c23aa738fe298f0f75c98dfc
data/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # Scrivito SDK
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/scrivito_sdk.png)](http://badge.fury.io/rb/scrivito_sdk)
4
+
5
+ The Scrivito SDK makes CMS objects maintained by means of the cloud-based Scrivito CMS available
6
+ to your Rails application. It offers easy-to-use functionality for rendering CMS content, doing
7
+ searches, etc. For more information about Scrivito, please visit https://scrivito.com/.
8
+
9
+ ## License
10
+
11
+ Copyright (c) 2009 - 2014 Infopark AG (http://www.infopark.com)
12
+
13
+ This software can be used and modified under the LGPL-3.0. Please refer to
14
+ http://www.gnu.org/licenses/lgpl-3.0.html for the license text.
@@ -1,6 +1,6 @@
1
1
  json.total @enumerator.size
2
2
  json.hits do
3
3
  json.merge!(@enumerator.load_batch.map { |obj|
4
- @formatter.call(obj, scrivito_user)
4
+ @formatter.call(obj, scrivito_user, controller.view_context)
5
5
  })
6
6
  end
@@ -7,7 +7,8 @@
7
7
  <%= stylesheet_link_tag 'scrivito_ui_extensions' %>
8
8
  <%= javascript_include_tag 'scrivito_ui_extensions' %>
9
9
  </head>
10
- <body>
11
- <iframe name="scrivito_application" src="<%= @application_src %>">
10
+ <body id="scrivito_ui">
11
+ <iframe name="scrivito_application" src="<%= @application_src %>"></iframe>
12
+ <%= scrivito_body_tags %>
12
13
  </body>
13
14
  </html>
data/config/ca-bundle.crt CHANGED
@@ -1,7 +1,7 @@
1
1
  ##
2
2
  ## Bundle of CA Root Certificates
3
3
  ##
4
- ## Certificate data from Mozilla as of: Wed Jan 14 13:59:44 2015
4
+ ## Certificate data from Mozilla as of: Fri Jan 23 00:31:10 2015
5
5
  ##
6
6
  ## This is a bundle of X.509 certificates of public Certificate Authorities
7
7
  ## (CA). These were automatically extracted from Mozilla's root certificates
@@ -2,29 +2,45 @@
2
2
  if (window.parent !== window) {
3
3
  var scrivito_ui = window.parent.scrivito;
4
4
  if (scrivito_ui) {
5
+ // In an iframe and parent window contains the UI: in UI mode.
5
6
  var cms_document = scrivito_ui.cms_element.from_dom_element($(document));
6
7
  cms_document.install_public_api();
8
+
7
9
  $(function() {
8
- if (!scrivito_ui.is_inited()) {
9
- var config = scrivito_ui.dom_config.read($('body'));
10
- if (!config) {
11
- $.error('Scrivito config missing. Did you forget to include scrivito_body_tags in layout?');
10
+ var dom_config = scrivito_ui.dom_config.read($('body'));
11
+ if (scrivito_ui.is_inited()) {
12
+ if (!dom_config) {
13
+ // UI is already running, but editing is not allowed: reload UI to make it disappear.
14
+ window.parent.location.reload();
15
+ }
16
+ } else {
17
+ if (!dom_config) {
18
+ // UI is not yet running and config is missing.
19
+ $.error('Missing Scrivito config. Did you forget to include scrivito_body_tags in layout?');
12
20
  }
13
- scrivito_ui.init(config);
21
+ scrivito_ui.init(dom_config);
14
22
  scrivito_ui.gui.start();
23
+ if (window.parent.location.hash.length) {
24
+ location.hash = window.parent.location.hash;
25
+ }
15
26
  }
16
27
  cms_document.connect();
17
28
  });
18
29
  }
19
30
  } else {
20
31
  $(function() {
21
- if ($('*[data-scrivito-private-config]').length) {
32
+ // Not in UI mode, but editing is allowed: redirect to the UI mode.
33
+ if ($('[data-scrivito-private-config]').length) {
22
34
  console.log('Scrivito config found: redirecting to the UI...');
23
- window.location = '/scrivito'+window.location.pathname;
35
+ window.location = '/scrivito' +
36
+ window.location.pathname +
37
+ window.location.search +
38
+ window.location.hash;
24
39
  }
25
40
  });
26
41
  }
27
42
 
43
+ // If the SDK is completely missing, the custom callbacks should nevertheless run.
28
44
  if (!window.scrivito) {
29
45
  window.scrivito = {
30
46
  on: function(event_name, callback) {
@@ -24398,6 +24398,7 @@ $.i18n().load({
24398
24398
  'commands.revert_obj.dialog.confirm': 'Verwerfen',
24399
24399
 
24400
24400
  'commands.revert_widget.title': 'Änderungen am Widget verwerfen',
24401
+ 'commands.revert_widget.rtc_workspace': 'Dieses Widget ist Teil der "rtc"-Arbeitskopie, bei der Änderungen an Widgets nicht verworfen werden können.',
24401
24402
  'commands.revert_widget.is_new': 'Dies ist ein neues Widget. Um die Erstellung dieses Widgets rückgängig zu machen, löschen Sie es bitte.',
24402
24403
  'commands.revert_widget.is_not_modified': 'Dieses Widget wurde nicht geändert. Daher gibt es nichts zu verwerfen.',
24403
24404
  'commands.revert_widget.dialog.title': 'Wirklich Änderungen an diesem Widget verwerfen?',
@@ -24612,6 +24613,7 @@ $.i18n().load({
24612
24613
  'commands.revert_obj.dialog.confirm': 'Discard',
24613
24614
 
24614
24615
  'commands.revert_widget.title': 'Discard changes to widget',
24616
+ 'commands.revert_widget.rtc_workspace': 'This widget is part of the "rtc" working copy, for which discarding changes to a widgets is not supported.',
24615
24617
  'commands.revert_widget.is_new': 'This is a new widget. To discard the creation of this widget, please delete it.',
24616
24618
  'commands.revert_widget.is_not_modified': 'This widget has not been modified. Therefore, nothing can be discarded.',
24617
24619
  'commands.revert_widget.dialog.title': 'Really discard changes to this widget?',
@@ -25120,7 +25122,7 @@ var scrivito = {};
25120
25122
  var reload = function(dom_element) {
25121
25123
  assert_valid_dom_element(dom_element);
25122
25124
  build_cms_element(dom_element);
25123
- dom_element.trigger('reload.scrivito');
25125
+ $(dom_element).trigger('reload.scrivito');
25124
25126
  };
25125
25127
 
25126
25128
  $.extend(scrivito, {
@@ -25166,13 +25168,18 @@ var scrivito = {};
25166
25168
  }());
25167
25169
  (function() {
25168
25170
  _.extend(scrivito, {
25169
- url_update: function(source_window, target_window) {
25170
- if (source_window === target_window) { return; }
25171
- source_window.on('document', function(cms_document) {
25172
- var target_path = location.origin + '/scrivito' +
25173
- cms_document.browser_window().location.pathname +
25174
- cms_document.browser_window().location.search;
25175
- target_window.browser_window().history.replaceState({}, '', target_path);
25171
+ url_update: function(application_cms_window, ui_cms_window) {
25172
+ if (application_cms_window === ui_cms_window) { return; }
25173
+
25174
+ application_cms_window.on('document', function(application_document) {
25175
+ var ui_window = ui_cms_window.browser_window();
25176
+ var application_window = application_document.browser_window();
25177
+
25178
+ var ui_url = ui_window.location.origin + '/scrivito' +
25179
+ application_window.location.pathname +
25180
+ application_window.location.search +
25181
+ application_window.location.hash;
25182
+ ui_window.history.replaceState({}, '', ui_url);
25176
25183
  });
25177
25184
  }
25178
25185
  });
@@ -26435,7 +26442,7 @@ var scrivito = {};
26435
26442
  // PUBLIC
26436
26443
  _.extend(that, {
26437
26444
  install_public_api: function() {
26438
- local_$.fn.scrivito = scrivito.jquery_plugin;
26445
+ local_$().fn.scrivito = scrivito.jquery_plugin;
26439
26446
 
26440
26447
  browser_window.scrivito = _.extend({}, additional_public_api, {
26441
26448
  on: local_on_function,
@@ -26486,7 +26493,7 @@ var scrivito = {};
26486
26493
 
26487
26494
  // return the given dom element using the local jQuery lib or the lib itself.
26488
26495
  local_jquery: function(element) {
26489
- return element ? local_$(element) : local_$;
26496
+ return element ? local_$()(element) : local_$();
26490
26497
  },
26491
26498
 
26492
26499
  browser_window: function() {
@@ -26523,7 +26530,9 @@ var scrivito = {};
26523
26530
 
26524
26531
  var browser_window = browser_document.defaultView;
26525
26532
 
26526
- var local_$ = browser_window.jQuery;
26533
+ var local_$ = function() {
26534
+ return browser_window.jQuery;
26535
+ };
26527
26536
 
26528
26537
  var connected = false;
26529
26538
  var load_callbacks = [];
@@ -28398,9 +28407,7 @@ var scrivito = {};
28398
28407
  scrivito.gui.on('document', function(cms_document) {
28399
28408
  var body = cms_document.dom_element().find('body');
28400
28409
 
28401
- body.on('reload.scrivito', function() {
28402
- cms_document.window().reload();
28403
- });
28410
+ $(body).on('reload.scrivito', function() { cms_document.window().reload(); });
28404
28411
 
28405
28412
  // TODO: remove this in 1.0.0.
28406
28413
  cms_document.local_jquery(body).on('scrivito_reload', function() {
@@ -29373,6 +29380,9 @@ var scrivito = {};
29373
29380
  },
29374
29381
 
29375
29382
  disabled: function() {
29383
+ if (scrivito.editing_context.selected_workspace.is_rtc()) {
29384
+ return scrivito.t('commands.revert_widget.rtc_workspace');
29385
+ }
29376
29386
  if (widget.is_new()) {
29377
29387
  return scrivito.i18n.translate('commands.revert_widget.is_new');
29378
29388
  }
@@ -29828,12 +29838,16 @@ var scrivito = {};
29828
29838
  return false;
29829
29839
  };
29830
29840
 
29831
- jquery_object.on('reload.scrivito', function() { activate(); });
29841
+ $(jquery_object).on('reload.scrivito', function() {
29842
+ activate();
29843
+ return false;
29844
+ });
29832
29845
 
29833
29846
  // TODO: remove this in 1.0.0.
29834
29847
  scrivito.cms_document.local_jquery(jquery_object).on('scrivito_reload', function() {
29835
29848
  scrivito.deprecation_warning('$.trigger("scrivito_reload")', '$.scrivito("reload")');
29836
29849
  activate();
29850
+ return false;
29837
29851
  });
29838
29852
  };
29839
29853
  }());
@@ -30393,6 +30407,34 @@ var scrivito = {};
30393
30407
 
30394
30408
  (function() {
30395
30409
  $(function() {
30396
- scrivito.application_window = scrivito.cms_window.from($('iframe[name=scrivito_application]'));
30410
+ var iframe = $('iframe[name=scrivito_application]');
30411
+ scrivito.application_window = scrivito.cms_window.from(iframe);
30412
+
30413
+ // Fallback behavior in case that application window renders a page with no SDK, e.g. an error
30414
+ // or a static page.
30415
+ iframe.on('load', function() {
30416
+ var has_config = !!scrivito.application_document().dom_element()
30417
+ .find('[data-scrivito-private-config]').length;
30418
+ var has_sdk = !!scrivito.application_window.browser_window().scrivito;
30419
+
30420
+ // The application window is completely missing the SDK and the config.
30421
+ if (!has_config && !has_sdk) {
30422
+ // Install jQuery in order to allow correct application document bootstrapping.
30423
+ var browser_window = scrivito.application_window.browser_window();
30424
+ if (!browser_window.jQuery) { browser_window.jQuery = jQuery; }
30425
+ if (!browser_window.$) { browser_window.$ = $; }
30426
+
30427
+ // Bootstrap the application document.
30428
+ var application_document = scrivito.application_document();
30429
+ application_document.install_public_api();
30430
+ if (!scrivito.is_inited()) {
30431
+ // Start the UI if it is the first open, which responds with an error.
30432
+ // Use the fallback config with no page context.
30433
+ scrivito.init(scrivito.dom_config.read($('body')));
30434
+ scrivito.gui.start();
30435
+ }
30436
+ application_document.connect();
30437
+ }
30438
+ });
30397
30439
  });
30398
30440
  }());
@@ -3144,5 +3144,5 @@ html[dir="rtl"] .select2-container-multi .select2-search-choice-close {
3144
3144
  */
3145
3145
 
3146
3146
 
3147
- body { overflow: hidden }
3148
- iframe[name=scrivito_application] { border: 0px; width: 100%; height: 100%; position: absolute; top: 45px; left: 0px; }
3147
+ body { overflow: hidden; position: fixed; margin: 0px; top: 45px; left: 0px; right: 0px; bottom: 0px; }
3148
+ iframe[name=scrivito_application] { border: 0px; width: 100%; height: 100%; position: absolute; top: 0px; left: 0px; }
@@ -31,7 +31,7 @@ module Scrivito
31
31
  File.join(Scrivito::Configuration.migration_path, 'install_scrivito_migration.rb')
32
32
  end
33
33
 
34
- def copy_page_resources
34
+ def copy_page_files
35
35
  copy_file 'app/models/page.rb'
36
36
  copy_file 'app/controllers/page_controller.rb'
37
37
  copy_file 'app/views/page/details.html.erb'
@@ -39,23 +39,24 @@ module Scrivito
39
39
  copy_file 'app/views/page/thumbnail.html.erb'
40
40
  end
41
41
 
42
- def copy_image_resources
42
+ def copy_resource_files
43
43
  copy_file 'app/models/image.rb'
44
+ copy_file 'app/models/download.rb'
44
45
  end
45
46
 
46
- def copy_headline_widget_resources
47
+ def copy_headline_widget_files
47
48
  copy_file 'app/models/headline_widget.rb'
48
49
  copy_file 'app/views/headline_widget/show.html.erb'
49
50
  copy_file 'app/views/headline_widget/thumbnail.html.erb'
50
51
  end
51
52
 
52
- def copy_text_widget_resources
53
+ def copy_text_widget_files
53
54
  copy_file 'app/models/text_widget.rb'
54
55
  copy_file 'app/views/text_widget/show.html.erb'
55
56
  copy_file 'app/views/text_widget/thumbnail.html.erb'
56
57
  end
57
58
 
58
- def copy_image_widget_resources
59
+ def copy_image_widget_files
59
60
  copy_file 'app/models/image_widget.rb'
60
61
  copy_file 'app/views/image_widget/show.html.erb'
61
62
  copy_file 'app/views/image_widget/thumbnail.html.erb'
@@ -0,0 +1,5 @@
1
+ class Download < Obj
2
+ #
3
+ # Download (binary)
4
+ #
5
+ end
@@ -22,6 +22,10 @@ class InstallScrivitoMigration < Scrivito::Migration
22
22
  {name: 'image', type: 'reference'}
23
23
  ])
24
24
 
25
+ Scrivito::ObjClass.create(name: 'Download', attributes:[
26
+ {name: 'blob', type: 'binary'},
27
+ ])
28
+
25
29
  Page.create(_path: '/', title: 'Welcome to Scrivito!', body: [
26
30
  HeadlineWidget.new(headline: 'A professional Cloud CMS built for Ruby on Rails.'),
27
31
  TextWidget.new(text: %{
@@ -33,14 +33,19 @@ module Scrivito
33
33
  end
34
34
 
35
35
  def self.convert_link(link_data, request_host, request_port)
36
- if link_data && link_data.has_key?(:url)
36
+ return unless link_data
37
+
38
+ if url = link_data.delete(:url)
37
39
  link_data.delete(:obj_id)
38
- url = link_data.delete(:url)
39
40
  link = Link.parse(url, request_host, request_port)
40
41
  link_data.merge!(link.to_cms_api_linklist_params)
41
42
  end
42
43
 
43
- link_data
44
+ if obj_id = link_data.delete(:obj_id)
45
+ link_data.merge!(obj: Obj.find(obj_id))
46
+ end
47
+
48
+ Link.new(link_data)
44
49
  end
45
50
  end
46
51
 
@@ -5,8 +5,8 @@ class TypeComputer
5
5
  @base_class, @fallback_class = base_class, fallback_class
6
6
  end
7
7
 
8
- def compute_type(obj_class)
9
- load_class(obj_class) || @fallback_class
8
+ def compute_type(obj_class_name)
9
+ load_class(obj_class_name) || @fallback_class
10
10
  end
11
11
 
12
12
  def special_class?(klass)
@@ -15,8 +15,8 @@ class TypeComputer
15
15
 
16
16
  private
17
17
 
18
- def load_class(obj_class)
19
- klass = obj_class.constantize
18
+ def load_class(obj_class_name)
19
+ klass = obj_class_name.constantize
20
20
  klass if inherits_from_base?(klass)
21
21
  rescue NameError
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scrivito_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.40.0.rc1
4
+ version: 0.40.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infopark AG
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-14 00:00:00.000000000 Z
11
+ date: 2015-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -157,6 +157,7 @@ extensions: []
157
157
  extra_rdoc_files: []
158
158
  files:
159
159
  - .yardopts
160
+ - README.md
160
161
  - app/controllers/scrivito/blobs_controller.rb
161
162
  - app/controllers/scrivito/default_cms_controller.rb
162
163
  - app/controllers/scrivito/objs_controller.rb
@@ -210,6 +211,7 @@ files:
210
211
  - lib/generators/scrivito/install/install_generator.rb
211
212
  - lib/generators/scrivito/install/templates/app/controllers/cms_controller.rb
212
213
  - lib/generators/scrivito/install/templates/app/controllers/page_controller.rb
214
+ - lib/generators/scrivito/install/templates/app/models/download.rb
213
215
  - lib/generators/scrivito/install/templates/app/models/headline_widget.rb
214
216
  - lib/generators/scrivito/install/templates/app/models/image.rb
215
217
  - lib/generators/scrivito/install/templates/app/models/image_widget.rb