scrivito_content_browser 1.5.5 → 1.6.0.rc1

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: e6dedcb0f78684ca57d04192be2ea9efa1b1c6a1
4
- data.tar.gz: 96c59dc878010077552e1c89e9ff4471d9768abc
3
+ metadata.gz: 368c742f5efb9d2bd399683b6b0a1dd63474fc68
4
+ data.tar.gz: 827a4bd6e3bf82cceede5a870122df948433eef5
5
5
  SHA512:
6
- metadata.gz: 061cb80a6a06a61547242e5a6b1945e80a6669bff1450f7660c589ff3f0b13d13e6e257bbbc7a9b0fdf142c29443c455f2fa94dc9eecfb31103d42bcc2d3f7d7
7
- data.tar.gz: b90112ad6e2d033879c60827e09957755275f3301f5bbb29868a8ec34ce79d90d66f35f84f13b64b4927ef906e77ae0753ac58318df85d4d235d80dc9c1fe7d6
6
+ metadata.gz: 0811abb6434da6c907a2fda67447a9c1bde36759756d38767d660f2e46099db3a0cc6664856ddb888f4d58c37dcb894af6ff5ff6204fdd116e6f430b6c801b90
7
+ data.tar.gz: 40aca6adc8c32337f3761eadd54973d893a58c8d87777570639eb1d4dcf1145d95e9199048c4fc6268df5e4294c202291dfaf4d1532beb13631a0dca71c5cd9f
@@ -60,7 +60,7 @@
60
60
 
61
61
  Provider = ReactRedux.Provider;
62
62
 
63
- configureStore = __webpack_require__(258);
63
+ configureStore = __webpack_require__(259);
64
64
 
