Skip to content

Commit

Permalink
FEATURE: add delete functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
dimaip committed Sep 2, 2016
1 parent 60d32ed commit f35f75b
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 2 deletions.
57 changes: 55 additions & 2 deletions Resources/Private/Templates/CreateNodeButton.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<div{attributes -> f:format.raw()} style="margin: 12px 0; padding: 6px; display: inline-block">
<div{attributes -> f:format.raw()} style="margin-top: 12px; padding: 6px; display: flex">
<f:form
id="createNewNodeForm"
method="post"
Expand All @@ -14,10 +14,23 @@
<f:form.textfield name="nodeData[properties][title]" placeholder="{f:translate(package: 'Psmb.CreateNodeButton', id: 'placeholder')}" />
<f:form.submit class="neos-button" value="{f:translate(package: 'Psmb.CreateNodeButton', id: 'create')}"/>
</f:form>
<f:form style="margin-left: auto;"
id="deleteNodeForm"
method="post"
action="delete"
controller="Node"
package="TYPO3.Neos"
subpackage="Service"
format="json"
>
<f:form.hidden name="node" value="{deleteNode.contextPath}" />
<f:form.hidden name="position" value="{position}" />
<f:form.submit class="neos-button" title="{f:translate(package: 'Psmb.CreateNodeButton', id: 'deleteFull')}" value="{f:translate(package: 'Psmb.CreateNodeButton', id: 'delete')}"/>
</f:form>

<script type="text/javascript">
(function() {
function init() {
function initCreate() {
var endpointUrl = document.querySelector('link[rel="neos-service-node-create"]').getAttribute('href');
var form = document.getElementById('createNewNodeForm');

Expand Down Expand Up @@ -49,6 +62,46 @@
return false;
});
}
function initDelete() {
var endpointUrl = document.querySelector('link[rel="neos-service-node-delete"]').getAttribute('href');
var form = document.getElementById('deleteNodeForm');

form.addEventListener('submit', function(event) {
event.preventDefault();
var submitButton = form.querySelector('input[type=submit]');
var confirmationText = "<f:translate package="Psmb.CreateNodeButton" id="confirm"/>";
if (submitButton.value != confirmationText) {
submitButton.value = confirmationText;
submitButton.classList.add('neos-button-danger');
} else {
submitButton.disabled = true;
submitButton.value = "<f:translate package="Psmb.CreateNodeButton" id="deleting"/>";

var request = new XMLHttpRequest();
request.withCredentials = true;
request.open('POST', endpointUrl, true);

request.onload = function() {
if (request.status >= 200 && request.status < 400) {
var response = JSON.parse(request.responseText);
window.location = '/neos';
} else {
submitButton.value = "<f:translate package="Psmb.CreateNodeButton" id="error"/>";
}
};
request.onerror = function() {
submitButton.value = "<f:translate package="Psmb.CreateNodeButton" id="error"/>";
};

request.send(new FormData(form));
}
return false;
});
}
function init() {
initCreate();
initDelete();
}

init();
document.addEventListener('Neos.PageLoaded', function(event) {
Expand Down
12 changes: 12 additions & 0 deletions Resources/Private/Translations/en/Main.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@
<trans-unit id="placeholder">
<source>Title of the new page</source>
</trans-unit>
<trans-unit id="confirm">
<source>Are you sure that you want to delete this page?</source>
</trans-unit>
<trans-unit id="delete">
<source>Delete</source>
</trans-unit>
<trans-unit id="deleting">
<source>Deleting...</source>
</trans-unit>
<trans-unit id="deleteFull">
<source>Delete this page</source>
</trans-unit>
<trans-unit id="create">
<source>Create</source>
</trans-unit>
Expand Down
16 changes: 16 additions & 0 deletions Resources/Private/Translations/ru/Main.xlf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@
<source>Title of the new page</source>
<target>Заголовок новой страницы</target>
</trans-unit>
<trans-unit id="confirm">
<source>Are you sure that you want to delete this page?</source>
<target>Вы уверены, что хотите удалить эту страницу?</target>
</trans-unit>
<trans-unit id="delete">
<source>Delete</source>
<target>Удалить</target>
</trans-unit>
<trans-unit id="deleting">
<source>Deleting...</source>
<target>Удаляю...</target>
</trans-unit>
<trans-unit id="deleteFull">
<source>Delete this page</source>
<target>Удалить эту страницу</target>
</trans-unit>
<trans-unit id="create">
<source>Create</source>
<target>Создать</target>
Expand Down
1 change: 1 addition & 0 deletions Resources/Private/TypoScript/Root.ts2
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ prototype(Psmb.CreateNodeButton:CreateNodeButton) < prototype(TYPO3.TypoScript:T
class = 'CreateNodeButton neos neos-module'
}
referenceNode = ${node}
deleteNode = ${node}
position = 'after'
type = 'TYPO3.Neos:Page'
@if.onlyInBackend = ${node.context.inBackend}
Expand Down

0 comments on commit f35f75b

Please sign in to comment.