- Posts: 1
COMMUNITY FORUM
Frontend Save & Close solution
- Martijn Hartong
- Topic Author
- Offline
- New Member
Less
More
5 years 9 months ago - 5 years 9 months ago #171292
by Martijn Hartong
Frontend Save & Close solution was created by Martijn Hartong
Hi,
For my project I really needed a working Save & Close button with visible reloaded content. I read a lot of questions, but could not find the answer. Basicly there are two save buttons; one with hover class and the other sets local storage. Perhaps it's better with User state and/or setInterval, etc. Please find my html/js from itemform.php to discuss better solutions. Thanks
For my project I really needed a working Save & Close button with visible reloaded content. I read a lot of questions, but could not find the answer. Basicly there are two save buttons; one with hover class and the other sets local storage. Perhaps it's better with User state and/or setInterval, etc. Please find my html/js from itemform.php to discuss better solutions. Thanks
<table id="k2ModalToolbar" cellpadding="2" cellspacing="4">
<tr>
<td id="toolbar-save" class="button">
<a href="#" onclick="Joomla.submitbutton('save');return false;">
<i class="fa fa-check" aria-hidden="true"></i> <?php echo JText::_('K2_SAVE'); ?>
</a>
</td>
<td id="toolbar-cancel" class="button">
<a href="#">
<i class="fa fa-times-circle" aria-hidden="true"></i> <?php echo JText::_('K2_CLOSE'); ?>
</a>
</td>
<td id="toolbar-senc" class="button">
<a href="#" onclick="Joomla.submitbutton('save');return false;">
<i class="fa fa-bullseye" aria-hidden="true"></i> Save & Close
</a>
</td>
</tr>
</table>
$document->addScriptDeclaration("
window.addEvent('domready',function () {
\$K2('#catid option').attr('selected', '1');
setTimeout(function(){
\$K2('#catid').change();
}, 1000);
});
\$K2(function(){
\$K2('#toolbar-save').hover(
function(){ $(this).addClass('active') },
function(){ $(this).removeClass('active') }
)
if (localStorage.getItem('save')) {
var k2ItemId = \$K2('input[name=id]').val();
var sigProFolder = \$K2('input[name=sigProFolder]').val();
\$K2.ajax({
type: 'get',
cache: false,
url: K2SitePath + 'index.php?option=com_k2&view=item&task=checkin&cid=' + k2ItemId + '&lang=' + \$K2('input[name=lang]').val() + '&sigProFolder=' + sigProFolder,
success: function() {
localStorage.removeItem('save');
// Close modal
if (typeof(parent.\$K2.magnificPopup) !== 'undefined') {
parent.window.location.reload();
parent.\$K2.magnificPopup.close();
}
// Close window/tab
if (top == self) {
window.close();
}
// localStorage.removeItem('save') MOVED UP AFTER SUCCESS FOR BROWSER COMPATIBILITY
}
});
}
});
Joomla.submitbutton = function(pressbutton){
if (pressbutton == 'cancel') {
submitform( pressbutton );
return;
}
if (\$K2.trim(\$K2('#title').val()) == '') {
alert( '".JText::_('K2_ITEM_MUST_HAVE_A_TITLE', true)."' );
}
if (\$K2.trim(\$K2('#catid').val()) == '0') {
alert( '".JText::_('K2_PLEASE_SELECT_A_CATEGORY', true)."' );
}
else if (\$K2('#toolbar-save').hasClass('active')) {
syncExtraFieldsEditor();
var validation = validateExtraFields();
if(validation === true) {
\$K2('#selectedTags option').attr('selected', 'selected');
submitform( pressbutton );
}
}
else {
syncExtraFieldsEditor();
var validation = validateExtraFields();
if(validation === true) {
\$K2('#selectedTags option').attr('selected', 'selected');
localStorage.setItem('save', 'itemsaved');
submitform( pressbutton );
}
}
}
");
Last edit: 5 years 9 months ago by Martijn Hartong. Reason: // localStorage.removeItem('save') MOVED UP AFTER SUCCESS FOR BROWSER COMPATIBILITY
Please Log in or Create an account to join the conversation.
- JoomlaWorks
- Offline
- Admin
Less
More
- Posts: 6218
5 years 9 months ago #171307
by JoomlaWorks
Fotis / JoomlaWorks Support Team
---
Please search the forum before posting a new topic :)
Replied by JoomlaWorks on topic Frontend Save & Close solution
Can you please make a "pull request" here? github.com/getk2/k2/pulls
Fotis / JoomlaWorks Support Team
---
Please search the forum before posting a new topic :)
Please Log in or Create an account to join the conversation.