65
65
  scrivito.content_browser = (function() {
66
66
  return {
@@ -193,11 +193,16 @@
193
193
  return scrivito.content_browser;
194
194
  });
195
195
 
196
- scrivito.registerBrowseContent(function() {
197
- return scrivito.content_browser.open({
196
+ scrivito.registerBrowseContent(function(options) {
197
+ var defaultOptions;
198
+ if (options == null) {
199
+ options = {};
200
+ }
201
+ defaultOptions = {
198
202
  selection_mode: 'single',
199
203
  standAlone: true
200
- });
204
+ };
205
+ return scrivito.content_browser.open(_.extend(defaultOptions, options));
201
206
  });
202
207
 
203
208
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
@@ -3740,7 +3745,7 @@
3740
3745
  'content_browser.table_view.file_size': 'File size',
3741
3746
  'content_browser.table_view.last_change': 'Last change',
3742
3747
  'content_browser.sort.relevance.title': 'Sort by relevance',
3743
- 'content_browser.sort.relevance.asc_criteria_title': 'Relevance',
3748
+ 'content_browser.sort.relevance.desc_criteria_title': 'Relevance',
3744
3749
  'content_browser.sort.file_name.title': 'Sort by filename',
3745
3750
  'content_browser.sort.file_name.asc_criteria_title': 'Filename: From A to Z',
3746
3751
  'content_browser.sort.file_name.desc_criteria_title': 'Filename: From Z to A',
@@ -3784,7 +3789,7 @@
3784
3789
  'content_browser.table_view.file_size': 'Dateigröße',
3785
3790
  'content_browser.table_view.last_change': 'Letzte Änderung',
3786
3791
  'content_browser.sort.relevance.title': 'Nach Relevanz sortieren',
3787
- 'content_browser.sort.relevance.asc_criteria_title': 'Relevanz',
3792
+ 'content_browser.sort.relevance.desc_criteria_title': 'Relevanz',
3788
3793
  'content_browser.sort.file_name.title': 'Nach Dateiname sortieren',
3789
3794
  'content_browser.sort.file_name.asc_criteria_title': 'Dateiname: Von A bis Z',
3790
3795
  'content_browser.sort.file_name.desc_criteria_title': 'Dateiname: Von Z bis A',
@@ -20295,31 +20300,35 @@
20295
20300
  /* 180 */
20296
20301
  /***/ function(module, exports, __webpack_require__) {
20297
20302
 
20298
- /* WEBPACK VAR INJECTION */(function(React) {var App, AppContainer, Filter, Footer, InspectorComponent, Items, MoreItemsSpinner, ObjCollection, ReactRedux, TopBar, createObj, disableTags, fetchTags, objDeleted, redux, setLastAddedVisibility, _ref, _ref1;
20303
+ /* WEBPACK VAR INJECTION */(function(React) {var App, AppContainer, Filter, Footer, InspectorComponent, Items, MoreItemsSpinner, Obj, ObjCollection, ReactRedux, TopBar, createObj, deselectObjs, disableTags, fetchTags, initializeSelection, objDeleted, redux, setLastAddedVisibility, toggleSelect, _ref, _ref1, _ref2;
20299
20304
 
20300
20305
  ObjCollection = __webpack_require__(181);
20301
20306
 
20307
+ Obj = __webpack_require__(182);
20308
+
20302
20309
  TopBar = __webpack_require__(183);
20303
20310
 
20304
20311
  Filter = __webpack_require__(210);
20305
20312
 
20306
20313
  Items = __webpack_require__(224);
20307
20314
 
20308
- MoreItemsSpinner = __webpack_require__(250);
20315
+ MoreItemsSpinner = __webpack_require__(251);
20309
20316
 
20310
- InspectorComponent = __webpack_require__(251);
20317
+ InspectorComponent = __webpack_require__(252);
20311
20318
 
20312
- Footer = __webpack_require__(255);
20319
+ Footer = __webpack_require__(256);
20313
20320
 
20314
20321
  ReactRedux = __webpack_require__(185);
20315
20322
 
20316
20323
  redux = __webpack_require__(193);
20317
20324
 
20318
- setLastAddedVisibility = __webpack_require__(256).setLastAddedVisibility;
20325
+ setLastAddedVisibility = __webpack_require__(257).setLastAddedVisibility;
20326
+
20327
+ _ref = __webpack_require__(258), createObj = _ref.createObj, objDeleted = _ref.objDeleted;
20319
20328
 
20320
- _ref = __webpack_require__(257), createObj = _ref.createObj, objDeleted = _ref.objDeleted;
20329
+ _ref1 = __webpack_require__(250), fetchTags = _ref1.fetchTags, disableTags = _ref1.disableTags;
20321
20330
 
20322
- _ref1 = __webpack_require__(249), fetchTags = _ref1.fetchTags, disableTags = _ref1.disableTags;
20331
+ _ref2 = __webpack_require__(231), toggleSelect = _ref2.toggleSelect, initializeSelection = _ref2.initializeSelection, deselectObjs = _ref2.deselectObjs;
20323
20332
 
20324
20333
  App = React.createClass({
20325
20334
  displayName: 'App',
@@ -20340,11 +20349,24 @@
20340
20349
  updateLastAdded: function(showLastAdded) {
20341
20350
  return this.props.dispatch(setLastAddedVisibility(showLastAdded));
20342
20351
  },
20343
- destroyAddedObj: function(objId) {
20352
+ destroyObj: function(objId) {
20344
20353
  return this.props.dispatch(objDeleted(objId));
20345
20354
  },
20355
+ toggleObjSelection: function(objId) {
20356
+ return this.props.dispatch(toggleSelect(objId));
20357
+ },
20358
+ deselectObjs: function() {
20359
+ return this.props.dispatch(deselectObjs());
20360
+ },
20346
20361
  activateInitialFilter: function() {
20347
20362
  if (this.refs.filterView.activateInitialFilter) {
20363
+ if (this.props.options.selection) {
20364
+ _.map(this.props.options.selection, (function(_this) {
20365
+ return function(objId) {
20366
+ return _this.toggleObjSelection(objId);
20367
+ };
20368
+ })(this));
20369
+ }
20348
20370
  return this.refs.filterView.activateInitialFilter();
20349
20371
  }
20350
20372
  },
@@ -20355,20 +20377,18 @@
20355
20377
  return this.props.dispatch(fetchTags(query));
20356
20378
  },
20357
20379
  componentDidMount: function() {
20380
+ this.props.dispatch(initializeSelection(this.props.options.selection_mode));
20358
20381
  this.state.filter.onChange(this.updateFilter);
20359
20382
  this.state.objCollection.onChange(this.updateObjCollection);
20360
- this.state.objCollection.on('destroy-obj', this.destroyAddedObj);
20383
+ this.state.objCollection.on('destroy-obj', this.destroyObj);
20361
20384
  return this.activateInitialFilter();
20362
20385
  },
20363
20386
  getInitialState: function() {
20364
- var initialSelection, selectionMode;
20365
- initialSelection = this.props.options.selection || [];
20366
- selectionMode = this.props.options.selection_mode;
20367
20387
  return {
20368
20388
  filter: this.props.initialFilter,
20369
20389
  objs: [],
20370
20390
  sortCriteria: this.props.initialFilter.sortCriteria,
20371
- objCollection: new ObjCollection(initialSelection, selectionMode)
20391
+ objCollection: new ObjCollection()
20372
20392
  };
20373
20393
  },
20374
20394
  _getBodyClassName: function() {
@@ -20402,8 +20422,10 @@
20402
20422
  "updateLastAdded": this.updateLastAdded,
20403
20423
  "sortCriteria": this.props.sortCriteria,
20404
20424
  "additionCount": this.props.lastAdded.additions.length,
20405
- "dispatch": this.props.dispatch,
20406
- "showLastAdded": this.props.lastAdded.isVisible
20425
+ "deselectObjs": this.deselectObjs,
20426
+ "showLastAdded": this.props.lastAdded.isVisible,
20427
+ "initialSelection": this.props.options.selection || [],
20428
+ "selectedObjs": this.props.selection.selectedObjs
20407
20429
  }), React.createElement(Items, {
20408
20430
  "disableTags": this.disableTagBar,
20409
20431
  "ref": "itemView",
@@ -20414,6 +20436,9 @@
20414
20436
  "basePreset": this.props.options.base_preset,
20415
20437
  "viewMode": this.props.objDisplay.viewMode,
20416
20438
  "lastAdded": this.props.lastAdded,
20439
+ "toggleObjSelection": this.toggleObjSelection,
20440
+ "selectedObjs": this.props.selection.selectedObjs,
20441
+ "selectionMode": this.props.selection.selectionMode,
20417
20442
  "filter": this.state.filter,
20418
20443
  "editingView": this.props.options.editingView
20419
20444
  }), (this.state.objCollection.isLoadingAdditionalObjs() ? React.createElement(MoreItemsSpinner, {
@@ -20421,10 +20446,14 @@
20421
20446
  }) : void 0)), React.createElement(InspectorComponent, {
20422
20447
  "dispatch": this.props.dispatch,
20423
20448
  "editingView": this.props.options.editingView,
20424
- "objCollection": this.state.objCollection
20449
+ "disableDelete": !!this.props.options.disableDelete,
20450
+ "objCollection": this.state.objCollection,
20451
+ "selectedObjs": this.props.selection.selectedObjs
20425
20452
  })), React.createElement(Footer, {
20426
20453
  "promise": this.props.promise,
20427
20454
  "editingView": this.props.options.editingView,
20455
+ "disableDelete": this.props.options.disableDelete,
20456
+ "selectedObjs": this.props.selection.selectedObjs,
20428
20457
  "standAlone": this.props.options.standAlone,
20429
20458
  "objCollection": this.state.objCollection
20430
20459
  }));
@@ -20456,11 +20485,8 @@
20456
20485
  ObjCollection = (function(_super) {
20457
20486
  __extends(ObjCollection, _super);
20458
20487
 
20459
- function ObjCollection(selectedObjsIds, _selectionMode, objs) {
20460
- this._selectionMode = _selectionMode;
20488
+ function ObjCollection(objs) {
20461
20489
  ObjCollection.__super__.constructor.call(this);
20462
- this._selectionMode || (this._selectionMode = 'multi');
20463
- this._selectedObjsIds = selectedObjsIds || [];
20464
20490
  this._objs = objs || [];
20465
20491
  this._isAlreadyReversed = false;
20466
20492
  this._curQueryNumber = 0;
@@ -20470,39 +20496,12 @@
20470
20496
  return this._objs;
20471
20497
  };
20472
20498
 
20473
- ObjCollection.prototype.hasMoreItems = function() {
20474
- return this._nextQuery != null;
20475
- };
20476
-
20477
- ObjCollection.prototype.selectedObjsIds = function() {
20478
- return this._selectedObjsIds;
20479
- };
20480
-
20481
- ObjCollection.prototype.isSingleElementSelected = function() {
20482
- return this.getSelectedObjs().length === 1;
20483
- };
20484
-
20485
- ObjCollection.prototype.getSelectedObjs = function() {
20486
- var selectedObjs;
20487
- selectedObjs = [];
20488
- _.each(this._selectedObjsIds, (function(_this) {
20489
- return function(selected) {
20490
- var selectedObj;
20491
- selectedObj = _.find(_this._objs, function(obj) {
20492
- if (obj != null) {
20493
- return obj.id() === selected;
20494
- }
20495
- });
20496
- if (selectedObj != null) {
20497
- return selectedObjs.push(selectedObj);
20498
- }
20499
- };
20500
- })(this));
20501
- return selectedObjs;
20499
+ ObjCollection.prototype.setObjs = function(objs) {
20500
+ return this._objs = objs;
20502
20501
  };
20503
20502
 
20504
- ObjCollection.prototype.deselectObjs = function() {
20505
- return this._selectedObjsIds = [];
20503
+ ObjCollection.prototype.hasMoreItems = function() {
20504
+ return this._nextQuery != null;
20506
20505
  };
20507
20506
 
20508
20507
  ObjCollection.prototype.isLoading = function() {
@@ -20521,10 +20520,6 @@
20521
20520
  }
20522
20521
  };
20523
20522
 
20524
- ObjCollection.prototype.isSingleSelectionMode = function() {
20525
- return this._selectionMode === 'single';
20526
- };
20527
-
20528
20523
  ObjCollection.prototype.loadFromBackend = function(query) {
20529
20524
  this._query = query;
20530
20525
  this._curQueryNumber += 1;
@@ -20538,30 +20533,6 @@
20538
20533
  }
20539
20534
  };
20540
20535
 
20541
- ObjCollection.prototype.toggleSelected = function(obj) {
20542
- if (this.isSelected(obj.id())) {
20543
- this._selectedObjsIds = _.without(this._selectedObjsIds, obj.id());
20544
- } else {
20545
- if (this.isSingleSelectionMode()) {
20546
- this._selectedObjsIds = [obj.id()];
20547
- } else {
20548
- this._selectedObjsIds.push(obj.id());
20549
- }
20550
- }
20551
- if (!this.isPresentInObjCollection(obj)) {
20552
- this._objs.push(obj);
20553
- }
20554
- return this.changed();
20555
- };
20556
-
20557
- ObjCollection.prototype.isPresentInObjCollection = function(obj) {
20558
- return _.where(this._objs, obj).length > 0;
20559
- };
20560
-
20561
- ObjCollection.prototype.isSelected = function(objId) {
20562
- return _.contains(this._selectedObjsIds, objId);
20563
- };
20564
-
20565
20536
  ObjCollection.prototype.loadNextPage = function() {
20566
20537
  var queryNumber;
20567
20538
  if (this.hasMoreItems() && !this.isLoadingAdditionalObjs()) {
@@ -20580,10 +20551,10 @@
20580
20551
  }
20581
20552
  };
20582
20553
 
20583
- ObjCollection.prototype.destroySelectedObjs = function() {
20554
+ ObjCollection.prototype.destroyObjs = function(deletedObjs) {
20584
20555
  var deferreds;
20585
- if (this._selectedObjsIds.length > 0) {
20586
- deferreds = _.map(this._selectedObjsIds, (function(_this) {
20556
+ if (deletedObjs.length > 0) {
20557
+ deferreds = _.map(deletedObjs, (function(_this) {
20587
20558
  return function(objId) {
20588
20559
  return _this._destroyById(objId);
20589
20560
  };
@@ -20603,9 +20574,6 @@
20603
20574
  _this._objs = _.reject(_this._objs, function(obj) {
20604
20575
  return obj.id() === objId;
20605
20576
  });
20606
- _this._selectedObjsIds = _this._selectedObjsIds.filter(function(selectedObjId) {
20607
- return selectedObjId !== objId;
20608
- });
20609
20577
  return _this.trigger('destroy-obj', objId);
20610
20578
  };
20611
20579
  })(this));
@@ -20634,6 +20602,25 @@
20634
20602
  })(this));
20635
20603
  };
20636
20604
 
20605
+ ObjCollection.prototype.getObjs = function(objIds) {
20606
+ var selectedObjs;
20607
+ selectedObjs = [];
20608
+ _.each(objIds, (function(_this) {
20609
+ return function(selected) {
20610
+ var selectedObj;
20611
+ selectedObj = _.find(_this._objs, function(obj) {
20612
+ if (obj != null) {
20613
+ return obj.id() === selected;
20614
+ }
20615
+ });
20616
+ if (selectedObj != null) {
20617
+ return selectedObjs.push(selectedObj);
20618
+ }
20619
+ };
20620
+ })(this));
20621
+ return selectedObjs;
20622
+ };
20623
+
20637
20624
  ObjCollection.prototype._setAndLoadObjs = function(results, next, queryNumber) {
20638
20625
  var curObjs;
20639
20626
  if (queryNumber === this._curQueryNumber) {
@@ -20656,7 +20643,6 @@
20656
20643
 
20657
20644
  ObjCollection.prototype._resetObjsCollectionParams = function() {
20658
20645
  this._query = null;
20659
- this.deselectObjs();
20660
20646
  this._resetLoadingState();
20661
20647
  return this.changed();
20662
20648
  };
@@ -20732,10 +20718,6 @@
20732
20718
  return scrivito.details_url_for_obj_id(this.id());
20733
20719
  };
20734
20720
 
20735
- Obj.prototype.hasDetailsView = function() {
20736
- return this._attr['has_details_view'];
20737
- };
20738
-
20739
20721
  return Obj;
20740
20722
 
20741
20723
  })();
@@ -20762,7 +20744,7 @@
20762
20744
  },
20763
20745
  getInitialState: function() {
20764
20746
  return {
20765
- searchTerm: this.props.filter.searchTerm || ""
20747
+ searchTerm: this.props.filter.searchTerm || ''
20766
20748
  };
20767
20749
  },
20768
20750
  triggerSearchWithEnter: function(event) {
@@ -20809,16 +20791,16 @@
20809
20791
  },
20810
20792
  render: function() {
20811
20793
  return React.createElement("div", {
20812
- "className": "scrivito-content-browser-topbar"
20794
+ "className": 'scrivito-content-browser-topbar'
20813
20795
  }, React.createElement("div", {
20814
- "className": "scrivito-content-browser-search"
20796
+ "className": 'scrivito-content-browser-search'
20815
20797
  }, React.createElement("span", {
20816
- "className": "text-input-wrapper"
20798
+ "className": 'text-input-wrapper'
20817
20799
  }, React.createElement("input", {
20818
- "refs": "searchTermText",
20819
- "type": "text",
20800
+ "refs": 'searchTermText',
20801
+ "type": 'text',
20820
20802
  "placeholder": this._getSearchPlaceholder(),
20821
- "className": "search-field",
20803
+ "className": 'search-field',
20822
20804
  "value": this.state.searchTerm,
20823
20805
  "onChange": this.updateSearchTerm,
20824
20806
  "onKeyUp": this.triggerSearchWithEnter
@@ -20827,7 +20809,7 @@
20827
20809
  "className": this.clearButtonClassName(),
20828
20810
  "title": scrivito.translate('content_browser.search_bar.clear_button')
20829
20811
  })), React.createElement("button", {
20830
- "className": "search-field-button",
20812
+ "className": 'search-field-button',
20831
20813
  "onClick": this.updateSearchFilter.bind(this, this.state.searchTerm)
20832
20814
  }, scrivito.translate('content_browser.search_bar.search_button'))), React.createElement(ViewModeBar, {
20833
20815
  "viewMode": this.props.viewMode
@@ -22326,22 +22308,22 @@
22326
22308
  displayName: 'SortMenu',
22327
22309
  sortItemsData: function() {
22328
22310
  return {
22329
- "relevance": {
22311
+ 'relevance': {
22330
22312
  itemTitle: scrivito.translate('content_browser.sort.relevance.title'),
22331
- ascCriteriaTitle: scrivito.translate('content_browser.sort.relevance.asc_criteria_title'),
22332
- sortItemType: "relevance"
22313
+ descCriteriaTitle: scrivito.translate('content_browser.sort.relevance.desc_criteria_title'),
22314
+ sortItemType: 'relevance'
22333
22315
  },
22334
- "filename": {
22316
+ 'filename': {
22335
22317
  itemTitle: scrivito.translate('content_browser.sort.file_name.title'),
22336
22318
  descCriteriaTitle: scrivito.translate('content_browser.sort.file_name.desc_criteria_title'),
22337
22319
  ascCriteriaTitle: scrivito.translate('content_browser.sort.file_name.asc_criteria_title'),
22338
- sortItemType: "blob:filename"
22320
+ sortItemType: 'blob:filename'
22339
22321
  },
22340
- "date": {
22322
+ 'date': {
22341
22323
  itemTitle: scrivito.translate('content_browser.sort.date.title'),
22342
22324
  descCriteriaTitle: scrivito.translate('content_browser.sort.date.desc_criteria_title'),
22343
22325
  ascCriteriaTitle: scrivito.translate('content_browser.sort.date.asc_criteria_title'),
22344
- sortItemType: "_last_changed"
22326
+ sortItemType: '_last_changed'
22345
22327
  }
22346
22328
  };
22347
22329
  },
@@ -22365,11 +22347,11 @@
22365
22347
  },
22366
22348
  getSortIconClassName: function() {
22367
22349
  var sortIcon;
22368
- sortIcon = "scrivito_icon ";
22350
+ sortIcon = 'scrivito_icon ';
22369
22351
  if (this.props.sortCriteria.sortDirection === DESC_SORT_ORDER) {
22370
- sortIcon += "scrivito_icon_sort_up";
22352
+ sortIcon += 'scrivito_icon_sort_up';
22371
22353
  } else {
22372
- sortIcon += "scrivito_icon_sort_down";
22354
+ sortIcon += 'scrivito_icon_sort_down';
22373
22355
  }
22374
22356
  return sortIcon;
22375
22357
  },
@@ -22382,16 +22364,16 @@
22382
22364
  render: function() {
22383
22365
  var sortItem;
22384
22366
  return React.createElement("span", {
22385
- "className": "scrivito-content-browser-sort-menu scrivito_button scrivito_lightgrey scrivito_right",
22367
+ "className": 'scrivito-content-browser-sort-menu scrivito_button scrivito_lightgrey scrivito_right',
22386
22368
  "onClick": this.toggleSortMenu
22387
22369
  }, React.createElement("i", {
22388
22370
  "className": this.getSortIconClassName()
22389
22371
  }), React.createElement("span", {
22390
- "className": "scrivito-content-browser-sort-menu-title"
22372
+ "className": 'scrivito-content-browser-sort-menu-title'
22391
22373
  }, this.getSortActiveCriteriaTitle()), React.createElement("i", {
22392
- "className": "scrivito_icon scrivito-content-browser-menu-icon scrivito_icon_chevron_down"
22374
+ "className": 'scrivito_icon scrivito-content-browser-menu-icon scrivito_icon_chevron_down'
22393
22375
  }), React.createElement("ul", {
22394
- "className": "scrivito_menu_box scrivito_left"
22376
+ "className": 'scrivito_menu_box scrivito_left'
22395
22377
  }, (function() {
22396
22378
  var _i, _len, _ref1, _results;
22397
22379
  _ref1 = Object.keys(this.sortItemsData());
@@ -22409,7 +22391,7 @@
22409
22391
  }
22410
22392
  return _results;
22411
22393
  }).call(this), React.createElement("li", {
22412
- "className": "scrivito_menu_box_overlay"
22394
+ "className": 'scrivito_menu_box_overlay'
22413
22395
  })));
22414
22396
  }
22415
22397
  });
@@ -22677,7 +22659,7 @@
22677
22659
  "filter": additionalFilter
22678
22660
  });
22679
22661
  });
22680
- return this.renderSubFiltersList(subFilters, "compact");
22662
+ return this.renderSubFiltersList(subFilters, 'compact');
22681
22663
  },
22682
22664
  _activeTags: function() {
22683
22665
  return this._activeTags;
@@ -22687,7 +22669,7 @@
22687
22669
  },
22688
22670
  _triggerReduxStateChanged: function(newProps, oldProps) {
22689
22671
  if (!this._isBuiltInFilterSelected() && !_.isEqual(newProps, oldProps)) {
22690
- return this.props.filter.trigger("reduxStateChanged", this.props.filter);
22672
+ return this.props.filter.trigger('reduxStateChanged', this.props.filter);
22691
22673
  }
22692
22674
  },
22693
22675
  componentWillReceiveProps: function(nextProps) {
@@ -22708,7 +22690,7 @@
22708
22690
  selectedFilter: false
22709
22691
  });
22710
22692
  this.props.updateLastAdded(false);
22711
- this.props.objCollection.deselectObjs();
22693
+ this.props.deselectObjs();
22712
22694
  return this.props.objCollection.loadFromBackend(query);
22713
22695
  },
22714
22696
  loadObjs: function(filter) {
@@ -22729,26 +22711,27 @@
22729
22711
  },
22730
22712
  getFilterClassName: function() {
22731
22713
  var filterBrowserClass;
22732
- filterBrowserClass = "scrivito-content-browser-filter";
22714
+ filterBrowserClass = 'scrivito-content-browser-filter';
22733
22715
  if (this.props.additionCount > 0 && this.props.standAlone) {
22734
22716
  return filterBrowserClass;
22735
22717
  }
22736
22718
  if (this.props.additionCount > 0) {
22737
- filterBrowserClass += " last_added";
22719
+ filterBrowserClass += ' last_added';
22738
22720
  }
22739
22721
  if (this.props.standAlone) {
22740
- filterBrowserClass += " stand-alone";
22722
+ filterBrowserClass += ' stand-alone';
22741
22723
  }
22742
22724
  return filterBrowserClass;
22743
22725
  },
22744
22726
  componentDidMount: function() {
22727
+ this._sortCriteria = this.props.sortCriteria;
22745
22728
  this._activeTags = this.props.tags.activeTags;
22746
22729
  this.props.filter.onChange(this.loadObjsAndTags);
22747
- return this.props.filter.on("reduxStateChanged", this.loadObjs);
22730
+ return this.props.filter.on('reduxStateChanged', this.loadObjs);
22748
22731
  },
22749
22732
  activateInitialFilter: function() {
22750
- if (this.props.objCollection.selectedObjsIds().length > 0) {
22751
- return this.activateSelectedFilter();
22733
+ if (this.props.initialSelection.length > 0) {
22734
+ return this.activateSelectedFilter(this.props.initialSelection);
22752
22735
  } else if (this.props.filter.hasActiveChildren()) {
22753
22736
  return this.loadObjsAndTags(this.props.filter);
22754
22737
  }
@@ -22759,10 +22742,10 @@
22759
22742
  });
22760
22743
  this.props.disableTags();
22761
22744
  this.props.updateLastAdded(true);
22762
- this.props.objCollection.deselectObjs();
22745
+ this.props.deselectObjs();
22763
22746
  return this.props.filter.deselectHierarchicalFilters();
22764
22747
  },
22765
- activateSelectedFilter: function() {
22748
+ activateSelectedFilter: function(selectedObjsIds) {
22766
22749
  var query;
22767
22750
  this.props.filter.deselectHierarchicalFilters();
22768
22751
  this.setState({
@@ -22770,7 +22753,7 @@
22770
22753
  });
22771
22754
  this.props.disableTags();
22772
22755
  this.props.updateLastAdded(false);
22773
- query = QueryBuilder.byId(this.props.objCollection.selectedObjsIds());
22756
+ query = QueryBuilder.byId(selectedObjsIds);
22774
22757
  return this.props.objCollection.loadFromBackend(query);
22775
22758
  },
22776
22759
  getInitialState: function() {
@@ -22781,12 +22764,12 @@
22781
22764
  renderFilterSeparator: function() {
22782
22765
  if (this.props.filter.hasAdditionalFilters() && this.props.filter.hasHierarchicalFilters()) {
22783
22766
  return React.createElement("div", {
22784
- "className": "scrivito_separator"
22767
+ "className": 'scrivito_separator'
22785
22768
  }, scrivito.translate('content_browser.filter.more_filters'));
22786
22769
  }
22787
22770
  },
22788
22771
  render: function() {
22789
- var selectedObjsCount, treeSubFilters;
22772
+ var treeSubFilters;
22790
22773
  treeSubFilters = _.map(this.props.filter.getHierarchicalFilters(), (function(_this) {
22791
22774
  return function(treeFilter) {
22792
22775
  return React.createElement(TreeFilter, {
@@ -22795,13 +22778,12 @@
22795
22778
  });
22796
22779
  };
22797
22780
  })(this));
22798
- selectedObjsCount = this.props.objCollection.getSelectedObjs().length;
22799
22781
  return React.createElement("div", {
22800
22782
  "className": this.getFilterClassName()
22801
22783
  }, React.createElement("div", {
22802
- "className": "scrivito-content-browser-filter-fixed"
22784
+ "className": 'scrivito-content-browser-filter-fixed'
22803
22785
  }, (!this.props.standAlone ? React.createElement(SelectedFilter, {
22804
- "selectedCount": selectedObjsCount,
22786
+ "selectedObjs": this.props.selectedObjs,
22805
22787
  "active": this.state.selectedFilter,
22806
22788
  "activateSelectedFilter": this.activateSelectedFilter
22807
22789
  }) : void 0), (this.props.additionCount > 0 ? React.createElement(LastAddedFilter, {
@@ -22809,7 +22791,7 @@
22809
22791
  "active": this.props.showLastAdded,
22810
22792
  "activateLastAddedFilter": this.activateLastAddedFilter
22811
22793
  }) : void 0)), React.createElement("div", {
22812
- "className": "scrivito-content-browser-filter-scroll"
22794
+ "className": 'scrivito-content-browser-filter-scroll'
22813
22795
  }, this.renderSubFiltersList(treeSubFilters), this.renderFilterSeparator(), this.renderAdditionalFilters()));
22814
22796
  }
22815
22797
  });
@@ -23172,10 +23154,9 @@
23172
23154
  this.tags = tags;
23173
23155
  this.sortCriteria = sortCriteria;
23174
23156
  this._collector = new ActiveNodeConfigCollector(this.filter);
23175
- this.sortCriteria || (this.sortCriteria = {
23176
- sortField: '_last_changed',
23177
- sortDirection: DESC_SORT_ORDER
23178
- });
23157
+ if (!this.sortCriteria) {
23158
+ throw new Error('sortCriteria is not initialized. Please explicit initialize the sort criteria param');
23159
+ }
23179
23160
  if (baseQuery) {
23180
23161
  this._baseQuery = QueryBuilder.prepareQuery(baseQuery);
23181
23162
  }
@@ -23214,29 +23195,36 @@
23214
23195
  };
23215
23196
 
23216
23197
  QueryBuilder.prototype._sortQuery = function(query) {
23217
- if ((query != null) && this._needOrder()) {
23218
- query = query.order(this.sortCriteria.sortField);
23219
- if (this.sortCriteria.sortDirection === DESC_SORT_ORDER) {
23220
- if (!query.orderReversed) {
23221
- query.reverse_order();
23198
+ if (query != null) {
23199
+ if (this._isRelevanceSortCriteria()) {
23200
+ if (!this._hasSearchTerm()) {
23201
+ query = this._setOrderInQuery(query, '_last_changed', DESC_SORT_ORDER);
23222
23202
  }
23203
+ } else {
23204
+ query = this._setOrderInQuery(query, this.sortCriteria.sortField, this.sortCriteria.sortDirection);
23205
+ }
23206
+ }
23207
+ return query;
23208
+ };
23209
+
23210
+ QueryBuilder.prototype._setOrderInQuery = function(query, sortField, sortDirection) {
23211
+ query = query.order(sortField);
23212
+ if (sortDirection === DESC_SORT_ORDER) {
23213
+ if (!query.orderReversed) {
23214
+ query.reverse_order();
23223
23215
  }
23224
23216
  }
23225
23217
  return query;
23226
23218
  };
23227
23219
 
23228
- QueryBuilder.prototype._needOrder = function() {
23229
- return this.sortCriteria.sortField !== "relevance";
23220
+ QueryBuilder.prototype._isRelevanceSortCriteria = function() {
23221
+ return this.sortCriteria.sortField === 'relevance';
23230
23222
  };
23231
23223
 
23232
23224
  QueryBuilder.prototype._addSearchTermQuery = function(query) {
23233
23225
  var searchQuery;
23234
- if (this.filter.searchTerm && this.filter.searchTerm.length > 0) {
23226
+ if (this._hasSearchTerm()) {
23235
23227
  searchQuery = scrivito.obj_where('*', 'contains_prefix', this.filter.searchTerm);
23236
- this.sortCriteria = {
23237
- sortField: "relevance",
23238
- sortDirection: ASC_SORT_ORDER
23239
- };
23240
23228
  return this._addOrCreateQuery(query, searchQuery);
23241
23229
  } else {
23242
23230
  return query;
@@ -23267,6 +23255,10 @@
23267
23255
  }
23268
23256
  };
23269
23257
 
23258
+ QueryBuilder.prototype._hasSearchTerm = function() {
23259
+ return this.filter.searchTerm && this.filter.searchTerm.length > 0;
23260
+ };
23261
+
23270
23262
  return QueryBuilder;
23271
23263
 
23272
23264
  })();
@@ -23324,17 +23316,20 @@
23324
23316
  }
23325
23317
  return classNames;
23326
23318
  },
23319
+ activateSelectedFilter: function() {
23320
+ return this.props.activateSelectedFilter(this.props.selectedObjs);
23321
+ },
23327
23322
  render: function() {
23328
23323
  return React.createElement("div", {
23329
23324
  "className": this.filterClass(),
23330
- "onClick": this.props.activateSelectedFilter
23325
+ "onClick": this.activateSelectedFilter
23331
23326
  }, React.createElement("i", {
23332
23327
  "className": "scrivito-content-browser-icon scrivito-content-browser-icon-ok-box"
23333
23328
  }), React.createElement("span", {
23334
23329
  "className": "scrivito-content-browser-filter-label"
23335
23330
  }, scrivito.translate('content_browser.filter.selected_filter'), React.createElement("span", {
23336
23331
  "className": "scrivito-content-browser-counter selected-total"
23337
- }, this.props.selectedCount)));
23332
+ }, this.props.selectedObjs.length)));
23338
23333
  }
