grid rte - use infinite editors instead of overlays

This commit is contained in:
Mads Rasmussen
2018-08-21 16:07:38 +02:00
parent 6a0dc77be3
commit 08c1a2d095
2 changed files with 25 additions and 52 deletions

View File

@@ -1,7 +1,7 @@
(function() {
"use strict";
function GridRichTextEditorController($scope, tinyMceService, macroService, editorState) {
function GridRichTextEditorController($scope, tinyMceService, macroService, editorState, editorService) {
var vm = this;
@@ -11,64 +11,65 @@
vm.openEmbed = openEmbed;
function openLinkPicker(editor, currentTarget, anchorElement) {
vm.linkPickerOverlay = {
view: "linkpicker",
var linkPicker = {
currentTarget: currentTarget,
anchors: tinyMceService.getAnchorNames(JSON.stringify(editorState.current.properties)),
show: true,
submit: function(model) {
tinyMceService.insertLinkInEditor(editor, model.target, anchorElement);
vm.linkPickerOverlay.show = false;
vm.linkPickerOverlay = null;
editorService.close();
},
close: function() {
editorService.close();
}
};
editorService.linkPicker(linkPicker);
}
function openMediaPicker(editor, currentTarget, userData) {
vm.mediaPickerOverlay = {
var mediaPicker = {
currentTarget: currentTarget,
onlyImages: true,
showDetails: true,
startNodeId: userData.startMediaIds.length !== 1 ? -1 : userData.startMediaIds[0],
view: "mediapicker",
show: true,
submit: function(model) {
tinyMceService.insertMediaInEditor(editor, model.selectedImages[0]);
vm.mediaPickerOverlay.show = false;
vm.mediaPickerOverlay = null;
editorService.close();
},
close: function() {
editorService.close();
}
};
editorService.mediaPicker(mediaPicker);
}
function openEmbed(editor) {
vm.embedOverlay = {
view: "embed",
show: true,
var embed = {
submit: function(model) {
tinyMceService.insertEmbeddedMediaInEditor(editor, model.embed.preview);
vm.embedOverlay.show = false;
vm.embedOverlay = null;
editorService.close();
},
close: function() {
editorService.close();
}
};
editorService.embed(embed);
}
function openMacroPicker(editor, dialogData) {
vm.macroPickerOverlay = {
view: "macropicker",
var macroPicker = {
dialogData: dialogData,
show: true,
submit: function(model) {
var macroObject = macroService.collectValueData(model.selectedMacro, model.macroParams, dialogData.renderingEngine);
tinyMceService.insertMacroInEditor(editor, macroObject, $scope);
vm.macroPickerOverlay.show = false;
vm.macroPickerOverlay = null;
editorService.close();
},
close: function() {
editorService.close();
}
};
editorService.macroPicker(macroPicker);
}
}
angular.module("umbraco").controller("Umbraco.PropertyEditors.Grid.RichTextEditorController", GridRichTextEditorController);

View File

@@ -11,32 +11,4 @@
on-macro-picker-click="vm.openMacroPicker">
</div>
<umb-overlay
ng-if="vm.linkPickerOverlay.show"
model="vm.linkPickerOverlay"
position="right"
view="vm.linkPickerOverlay.view">
</umb-overlay>
<umb-overlay
ng-if="vm.mediaPickerOverlay.show"
model="vm.mediaPickerOverlay"
position="right"
view="vm.mediaPickerOverlay.view">
</umb-overlay>
<umb-overlay
ng-if="vm.embedOverlay.show"
model="vm.embedOverlay"
position="right"
view="vm.embedOverlay.view">
</umb-overlay>
<umb-overlay
ng-if="vm.macroPickerOverlay.show"
model="vm.macroPickerOverlay"
view="vm.macroPickerOverlay.view"
position="right">
</umb-overlay>
</div>