23339
23334
  });
23340
23335
 
@@ -23380,26 +23375,28 @@
23380
23375
  /* 224 */
23381
23376
  /***/ function(module, exports, __webpack_require__) {
23382
23377
 
23383
- /* WEBPACK VAR INJECTION */(function(React) {var Items, LastAddedItems, Obj, PresetBuilder, TableView, TableViewContent, TagBar, ThumbnailItems, objDisplayAction, toggleExpandTagBar, toggleTag, _ref;
23378
+ /* WEBPACK VAR INJECTION */(function(React) {var Items, LastAddedItems, Obj, PresetBuilder, TableView, TableViewContent, TagBar, ThumbnailItems, objDisplayAction, toggleExpandTagBar, toggleTag, uploadedObjs, _ref;
23384
23379
 
23385
23380
  TableView = __webpack_require__(225);
23386
23381
 
23387
23382
  ThumbnailItems = __webpack_require__(226);
23388
23383
 
23389
- PresetBuilder = __webpack_require__(234);
23384
+ PresetBuilder = __webpack_require__(235);
23390
23385
 
23391
- LastAddedItems = __webpack_require__(235);
23386
+ LastAddedItems = __webpack_require__(236);
23392
23387
 
23393
- TableViewContent = __webpack_require__(246);
23388
+ TableViewContent = __webpack_require__(247);
23394
23389
 
23395
- TagBar = __webpack_require__(248);
23390
+ TagBar = __webpack_require__(249);
23396
23391
 
23397
23392
  objDisplayAction = __webpack_require__(205);
23398
23393
 
23399
- _ref = __webpack_require__(249), toggleExpandTagBar = _ref.toggleExpandTagBar, toggleTag = _ref.toggleTag;
23394
+ _ref = __webpack_require__(250), toggleExpandTagBar = _ref.toggleExpandTagBar, toggleTag = _ref.toggleTag;
23400
23395
 
23401
23396
  Obj = __webpack_require__(182);
23402
23397
 
23398
+ uploadedObjs = __webpack_require__(242).uploadedObjs;
23399
+
23403
23400
  Items = React.createClass({
23404
23401
  displayName: 'Items',
23405
23402
  getInitialState: function() {
@@ -23408,11 +23405,16 @@
23408
23405
  };
23409
23406
  },
23410
23407
  componentWillReceiveProps: function(nextProps) {
23411
- var obj;
23408
+ var obj, objData, objs;
23412
23409
  if (this.props.lastAdded.isVisible && nextProps.lastAdded.lastAddedObj) {
23410
+ objData = uploadedObjs(nextProps.lastAdded.additions);
23411
+ objs = _.map(objData, function(newObj) {
23412
+ return new Obj(newObj);
23413
+ });
23414
+ this.props.objCollection.setObjs(objs);
23413
23415
  if (this.props.lastAdded.lastAddedObj !== nextProps.lastAdded.lastAddedObj) {
23414
23416
  obj = new Obj(nextProps.lastAdded.lastAddedObj);
23415
- return this.props.objCollection.toggleSelected(obj);
23417
+ return this.props.toggleObjSelection(obj.id());
23416
23418
  }
23417
23419
  }
23418
23420
  },
@@ -23543,10 +23545,11 @@
23543
23545
  }, React.createElement("i", {
23544
23546
  "className": "scrivito_icon scrivito_icon_refresh"
23545
23547
  })) : this.props.lastAdded.isVisible ? React.createElement(LastAddedItems, {
23546
- "objCollection": this.props.objCollection,
23547
23548
  "activeTags": this.props.tags.activeTags,
23548
- "toggleSelected": this.props.toggleSelected,
23549
+ "selectionMode": this.props.selectionMode,
23549
23550
  "filter": this.props.filter,
23551
+ "toggleObjSelection": this.props.toggleObjSelection,
23552
+ "selectedObjs": this.props.selectedObjs,
23550
23553
  "createObj": this.props.createObj,
23551
23554
  "basePreset": this.props.basePreset,
23552
23555
  "viewMode": this.props.viewMode,
@@ -23555,7 +23558,6 @@
23555
23558
  }) : this.props.viewMode === objDisplayAction.TABLE_VIEW ? React.createElement(TableView, {
23556
23559
  "objCollection": this.props.objCollection,
23557
23560
  "activeTags": this.props.tags.activeTags,
23558
- "toggleSelected": this.props.toggleSelected,
23559
23561
  "filter": this.props.filter,
23560
23562
  "createObj": this.props.createObj,
23561
23563
  "basePreset": this.props.basePreset
@@ -23566,18 +23568,24 @@
23566
23568
  "ps": true,
23567
23569
  "basePreset": true,
23568
23570
  "t": true,
23571
+ "toggleObjSelection": this.props.toggleObjSelection,
23569
23572
  "createObj": this.props.createObj,
23570
23573
  "objCollection": this.props.objCollection,
23571
23574
  "editingView": this.props.editingView,
23575
+ "selectedObjs": this.props.selectedObjs,
23576
+ "selectionMode": this.props.selectionMode,
23572
23577
  "filter": this.props.filter
23573
23578
  })) : React.createElement(ThumbnailItems, {
23574
23579
  "objCollection": this.props.objCollection,
23575
23580
  "viewMode": this.props.viewMode,
23581
+ "toggleObjSelection": this.props.toggleObjSelection,
23582
+ "selectionMode": this.props.selectionMode,
23576
23583
  "activeTags": this.props.tags.activeTags,
23577
23584
  "basePreset": this.props.basePreset,
23578
23585
  "filter": this.props.filter,
23579
23586
  "editingView": this.props.editingView,
23580
- "createObj": this.props.createObj
23587
+ "createObj": this.props.createObj,
23588
+ "selectedObjs": this.props.selectedObjs
23581
23589
  })));
23582
23590
  }
23583
23591
  });
@@ -23616,9 +23624,9 @@
23616
23624
 
23617
23625
  ThumbnailItem = __webpack_require__(228);
23618
23626
 
23619
- ThumbnailAddItem = __webpack_require__(231);
23627
+ ThumbnailAddItem = __webpack_require__(232);
23620
23628
 
23621
- ObjCreation = __webpack_require__(233);
23629
+ ObjCreation = __webpack_require__(234);
23622
23630
 
23623
23631
  ActiveNodeConfigCollector = __webpack_require__(208);
23624
23632
 
@@ -23646,8 +23654,10 @@
23646
23654
  return function(obj) {
23647
23655
  return React.createElement(ThumbnailItem, {
23648
23656
  "key": obj.id(),
23657
+ "selectedObjs": _this.props.selectedObjs,
23658
+ "toggleObjSelection": _this.props.toggleObjSelection,
23649
23659
  "obj": obj,
23650
- "objCollection": _this.props.objCollection
23660
+ "selectionMode": _this.props.selectionMode
23651
23661
  });
23652
23662
  };
23653
23663
  })(this));
@@ -23743,12 +23753,14 @@
23743
23753
  /* 228 */
23744
23754
  /***/ function(module, exports, __webpack_require__) {
23745
23755
 
23746
- /* WEBPACK VAR INJECTION */(function(React) {var InspectedItemMixin, MimeTypeIcon, ThumbnailItem;
23756
+ /* WEBPACK VAR INJECTION */(function(React) {var InspectedItemMixin, MimeTypeIcon, SINGLE_SELECTION_MODE, ThumbnailItem;
23747
23757
 
23748
23758
  InspectedItemMixin = __webpack_require__(229);
23749
23759
 
23750
23760
  MimeTypeIcon = __webpack_require__(230);
23751
23761
 
23762
+ SINGLE_SELECTION_MODE = __webpack_require__(231).SINGLE_SELECTION_MODE;
23763
+
23752
23764
  ThumbnailItem = React.createClass({
23753
23765
  displayName: 'ThumbnailItem',
23754
23766
  mixins: [InspectedItemMixin],
@@ -23795,7 +23807,7 @@
23795
23807
  "className": "scrivito-content-browser-thumbnails-name"
23796
23808
  }, this.props.obj.title()), React.createElement("span", {
23797
23809
  "className": "scrivito-content-browser-thumbnails-size"
23798
- }, this.props.obj.subtitle()), (!this.props.objCollection.isSingleSelectionMode() ? React.createElement("span", {
23810
+ }, this.props.obj.subtitle()), (this.props.selectionMode !== SINGLE_SELECTION_MODE ? React.createElement("span", {
23799
23811
  "className": 'scrivito-content-browser-thumbnails-select select-item'
23800
23812
  }) : void 0))));
23801
23813
  }
@@ -23812,10 +23824,13 @@
23812
23824
  var InspectedItemMixin;
23813
23825
 
23814
23826
  InspectedItemMixin = {
23827
+ isSelectedItem: function(objId) {
23828
+ return _.contains(this.props.selectedObjs, objId);
23829
+ },
23815
23830
  getItemClasses: function() {
23816
23831
  var className;
23817
23832
  className = 'content-browser-item ';
23818
- if (this.props.objCollection.isSelected(this.props.obj.id())) {
23833
+ if (this.isSelectedItem(this.props.obj.id())) {
23819
23834
  className += 'active';
23820
23835
  }
23821
23836
  return className;
@@ -23823,13 +23838,13 @@
23823
23838
  selectClass: function() {
23824
23839
  var className;
23825
23840
  className = this.baseSelectClass();
23826
- if (this.props.objCollection.isSelected(this.props.obj.id())) {
23841
+ if (this.isSelectedItem(this.props.obj.id())) {
23827
23842
  className += ' active';
23828
23843
  }
23829
23844
  return className;
23830
23845
  },
23831
23846
  handleSelectClick: function() {
23832
- return this.props.objCollection.toggleSelected(this.props.obj);
23847
+ return this.props.toggleObjSelection(this.props.obj.id());
23833
23848
  }
23834
23849
  };
23835
23850
 
@@ -23885,11 +23900,63 @@
23885
23900
 
23886
23901
  /***/ },
23887
23902
  /* 231 */
23903
+ /***/ function(module, exports) {
23904
+
23905
+ var DESELECT_OBJS, INITIALIZE_SELECTION, MULTI_SELECTION_MODE, SINGLE_SELECTION_MODE, TOGGLE_SELECT, deselectObjs, initializeSelection, toggleSelect;
23906
+
23907
+ TOGGLE_SELECT = 'TOGGLE_SELECT';
23908
+
23909
+ DESELECT_OBJS = 'DESELECT_OBJS';
23910
+
23911
+ INITIALIZE_SELECTION = 'INITIALIZE_SELECTION';
23912
+
23913
+ SINGLE_SELECTION_MODE = 'single';
23914
+
23915
+ MULTI_SELECTION_MODE = 'multi';
23916
+
23917
+ toggleSelect = (function(_this) {
23918
+ return function(objId) {
23919
+ return {
23920
+ type: TOGGLE_SELECT,
23921
+ objId: objId
23922
+ };
23923
+ };
23924
+ })(this);
23925
+
23926
+ initializeSelection = (function(_this) {
23927
+ return function(mode) {
23928
+ return {
23929
+ type: INITIALIZE_SELECTION,
23930
+ mode: mode
23931
+ };
23932
+ };
23933
+ })(this);
23934
+
23935
+ deselectObjs = function() {
23936
+ return {
23937
+ type: DESELECT_OBJS
23938
+ };
23939
+ };
23940
+
23941
+ module.exports = {
23942
+ DESELECT_OBJS: DESELECT_OBJS,
23943
+ TOGGLE_SELECT: TOGGLE_SELECT,
23944
+ INITIALIZE_SELECTION: INITIALIZE_SELECTION,
23945
+ SINGLE_SELECTION_MODE: SINGLE_SELECTION_MODE,
23946
+ MULTI_SELECTION_MODE: MULTI_SELECTION_MODE,
23947
+ toggleSelect: toggleSelect,
23948
+ initializeSelection: initializeSelection,
23949
+ deselectObjs: deselectObjs
23950
+ };
23951
+
23952
+
23953
+ /***/ },
23954
+ /* 232 */
23888
23955
  /***/ function(module, exports, __webpack_require__) {
23889
23956
 
23890
23957
  /* WEBPACK VAR INJECTION */(function(React) {var AddItemMixin, ThumbnailAddItem;
23891
23958
 
23892
- AddItemMixin = __webpack_require__(232);
23959
+ AddItemMixin = __webpack_require__(233);
23893
23960
 
23894
23961
  ThumbnailAddItem = React.createClass({
23895
23962
  displayName: 'ThumbnailAddItem',
@@ -23914,7 +23981,7 @@
23914
23981
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
23915
23982
 
23916
23983
  /***/ },
23917
- /* 232 */
23984
+ /* 233 */
23918
23985
  /***/ function(module, exports, __webpack_require__) {
23919
23986
 
23920
23987
  /* WEBPACK VAR INJECTION */(function(React) {var AddItemMixin;
@@ -24009,14 +24076,14 @@
24009
24076
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24010
24077
 
24011
24078
  /***/ },
24012
- /* 233 */
24079
+ /* 234 */
24013
24080
  /***/ function(module, exports, __webpack_require__) {
24014
24081
 
24015
24082
  var ActiveNodeConfigCollector, ObjCreation, PresetBuilder;
24016
24083
 
24017
24084
  ActiveNodeConfigCollector = __webpack_require__(208);
24018
24085
 
24019
- PresetBuilder = __webpack_require__(234);
24086
+ PresetBuilder = __webpack_require__(235);
24020
24087
 
24021
24088
  ObjCreation = (function() {
24022
24089
  function ObjCreation(filter) {
@@ -24096,7 +24163,7 @@
24096
24163
 
24097
24164
 
24098
24165
  /***/ },
24099
- /* 234 */
24166
+ /* 235 */
24100
24167
  /***/ function(module, exports, __webpack_require__) {
24101
24168
 
24102
24169
  var ActiveNodeConfigCollector, PresetBuilder;
@@ -24192,14 +24259,14 @@
24192
24259
 
24193
24260
 
24194
24261
  /***/ },
24195
- /* 235 */
24262
+ /* 236 */
24196
24263
  /***/ function(module, exports, __webpack_require__) {
24197
24264
 
24198
24265
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedItems, LastAddedTableViewContent, LastAddedThumbnailItems, TableView, objDisplayAction;
24199
24266
 
24200
- LastAddedTableViewContent = __webpack_require__(236);
24267
+ LastAddedTableViewContent = __webpack_require__(237);
24201
24268
 
24202
- LastAddedThumbnailItems = __webpack_require__(243);
24269
+ LastAddedThumbnailItems = __webpack_require__(244);
24203
24270
 
24204
24271
  TableView = __webpack_require__(225);
24205
24272
 
@@ -24211,23 +24278,23 @@
24211
24278
  return React.createElement("div", null, (this.props.viewMode === objDisplayAction.TABLE_VIEW ? React.createElement(TableView, {
24212
24279
  "objCollection": this.props.objCollection,
24213
24280
  "activeTags": this.props.activeTags,
24214
- "toggleSelected": this.props.toggleSelected,
24215
24281
  "filter": this.props.filter,
24216
24282
  "createObj": this.props.createObj,
24217
24283
  "basePreset": this.props.basePreset
24218
24284
  }, React.createElement(LastAddedTableViewContent, {
24219
- "objCollection": this.props.objCollection,
24220
24285
  "activeTags": this.props.activeTags,
24221
- "toggleSelected": this.props.toggleSelected,
24222
24286
  "filter": this.props.filter,
24287
+ "selectedObjs": this.props.selectedObjs,
24288
+ "toggleObjSelection": this.props.toggleObjSelection,
24223
24289
  "createObj": this.props.createObj,
24224
24290
  "additions": this.props.additions,
24225
24291
  "basePreset": this.props.basePreset
24226
24292
  })) : React.createElement(LastAddedThumbnailItems, {
24227
- "objCollection": this.props.objCollection,
24228
24293
  "activeTags": this.props.activeTags,
24229
- "toggleSelected": this.props.toggleSelected,
24294
+ "selectionMode": this.props.selectionMode,
24230
24295
  "filter": this.props.filter,
24296
+ "toggleObjSelection": this.props.toggleObjSelection,
24297
+ "selectedObjs": this.props.selectedObjs,
24231
24298
  "createObj": this.props.createObj,
24232
24299
  "additions": this.props.additions,
24233
24300
  "basePreset": this.props.basePreset
@@ -24240,20 +24307,20 @@
24240
24307
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24241
24308
 
24242
24309
  /***/ },
24243
- /* 236 */
24310
+ /* 237 */
24244
24311
  /***/ function(module, exports, __webpack_require__) {
24245
24312
 
24246
24313
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedTableViewContent, LastAddedTableViewErrorItem, LastAddedTableViewItem, Obj, TableViewItem, failed, isActive, isCompleted, _ref;
24247
24314
 
24248
- LastAddedTableViewErrorItem = __webpack_require__(237);
24315
+ LastAddedTableViewErrorItem = __webpack_require__(238);
24249
24316
 
24250
- LastAddedTableViewItem = __webpack_require__(239);
24317
+ LastAddedTableViewItem = __webpack_require__(240);
24251
24318
 
24252
- TableViewItem = __webpack_require__(242);
24319
+ TableViewItem = __webpack_require__(243);
24253
24320
 
24254
24321
  Obj = __webpack_require__(182);
24255
24322
 
24256
- _ref = __webpack_require__(241), isCompleted = _ref.isCompleted, isActive = _ref.isActive, failed = _ref.failed;
24323
+ _ref = __webpack_require__(242), isCompleted = _ref.isCompleted, isActive = _ref.isActive, failed = _ref.failed;
24257
24324
 
24258
24325
  LastAddedTableViewContent = React.createClass({
24259
24326
  displayName: 'LastAddedTableViewContent',
@@ -24279,9 +24346,10 @@
24279
24346
  } else if (isCompleted(addition)) {
24280
24347
  obj = new Obj(addition.obj);
24281
24348
  return React.createElement(TableViewItem, {
24349
+ "toggleObjSelection": _this.props.toggleObjSelection,
24350
+ "selectedObjs": _this.props.selectedObjs,
24282
24351
  "key": obj.id(),
24283
- "obj": obj,
24284
- "objCollection": _this.props.objCollection
24352
+ "obj": obj
24285
24353
  });
24286
24354
  }
24287
24355
  };
@@ -24299,12 +24367,12 @@
24299
24367
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24300
24368
 
24301
24369
  /***/ },
24302
- /* 237 */
24370
+ /* 238 */
24303
24371
  /***/ function(module, exports, __webpack_require__) {
24304
24372
 
24305
24373
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedErrorItemMixin, LastAddedTableViewErrorItem;
24306
24374
 
24307
- LastAddedErrorItemMixin = __webpack_require__(238);
24375
+ LastAddedErrorItemMixin = __webpack_require__(239);
24308
24376
 
24309
24377
  LastAddedTableViewErrorItem = React.createClass({
24310
24378
  displayName: 'LastAddedTableViewError',
@@ -24327,7 +24395,7 @@
24327
24395
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24328
24396
 
24329
24397
  /***/ },
24330
- /* 238 */
24398
+ /* 239 */
24331
24399
  /***/ function(module, exports, __webpack_require__) {
24332
24400
 
24333
24401
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedErrorItemMixin;
@@ -24362,12 +24430,12 @@
24362
24430
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24363
24431
 
24364
24432
  /***/ },
24365
- /* 239 */
24433
+ /* 240 */
24366
24434
  /***/ function(module, exports, __webpack_require__) {
24367
24435
 
24368
24436
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedItemMixin, LastAddedTableViewItem;
24369
24437
 
24370
- LastAddedItemMixin = __webpack_require__(240);
24438
+ LastAddedItemMixin = __webpack_require__(241);
24371
24439
 
24372
24440
  LastAddedTableViewItem = React.createClass({
24373
24441
  displayName: 'LastAddedTableViewItem',
@@ -24392,12 +24460,12 @@
24392
24460
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24393
24461
 
24394
24462
  /***/ },
24395
- /* 240 */
24463
+ /* 241 */
24396
24464
  /***/ function(module, exports, __webpack_require__) {
24397
24465
 
24398
24466
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedItemMixin, isActive;
24399
24467
 
24400
- isActive = __webpack_require__(241).isActive;
24468
+ isActive = __webpack_require__(242).isActive;
24401
24469
 
24402
24470
  LastAddedItemMixin = {
24403
24471
  uploadInProgress: function() {
@@ -24420,10 +24488,10 @@
24420
24488
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24421
24489
 
24422
24490
  /***/ },
24423
- /* 241 */
24491
+ /* 242 */
24424
24492
  /***/ function(module, exports) {
24425
24493
 
24426
- var failed, isActive, isCompleted, isFailed, status;
24494
+ var failed, isActive, isCompleted, isFailed, status, uploadedObjs;
24427
24495
 
24428
24496
  status = function(addition) {
24429
24497
  if (addition.progress === 0) {
@@ -24447,6 +24515,12 @@
24447
24515
  return status(addition) === "failed";
24448
24516
  };
24449
24517
 
24518
+ uploadedObjs = function(additions) {
24519
+ var completed;
24520
+ completed = _.filter(additions, isCompleted);
24521
+ return _.pluck(completed, 'obj');
24522
+ };
24523
+
24450
24524
  failed = function(additions) {
24451
24525
  return _.filter(additions, isFailed);
24452
24526
  };
@@ -24454,6 +24528,7 @@
24454
24528
  module.exports = {
24455
24529
  status: status,
24456
24530
  failed: failed,
24531
+ uploadedObjs: uploadedObjs,
24457
24532
  isActive: isActive,
24458
24533
  isCompleted: isCompleted,
24459
24534
  isFailed: isFailed
@@ -24461,7 +24536,7 @@
24461
24536
 
24462
24537
 
24463
24538
  /***/ },
24464
- /* 242 */
24539
+ /* 243 */
24465
24540
  /***/ function(module, exports, __webpack_require__) {
24466
24541
 
24467
24542
  /* WEBPACK VAR INJECTION */(function(React) {var InspectedItemMixin, TableViewItem;
@@ -24510,20 +24585,20 @@
24510
24585
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24511
24586
 
24512
24587
  /***/ },
24513
- /* 243 */
24588
+ /* 244 */
24514
24589
  /***/ function(module, exports, __webpack_require__) {
24515
24590
 
24516
24591
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedThumbnailErrorItem, LastAddedThumbnailItem, LastAddedThumbnailItems, Obj, ThumbnailItem, failed, isActive, isCompleted, _ref;
24517
24592
 
24518
- LastAddedThumbnailErrorItem = __webpack_require__(244);
24593
+ LastAddedThumbnailErrorItem = __webpack_require__(245);
24519
24594
 
24520
- LastAddedThumbnailItem = __webpack_require__(245);
24595
+ LastAddedThumbnailItem = __webpack_require__(246);
24521
24596
 
24522
24597
  ThumbnailItem = __webpack_require__(228);
24523
24598
 
24524
24599
  Obj = __webpack_require__(182);
24525
24600
 
24526
- _ref = __webpack_require__(241), isCompleted = _ref.isCompleted, isActive = _ref.isActive, failed = _ref.failed;
24601
+ _ref = __webpack_require__(242), isCompleted = _ref.isCompleted, isActive = _ref.isActive, failed = _ref.failed;
24527
24602
 
24528
24603
  LastAddedThumbnailItems = React.createClass({
24529
24604
  displayName: "LastAddedThumbnailItems",
@@ -24552,8 +24627,10 @@
24552
24627
  obj = new Obj(addition.obj);
24553
24628
  return React.createElement(ThumbnailItem, {
24554
24629
  "key": obj.id(),
24555
- "obj": obj,
24556
- "objCollection": _this.props.objCollection
24630
+ "selectedObjs": _this.props.selectedObjs,
24631
+ "toggleObjSelection": _this.props.toggleObjSelection,
24632
+ "selectionMode": _this.props.selectionMode,
24633
+ "obj": obj
24557
24634
  });
24558
24635
  }
24559
24636
  };
@@ -24571,12 +24648,12 @@
24571
24648
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24572
24649
 
24573
24650
  /***/ },
24574
- /* 244 */
24651
+ /* 245 */
24575
24652
  /***/ function(module, exports, __webpack_require__) {
24576
24653
 
24577
24654
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedErrorItemMixin, LastAddedThumbnailErrorItem;
24578
24655
 
24579
- LastAddedErrorItemMixin = __webpack_require__(238);
24656
+ LastAddedErrorItemMixin = __webpack_require__(239);
24580
24657
 
24581
24658
  LastAddedThumbnailErrorItem = React.createClass({
24582
24659
  displayName: 'LastAddedThumbnailErrorItem',
@@ -24601,12 +24678,12 @@
24601
24678
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24602
24679
 
24603
24680
  /***/ },
24604
- /* 245 */
24681
+ /* 246 */
24605
24682
  /***/ function(module, exports, __webpack_require__) {
24606
24683
 
24607
24684
  /* WEBPACK VAR INJECTION */(function(React) {var LastAddedItemMixin, LastAddedThumbnailItem;
24608
24685
 
24609
- LastAddedItemMixin = __webpack_require__(240);
24686
+ LastAddedItemMixin = __webpack_require__(241);
24610
24687
 
24611
24688
  LastAddedThumbnailItem = React.createClass({
24612
24689
  displayName: 'LastAddedThumbnailItem',
@@ -24637,16 +24714,16 @@
24637
24714
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24638
24715
 
24639
24716
  /***/ },
24640
- /* 246 */
24717
+ /* 247 */
24641
24718
  /***/ function(module, exports, __webpack_require__) {
24642
24719
 
24643
24720
  /* WEBPACK VAR INJECTION */(function(React) {var InfiniteScrollMixin, ObjCreation, ReactDOM, TableViewAddItem, TableViewContent, TableViewItem;
24644
24721
 
24645
- TableViewItem = __webpack_require__(242);
24722
+ TableViewItem = __webpack_require__(243);
24646
24723
 
24647
- TableViewAddItem = __webpack_require__(247);
24724
+ TableViewAddItem = __webpack_require__(248);
24648
24725
 
24649
- ObjCreation = __webpack_require__(233);
24726
+ ObjCreation = __webpack_require__(234);
24650
24727
 
24651
24728
  InfiniteScrollMixin = __webpack_require__(227);
24652
24729
 
@@ -24661,7 +24738,9 @@
24661
24738
  return React.createElement(TableViewItem, {
24662
24739
  "key": obj.id(),
24663
24740
  "obj": obj,
24664
- "objCollection": _this.props.objCollection
24741
+ "selectionMode": _this.props.selectionMode,
24742
+ "selectedObjs": _this.props.selectedObjs,
24743
+ "toggleObjSelection": _this.props.toggleObjSelection
24665
24744
  });
24666
24745
  };
24667
24746
  })(this));
@@ -24693,12 +24772,12 @@
24693
24772
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24694
24773
 
24695
24774
  /***/ },
24696
- /* 247 */
24775
+ /* 248 */
24697
24776
  /***/ function(module, exports, __webpack_require__) {
24698
24777
 
24699
24778
  /* WEBPACK VAR INJECTION */(function(React) {var AddItemMixin, TableViewAddItem;
24700
24779
 
24701
- AddItemMixin = __webpack_require__(232);
24780
+ AddItemMixin = __webpack_require__(233);
24702
24781
 
24703
24782
  TableViewAddItem = React.createClass({
24704
24783
  mixins: [AddItemMixin],
@@ -24723,7 +24802,7 @@
24723
24802
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24724
24803
 
24725
24804
  /***/ },
24726
- /* 248 */
24805
+ /* 249 */
24727
24806
  /***/ function(module, exports, __webpack_require__) {
24728
24807
 
24729
24808
  /* WEBPACK VAR INJECTION */(function(React) {var TagBar;
@@ -24776,7 +24855,7 @@
24776
24855
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24777
24856
 
24778
24857
  /***/ },
24779
- /* 249 */
24858
+ /* 250 */
24780
24859
  /***/ function(module, exports) {
24781
24860
 
24782
24861
  var TagsActionCreator;
@@ -24852,7 +24931,7 @@
24852
24931
 
24853
24932
 
24854
24933
  /***/ },
24855
- /* 250 */
24934
+ /* 251 */
24856
24935
  /***/ function(module, exports, __webpack_require__) {
24857
24936
 
24858
24937
  /* WEBPACK VAR INJECTION */(function(React) {var MoreItemsSpinner;
@@ -24873,77 +24952,60 @@
24873
24952
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24874
24953
 
24875
24954
  /***/ },
24876
- /* 251 */
24955
+ /* 252 */
24877
24956
  /***/ function(module, exports, __webpack_require__) {
24878
24957
 
24879
- /* WEBPACK VAR INJECTION */(function(React) {var Inspector, InspectorAction, MaximizeInspectorToggle, ModalDialogsModule, ReactRedux;
24880
-
24881
- ModalDialogsModule = __webpack_require__(252);
24958
+ /* WEBPACK VAR INJECTION */(function(React) {var Inspector, InspectorHeader, MaximizeInspectorToggle;
24882
24959
 
24883
24960
  MaximizeInspectorToggle = __webpack_require__(253);
24884
24961
 
24885
- InspectorAction = __webpack_require__(254);
24886
-
24887
- ReactRedux = __webpack_require__(185);
24962
+ InspectorHeader = __webpack_require__(254);
24888
24963
 
24889
24964
  Inspector = React.createClass({
24890
24965
  displayName: 'Inspector',
24891
- getDetailsClassName: function() {
24892
- return "scrivito_icon scrivito_icon_eye";
24893
- },
24894
- toggleInspectorMaximized: function() {
24895
- return this.props.dispatch(InspectorAction.toggleInspectorMaximized());
24896
- },
24897
- getEmptyPlaceholder: function() {
24898
- return React.createElement("div", {
24899
- "className": "details-view"
24900
- }, React.createElement("p", {
24901
- "className": "no-editing-available"
24902
- }, React.createElement("span", {
24903
- "className": "scrivito_icon scrivito_icon_generic"
24904
- }), "No edit view available."));
24966
+ propTypes: {
24967
+ editingView: React.PropTypes.bool.isRequired,
24968
+ disableDelete: React.PropTypes.bool.isRequired,
24969
+ selectedObjs: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
24970
+ objCollection: React.PropTypes.object.isRequired,
24971
+ dispatch: React.PropTypes.func.isRequired
24905
24972
  },
24906
- _getMultiSelectedTitle: function() {
24907
- return "Selected: " + (this.props.objCollection.getSelectedObjs().length) + " items";
24908
- },
24909
- _getInspectedObj: function() {
24910
- return this.props.objCollection.getSelectedObjs()[0];
24911
- },
24912
- _fileDetail: function() {
24913
- var _ref;
24914
- return (_ref = this._getInspectedObj()) != null ? _ref.title() : void 0;
24915
- },
24916
- _showInspectorHeader: function(title) {
24917
- return React.createElement("h3", {
24918
- "title": title
24919
- }, React.createElement(MaximizeInspectorToggle, {
24920
- "toggleInspectorMaximized": this.toggleInspectorMaximized
24921
- }), React.createElement("span", {
24922
- "title": "Details",
24923
- "className": this.getDetailsClassName()
24924
- }), React.createElement("span", {
24925
- "className": "title"
24926
- }, title), (this.props.editingView ? React.createElement("span", {
24927
- "className": "scrivito_icon scrivito_icon_trash scrivito_delete",
24928
- "onClick": this._deleteInspectedObjs
24929
- }) : void 0));
24973
+ _detailsViewUrl: function() {
24974
+ return scrivito.details_url_for_obj_id(this.props.selectedObjs[0]);
24930
24975
  },
24931
24976
  _deleteInspectedObjs: function() {
24932
- return ModalDialogsModule.deleteObjs(this.props.objCollection.getSelectedObjs()).then((function(_this) {
24933
- return function() {
24934
- return _this.props.objCollection.destroySelectedObjs();
24935
- };
24936
- })(this));
24977
+ var _ref;
24978
+ if (this.props.selectedObjs.length) {
24979
+ return (_ref = scrivito.ConfirmDeleteDialog).open.apply(_ref, this.props.selectedObjs).then((function(_this) {
24980
+ return function(isConfirmed) {
24981
+ if (isConfirmed) {
24982
+ return _this.props.objCollection.destroyObjs(_this.props.selectedObjs);
24983
+ }
24984
+ };
24985
+ })(this));
24986
+ }
24937
24987
  },
24938
24988
  render: function() {
24939
24989
  return React.createElement("div", {
24940
24990
  "className": "scrivito-content-browser-inspector"
24941
- }, (this.props.objCollection.getSelectedObjs().length > 0 ? this.props.objCollection.isSingleElementSelected() ? React.createElement("div", null, this._showInspectorHeader(this._fileDetail()), React.createElement("div", {
24991
+ }, (this.props.selectedObjs.length > 0 ? this.props.selectedObjs.length === 1 ? React.createElement("div", null, React.createElement(InspectorHeader, {
24992
+ "editingView": this.props.editingView,
24993
+ "disableDelete": this.props.disableDelete,
24994
+ "dispatch": this.props.dispatch,
24995
+ "selectedObjs": this.props.selectedObjs,
24996
+ "deleteInspectedObjs": this._deleteInspectedObjs
24997
+ }), React.createElement("div", {
24942
24998
  "className": "inspector-content"
24943
- }, (this._getInspectedObj().hasDetailsView() ? React.createElement("iframe", {
24944
- "src": this._getInspectedObj().detailsViewUrl(),
24999
+ }, React.createElement("iframe", {
25000
+ "src": this._detailsViewUrl(),
24945
25001
  "name": "scrivito_inspector"
24946
- }) : this.getEmptyPlaceholder()))) : this._showInspectorHeader(this._getMultiSelectedTitle()) : void 0));
25002
+ }))) : React.createElement(InspectorHeader, {
25003
+ "editingView": this.props.editingView,
25004
+ "disableDelete": this.props.disableDelete,
25005
+ "dispatch": this.props.dispatch,
25006
+ "selectedObjs": this.props.selectedObjs,
25007
+ "deleteInspectedObjs": this._deleteInspectedObjs
25008
+ }) : void 0));
24947
25009
  }
24948
25010
  });
24949
25011
 
@@ -24951,33 +25013,6 @@
24951
25013
 
24952
25014
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24953
25015
 
24954
- /***/ },
24955
- /* 252 */
24956
- /***/ function(module, exports, __webpack_require__) {
24957
-
24958
- /* WEBPACK VAR INJECTION */(function(React) {var ModalDialogsModule;
24959
-
24960
- ModalDialogsModule = {
24961
- deleteObjs: function(selectedObjs) {
24962
- var objectsToBeDeleted, title;
24963
- if (selectedObjs.length === 1) {
24964
- objectsToBeDeleted = selectedObjs[0].title();
24965
- title = React.createElement("span", null, "Really delete ", React.createElement("q", null, objectsToBeDeleted), "?");
24966
- } else {
24967
- objectsToBeDeleted = "" + selectedObjs.length + " CMS objects";
24968
- title = 'Really delete the selected items?';
24969
- }
24970
- return scrivito.content_browser._showConfirm({
24971
- title: title,
24972
- subtitle: "This will delete " + objectsToBeDeleted + ". Objects that were created in this working copy cannot be restored."
24973
- });
24974
- }
24975
- };
24976
-
24977
- module.exports = ModalDialogsModule;
24978
-
24979
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24980
-
24981
25016
  /***/ },
24982
25017
  /* 253 */
24983
25018
  /***/ function(module, exports, __webpack_require__) {
@@ -25006,40 +25041,96 @@
25006
25041
 
25007
25042
  /***/ },
25008
25043
  /* 254 */
25009
- /***/ function(module, exports) {
25044
+ /***/ function(module, exports, __webpack_require__) {
25010
25045
 
25011
- var InspectorActionCreator;
25046
+ /* WEBPACK VAR INJECTION */(function(React) {var InspectorHeader, MaximizeInspectorToggle, toggleInspectorMaximized;
25012
25047
 
25013
- InspectorActionCreator = (function() {
25014
- function InspectorActionCreator() {}
25048
+ MaximizeInspectorToggle = __webpack_require__(253);
25015
25049
 
25016
- InspectorActionCreator.MAXIMIZE_TOGGLE = 'MAXIMAZED_INSPECTOR_TOGGLE';
25050
+ toggleInspectorMaximized = __webpack_require__(255).toggleInspectorMaximized;
25017
25051
 
25018
- InspectorActionCreator.toggleInspectorMaximized = function() {
25019
- return {
25020
- type: this.MAXIMIZE_TOGGLE
25021
- };
25022
- };
25052
+ InspectorHeader = scrivito.createReactClass({
25053
+ displayName: 'Inspector',
25054
+ propTypes: {
25055
+ editingView: React.PropTypes.bool.isRequired,
25056
+ disableDelete: React.PropTypes.bool.isRequired,
25057
+ selectedObjs: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
25058
+ dispatch: React.PropTypes.func.isRequired,
25059
+ deleteInspectedObjs: React.PropTypes.func.isRequired
25060
+ },
25061
+ _getMultiSelectedTitle: function() {
25062
+ return "Selected: " + this.props.selectedObjs.length + " items";
25063
+ },
25064
+ getDetailsClassName: function() {
25065
+ return "scrivito_icon scrivito_icon_eye";
25066
+ },
25067
+ _title: function() {
25068
+ var _ref;
25069
+ if (this.props.selectedObjs.length === 1) {
25070
+ return (_ref = this._getInspectedObj()) != null ? _ref.descriptionForEditor : void 0;
25071
+ } else {
25072
+ return this._getMultiSelectedTitle();
25073
+ }
25074
+ },
25075
+ _getInspectedObj: function() {
25076
+ var id;
25077
+ id = this.props.selectedObjs[0];
25078
+ return scrivito.BasicObj.get(id);
25079
+ },
25080
+ toggleInspectorMaximized: function() {
25081
+ return this.props.dispatch(toggleInspectorMaximized());
25082
+ },
25083
+ render: function() {
25084
+ return React.createElement("h3", {
25085
+ "title": this._title()
25086
+ }, React.createElement(MaximizeInspectorToggle, {
25087
+ "toggleInspectorMaximized": this.toggleInspectorMaximized
25088
+ }), React.createElement("span", {
25089
+ "title": "Details",
25090
+ "className": this.getDetailsClassName()
25091
+ }), React.createElement("span", {
25092
+ "className": "title"
25093
+ }, this._title()), (this.props.editingView && !this.props.disableDelete ? React.createElement("span", {
25094
+ "className": "scrivito_icon scrivito_icon_trash scrivito_delete",
25095
+ "onClick": this.props.deleteInspectedObjs
25096
+ }) : void 0));
25097
+ }
25098
+ });
25023
25099
 
25024
- return InspectorActionCreator;
25100
+ module.exports = InspectorHeader;
25025
25101
 
25026
- })();
25102
+ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
25103
+
25104
+ /***/ },
25105
+ /* 255 */
25106
+ /***/ function(module, exports) {
25027
25107
 
25028
- module.exports = InspectorActionCreator;
25108
+ var MAXIMIZE_TOGGLE, toggleInspectorMaximized;
25109
+
25110
+ MAXIMIZE_TOGGLE = 'MAXIMAZED_INSPECTOR_TOGGLE';
25111
+
25112
+ toggleInspectorMaximized = function() {
25113
+ return {
25114
+ type: MAXIMIZE_TOGGLE
25115
+ };
25116
+ };
25117
+
25118
+ module.exports = {
25119
+ MAXIMIZE_TOGGLE: MAXIMIZE_TOGGLE,
25120
+ toggleInspectorMaximized: toggleInspectorMaximized
25121
+ };
25029
25122
 
25030
25123
 
25031
25124
  /***/ },
25032
- /* 255 */
25125
+ /* 256 */
25033
25126
  /***/ function(module, exports, __webpack_require__) {
25034
25127
 
25035
- /* WEBPACK VAR INJECTION */(function(React) {var Footer, ModalDialogsModule;
25036
-
25037
- ModalDialogsModule = __webpack_require__(252);
25128
+ /* WEBPACK VAR INJECTION */(function(React) {var Footer;
25038
25129
 
25039
25130
  Footer = React.createClass({
25040
25131
  displayName: 'Footer',
25041
25132
  currentSelectedCount: function() {
25042
- return this.props.objCollection.getSelectedObjs().length;
25133
+ return this.props.selectedObjs.length;
25043
25134
  },
25044
25135
  deleteButtonClass: function() {
25045
25136
  var className;
@@ -25057,13 +25148,16 @@
25057
25148
  }
25058
25149
  },
25059
25150
  doneClick: function() {
25060
- return this.props.promise.resolve(this.props.objCollection.selectedObjsIds());
25151
+ return this.props.promise.resolve(this.props.selectedObjs);
25061
25152
  },
25062
25153
  deleteClick: function() {
25063
- if (this.props.objCollection.getSelectedObjs().length > 0) {
25064
- return ModalDialogsModule.deleteObjs(this.props.objCollection.getSelectedObjs()).then((function(_this) {
25065
- return function() {
25066
- return _this.props.objCollection.destroySelectedObjs();
25154
+ var _ref;
25155
+ if (this.props.selectedObjs.length) {
25156
+ return (_ref = scrivito.ConfirmDeleteDialog).open.apply(_ref, this.props.selectedObjs).then((function(_this) {
25157
+ return function(isConfirmed) {
25158
+ if (isConfirmed) {
25159
+ return _this.props.objCollection.destroyObjs(_this.props.selectedObjs);
25160
+ }
25067
25161
  };
25068
25162
  })(this));
25069
25163
  }
@@ -25079,7 +25173,7 @@
25079
25173
  render: function() {
25080
25174
  return React.createElement("div", {
25081
25175
  "className": "scrivito-content-browser-footer"
25082
- }, (this.props.editingView ? React.createElement("a", {
25176
+ }, (this.props.editingView && !this.props.disableDelete ? React.createElement("a", {
25083
25177
  "className": this.deleteButtonClass(),
25084
25178
  "onClick": this.deleteClick
25085
25179
  }, scrivito.translate("content_browser.footer.delete"), React.createElement("span", {
@@ -25101,7 +25195,7 @@
25101
25195
  /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
25102
25196
 
25103
25197
  /***/ },
25104
- /* 256 */
25198
+ /* 257 */
25105
25199
  /***/ function(module, exports) {
25106
25200
 
25107
25201
  var LastAddedActionCreator;
@@ -25126,7 +25220,7 @@
25126
25220
 
25127
25221
 
25128
25222
  /***/ },
25129
- /* 257 */
25223
+ /* 258 */
25130
25224
  /***/ function(module, exports, __webpack_require__) {
25131
25225
 
25132
25226
  var CREATE_OBJ_FAILED, CREATE_OBJ_FINISH, CREATE_OBJ_PROGRESS_UPDATE, CREATE_OBJ_START, DELETE_OBJ_FINISH, QueryBuilder, createObj, objDeleted, _createObjFailed, _createObjFinish, _createObjProgressUpdate, _createObjStart, _getTagsAttributes, _hasCorrectTagAttribute;
@@ -25250,16 +25344,16 @@
25250
25344
 
25251
25345
 
25252
25346
  /***/ },
25253
- /* 258 */
25347
+ /* 259 */
25254
25348
  /***/ function(module, exports, __webpack_require__) {
25255
25349
 
25256
25350
  var applyMiddleware, combinedReducer, configureStore, createStore, thunkMiddleware, _ref;
25257
25351
 
25258
- thunkMiddleware = __webpack_require__(259);
25352
+ thunkMiddleware = __webpack_require__(260);
25259
25353
 
25260
25354
  _ref = __webpack_require__(193), createStore = _ref.createStore, applyMiddleware = _ref.applyMiddleware;
25261
25355
 
25262
- combinedReducer = __webpack_require__(260);
25356
+ combinedReducer = __webpack_require__(261);
25263
25357
 
25264
25358
  configureStore = function(initialState) {
25265
25359
  var createStoreWithMiddleware;
@@ -25271,7 +25365,7 @@
25271
25365
 
25272
25366
 
25273
25367
  /***/ },
25274
- /* 259 */
25368
+ /* 260 */
25275
25369
  /***/ function(module, exports) {
25276
25370
 
25277
25371
  'use strict';
@@ -25290,41 +25384,46 @@
25290
25384
  module.exports = thunkMiddleware;
25291
25385
 
25292
25386
  /***/ },
25293
- /* 260 */
25387
+ /* 261 */
25294
25388
  /***/ function(module, exports, __webpack_require__) {
25295
25389
 
25296
- var Redux, TagsReducer, combinedReducer, inspectorReducer, lastAddedReducer, objDisplayReducer, sortCriteria;
25390
+ var Redux, TagsReducer, combinedReducer, inspectorReducer, lastAddedReducer, objDisplayReducer, selectionReducer, sortCriteria;
25297
25391
 
25298
25392
  Redux = __webpack_require__(193);
25299
25393
 
25300
- inspectorReducer = __webpack_require__(261);
25394
+ inspectorReducer = __webpack_require__(262);
25301
25395
 
25302
- lastAddedReducer = __webpack_require__(262);
25396
+ lastAddedReducer = __webpack_require__(263);
25303
25397
 
25304
- objDisplayReducer = __webpack_require__(265);
25398
+ objDisplayReducer = __webpack_require__(266);
25305
25399
 
25306
- sortCriteria = __webpack_require__(266);
25400
+ sortCriteria = __webpack_require__(267);
25307
25401
 
25308
- TagsReducer = __webpack_require__(267);
25402
+ TagsReducer = __webpack_require__(268);
25403
+
25404
+ selectionReducer = __webpack_require__(269);
25309
25405
 
25310
25406
  combinedReducer = Redux.combineReducers({
25311
25407
  objDisplay: objDisplayReducer,
25312
25408
  inspector: inspectorReducer,
25313
25409
  lastAdded: lastAddedReducer,
25314
25410
  sortCriteria: sortCriteria,
25315
- tags: TagsReducer
25411
+ tags: TagsReducer,
25412
+ selection: selectionReducer
25316
25413
  });
25317
25414
 
25318
25415
  module.exports = combinedReducer;
25319
25416
 
25320
25417
 
25321
25418
  /***/ },
25322
- /* 261 */
25419
+ /* 262 */
25323
25420
  /***/ function(module, exports, __webpack_require__) {
25324
25421
 
25325
- var inspectorActions, inspectorReducer;
25422
+ var DELETE_OBJ_FINISH, MAXIMIZE_TOGGLE, inspectorReducer;
25423
+
25424
+ MAXIMIZE_TOGGLE = __webpack_require__(255).MAXIMIZE_TOGGLE;
25326
25425
 
25327
- inspectorActions = __webpack_require__(254);
25426
+ DELETE_OBJ_FINISH = __webpack_require__(258).DELETE_OBJ_FINISH;
25328
25427
 
25329
25428
  inspectorReducer = function(state, action) {
25330
25429
  if (state == null) {
@@ -25333,10 +25432,14 @@
25333
25432
  };
25334
25433
  }
25335
25434
  switch (action.type) {
25336
- case inspectorActions.MAXIMIZE_TOGGLE:
25435
+ case MAXIMIZE_TOGGLE:
25337
25436
  return _.extend({}, state, {
25338
25437
  isMaximized: !state.isMaximized
25339
25438
  });
25439
+ case DELETE_OBJ_FINISH:
25440
+ return _.extend({}, state, {
25441
+ isMaximized: false
25442
+ });
25340
25443
  default:
25341
25444
  return state;
25342
25445
  }
@@ -25346,16 +25449,16 @@
25346
25449
 
25347
25450
 
25348
25451
  /***/ },
25349
- /* 262 */
25452
+ /* 263 */
25350
25453
  /***/ function(module, exports, __webpack_require__) {
25351
25454
 
25352
25455
  var CREATE_OBJ_FAILED, CREATE_OBJ_FINISH, CREATE_OBJ_PROGRESS_UPDATE, CREATE_OBJ_START, DELETE_OBJ_FINISH, LAST_ADDED_TOOGLE, LastAddedReducer, deleteAdition, update, updateAddition, _ref;
25353
25456
 
25354
- LAST_ADDED_TOOGLE = __webpack_require__(256).LAST_ADDED_TOOGLE;
25457
+ LAST_ADDED_TOOGLE = __webpack_require__(257).LAST_ADDED_TOOGLE;
25355
25458
 
25356
- _ref = __webpack_require__(257), CREATE_OBJ_START = _ref.CREATE_OBJ_START, CREATE_OBJ_PROGRESS_UPDATE = _ref.CREATE_OBJ_PROGRESS_UPDATE, CREATE_OBJ_FINISH = _ref.CREATE_OBJ_FINISH, CREATE_OBJ_FAILED = _ref.CREATE_OBJ_FAILED, DELETE_OBJ_FINISH = _ref.DELETE_OBJ_FINISH;
25459
+ _ref = __webpack_require__(258), CREATE_OBJ_START = _ref.CREATE_OBJ_START, CREATE_OBJ_PROGRESS_UPDATE = _ref.CREATE_OBJ_PROGRESS_UPDATE, CREATE_OBJ_FINISH = _ref.CREATE_OBJ_FINISH, CREATE_OBJ_FAILED = _ref.CREATE_OBJ_FAILED, DELETE_OBJ_FINISH = _ref.DELETE_OBJ_FINISH;
25357
25460
 
25358
- update = __webpack_require__(263);
25461
+ update = __webpack_require__(264);
25359
25462
 
25360
25463
  deleteAdition = function(state, objId) {
25361
25464
  var addedObjIndex;
@@ -25439,13 +25542,13 @@
25439
25542
 
25440
25543
 
25441
25544
  /***/ },
25442
- /* 263 */
25545
+ /* 264 */
25443
25546
  /***/ function(module, exports, __webpack_require__) {
25444
25547
 
25445
- module.exports = __webpack_require__(264);
25548
+ module.exports = __webpack_require__(265);
25446
25549
 
25447
25550
  /***/ },
25448
- /* 264 */
25551
+ /* 265 */
25449
25552
  /***/ function(module, exports, __webpack_require__) {
25450
25553
 
25451
25554
  /**
@@ -25558,7 +25661,7 @@
25558
25661
  module.exports = update;
25559
25662
 
25560
25663
  /***/ },
25561
- /* 265 */
25664
+ /* 266 */
25562
25665
  /***/ function(module, exports, __webpack_require__) {
25563
25666
 
25564
25667
  var SET_VIEW_MODE, THUMBNAIL_VIEW, objDisplayReducer, _ref;
@@ -25585,7 +25688,7 @@
25585
25688
 
25586
25689
 
25587
25690
  /***/ },
25588
- /* 266 */
25691
+ /* 267 */
25589
25692
  /***/ function(module, exports, __webpack_require__) {
25590
25693
 
25591
25694
  var CHANGE_SORT_ORDER, DESC_SORT_ORDER, sortCriteriaReducer, _ref;
@@ -25595,7 +25698,7 @@
25595
25698
  sortCriteriaReducer = function(state, action) {
25596
25699
  if (state == null) {
25597
25700
  state = {
25598
- sortField: '_last_changed',
25701
+ sortField: 'relevance',
25599
25702
  sortDirection: DESC_SORT_ORDER
25600
25703
  };
25601
25704
  }
@@ -25614,12 +25717,12 @@
25614
25717
 
25615
25718
 
25616
25719
  /***/ },
25617
- /* 267 */
25720
+ /* 268 */
25618
25721
  /***/ function(module, exports, __webpack_require__) {
25619
25722
 
25620
25723
  var COMPLETE_FETCHING_TAGS, DISABLE_TAGS, EXPAND_TOGGLE, START_FETCHING_TAGS, TOGGLE_TAG, TagsReducer, defaultState, getActiveTags, _ref;
25621
25724
 
25622
- _ref = __webpack_require__(249), START_FETCHING_TAGS = _ref.START_FETCHING_TAGS, EXPAND_TOGGLE = _ref.EXPAND_TOGGLE, TOGGLE_TAG = _ref.TOGGLE_TAG, COMPLETE_FETCHING_TAGS = _ref.COMPLETE_FETCHING_TAGS, DISABLE_TAGS = _ref.DISABLE_TAGS;
25725
+ _ref = __webpack_require__(250), START_FETCHING_TAGS = _ref.START_FETCHING_TAGS, EXPAND_TOGGLE = _ref.EXPAND_TOGGLE, TOGGLE_TAG = _ref.TOGGLE_TAG, COMPLETE_FETCHING_TAGS = _ref.COMPLETE_FETCHING_TAGS, DISABLE_TAGS = _ref.DISABLE_TAGS;
25623
25726
 
25624
25727
  getActiveTags = function(currentActiveTags, actionTag) {
25625
25728
  var activeTags;
@@ -25671,5 +25774,57 @@
25671
25774
  module.exports = TagsReducer;
25672
25775
 
25673
25776
 
25777
+ /***/ },
25778
+ /* 269 */
25779
+ /***/ function(module, exports, __webpack_require__) {
25780
+
25781
+ var DELETE_OBJ_FINISH, DESELECT_OBJS, INITIALIZE_SELECTION, MULTI_SELECTION_MODE, TOGGLE_SELECT, getSelectedObjIds, selectionReducer, _ref;
25782
+
25783
+ _ref = __webpack_require__(231), TOGGLE_SELECT = _ref.TOGGLE_SELECT, DESELECT_OBJS = _ref.DESELECT_OBJS, INITIALIZE_SELECTION = _ref.INITIALIZE_SELECTION, MULTI_SELECTION_MODE = _ref.MULTI_SELECTION_MODE;
25784
+
25785
+ DELETE_OBJ_FINISH = __webpack_require__(258).DELETE_OBJ_FINISH;
25786
+
25787
+ getSelectedObjIds = function(ids, toggledObjId, mode) {
25788
+ if (_.contains(ids, toggledObjId)) {
25789
+ return _.without(ids, toggledObjId);
25790
+ } else if (mode === "multi") {
25791
+ return ids.concat([toggledObjId]);
25792
+ } else {
25793
+ return [toggledObjId];
25794
+ }
25795
+ };
25796
+
25797
+ selectionReducer = function(state, action) {
25798
+ if (state == null) {
25799
+ state = {
25800
+ selectedObjs: [],
25801
+ selectionMode: MULTI_SELECTION_MODE
25802
+ };
25803
+ }
25804
+ switch (action.type) {
25805
+ case INITIALIZE_SELECTION:
25806
+ return _.extend({}, state, {
25807
+ selectionMode: action.mode || state.selectionMode
25808
+ });
25809
+ case TOGGLE_SELECT:
25810
+ return _.extend({}, state, {
25811
+ selectedObjs: getSelectedObjIds(state.selectedObjs, action.objId, state.selectionMode)
25812
+ });
25813
+ case DELETE_OBJ_FINISH:
25814
+ return _.extend({}, state, {
25815
+ selectedObjs: _.without(state.selectedObjs, action.objId)
25816
+ });
25817
+ case DESELECT_OBJS:
25818
+ return _.extend({}, state, {
25819
+ selectedObjs: []
25820
+ });
25821
+ default:
25822
+ return state;
25823
+ }
25824
+ };
25825
+
25826
+ module.exports = selectionReducer;
25827
+
25828
+
25674
25829
  /***/ }
25675
25830
  /******/ ]);