mirror of
https://github.com/misterunknown/ifm.git
synced 2025-08-10 10:04:01 +02:00
add editor options menu
This commit is contained in:
38
ifm.php
38
ifm.php
@@ -597,14 +597,38 @@ function IFM() {
|
||||
this.showFileForm = function () {
|
||||
var filename = arguments.length > 0 ? arguments[0] : "newfile.txt";
|
||||
var content = arguments.length > 1 ? arguments[1] : "";
|
||||
var overlay = '<form id="showFile">';
|
||||
overlay += '<div class="modal-body"><fieldset><label>Filename:</label><input onkeypress="return ifm.preventEnter(event);" type="text" class="form-control" name="filename" value="'+filename+'" /><br>';
|
||||
overlay += '<div id="content" name="content"></div><input type="checkbox" id="aceWordWrap"> word wrap</input></fieldset></div>';
|
||||
overlay += '<div class="modal-footer"><button type="button" class="btn btn-default" onclick="ifm.saveFile();ifm.hideModal();return false;">Save';
|
||||
overlay += '</button><button type="button" onclick="ifm.saveFile();return false;" class="btn btn-default">Save without closing</button>';
|
||||
overlay += '<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">Close</button></div></form>';
|
||||
var overlay = '<form id="showFile">' +
|
||||
'<div class="modal-body"><fieldset><label>Filename:</label><input onkeypress="return ifm.preventEnter(event);" type="text" class="form-control" name="filename" value="'+filename+'" /><br>' +
|
||||
'<div id="content" name="content"></div>' +
|
||||
'<button type="button" class="btn btn-default" id="editoroptions">editor options</button><div class="hide" id="editoroptions-head">options</div><div class="hide" id="editoroptions-content">' +
|
||||
'<input type="checkbox" id="editor-wordwrap"> word wrap</input><br>' +
|
||||
'<input type="checkbox" id="editor-softtabs"> use soft tabs</input>' +
|
||||
'<div class="input-group"><span class="input-group-addon">tabsize</span><input class="form-control" type="text" size="2" id="editor-tabsize"title="tabsize"></div>' +
|
||||
'</div></fieldset></div>' +
|
||||
'<div class="modal-footer"><button type="button" class="btn btn-default" onclick="ifm.saveFile();ifm.hideModal();return false;">Save' +
|
||||
'</button><button type="button" onclick="ifm.saveFile();return false;" class="btn btn-default">Save without closing</button>' +
|
||||
'<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">Close</button></div></form>';
|
||||
self.showModal( overlay, { large: true } );
|
||||
$('#ifmmodal').on('remove', function () { self.editor = null; self.fileChanged = false; });
|
||||
$('#editoroptions').popover({
|
||||
html: true,
|
||||
title: function() { return $('#editoroptions-head').html(); },
|
||||
content: function() {
|
||||
var content = $('#editoroptions-content').clone()
|
||||
var aceSession = self.editor.getSession();
|
||||
content.removeClass( 'hide' );
|
||||
content.find( '#editor-wordwrap' )
|
||||
.prop( 'checked', ( aceSession.getOption( 'wrap' ) == 'off' ? false : true ) )
|
||||
.on( 'change', function() { self.editor.setOption( 'wrap', $( this ).is( ':checked' ) ); });
|
||||
content.find( '#editor-softtabs' )
|
||||
.prop( 'checked', aceSession.getOption( 'useSoftTabs' ) )
|
||||
.on( 'change', function() { self.editor.setOption( 'useSoftTabs', $( this ).is( ':checked' ) ); });
|
||||
content.find( '#editor-tabsize' )
|
||||
.val( aceSession.getOption( 'tabSize' ) )
|
||||
.on( 'keydown', function( e ) { if( e.key == 'Enter' ) { self.editor.setOption( 'tabSize', $( this ).val() ); } });
|
||||
return content;
|
||||
}
|
||||
});
|
||||
$('#ifmmodal').on( 'remove', function () { self.editor = null; self.fileChanged = false; });
|
||||
// Start ACE
|
||||
self.editor = ace.edit("content");
|
||||
self.editor.$blockScrolling = 'Infinity';
|
||||
|
38
src/ifm.js
38
src/ifm.js
@@ -162,14 +162,38 @@ function IFM() {
|
||||
this.showFileForm = function () {
|
||||
var filename = arguments.length > 0 ? arguments[0] : "newfile.txt";
|
||||
var content = arguments.length > 1 ? arguments[1] : "";
|
||||
var overlay = '<form id="showFile">';
|
||||
overlay += '<div class="modal-body"><fieldset><label>Filename:</label><input onkeypress="return ifm.preventEnter(event);" type="text" class="form-control" name="filename" value="'+filename+'" /><br>';
|
||||
overlay += '<div id="content" name="content"></div><input type="checkbox" id="aceWordWrap"> word wrap</input></fieldset></div>';
|
||||
overlay += '<div class="modal-footer"><button type="button" class="btn btn-default" onclick="ifm.saveFile();ifm.hideModal();return false;">Save';
|
||||
overlay += '</button><button type="button" onclick="ifm.saveFile();return false;" class="btn btn-default">Save without closing</button>';
|
||||
overlay += '<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">Close</button></div></form>';
|
||||
var overlay = '<form id="showFile">' +
|
||||
'<div class="modal-body"><fieldset><label>Filename:</label><input onkeypress="return ifm.preventEnter(event);" type="text" class="form-control" name="filename" value="'+filename+'" /><br>' +
|
||||
'<div id="content" name="content"></div>' +
|
||||
'<button type="button" class="btn btn-default" id="editoroptions">editor options</button><div class="hide" id="editoroptions-head">options</div><div class="hide" id="editoroptions-content">' +
|
||||
'<input type="checkbox" id="editor-wordwrap"> word wrap</input><br>' +
|
||||
'<input type="checkbox" id="editor-softtabs"> use soft tabs</input>' +
|
||||
'<div class="input-group"><span class="input-group-addon">tabsize</span><input class="form-control" type="text" size="2" id="editor-tabsize"title="tabsize"></div>' +
|
||||
'</div></fieldset></div>' +
|
||||
'<div class="modal-footer"><button type="button" class="btn btn-default" onclick="ifm.saveFile();ifm.hideModal();return false;">Save' +
|
||||
'</button><button type="button" onclick="ifm.saveFile();return false;" class="btn btn-default">Save without closing</button>' +
|
||||
'<button type="button" class="btn btn-default" onclick="ifm.hideModal();return false;">Close</button></div></form>';
|
||||
self.showModal( overlay, { large: true } );
|
||||
$('#ifmmodal').on('remove', function () { self.editor = null; self.fileChanged = false; });
|
||||
$('#editoroptions').popover({
|
||||
html: true,
|
||||
title: function() { return $('#editoroptions-head').html(); },
|
||||
content: function() {
|
||||
var content = $('#editoroptions-content').clone()
|
||||
var aceSession = self.editor.getSession();
|
||||
content.removeClass( 'hide' );
|
||||
content.find( '#editor-wordwrap' )
|
||||
.prop( 'checked', ( aceSession.getOption( 'wrap' ) == 'off' ? false : true ) )
|
||||
.on( 'change', function() { self.editor.setOption( 'wrap', $( this ).is( ':checked' ) ); });
|
||||
content.find( '#editor-softtabs' )
|
||||
.prop( 'checked', aceSession.getOption( 'useSoftTabs' ) )
|
||||
.on( 'change', function() { self.editor.setOption( 'useSoftTabs', $( this ).is( ':checked' ) ); });
|
||||
content.find( '#editor-tabsize' )
|
||||
.val( aceSession.getOption( 'tabSize' ) )
|
||||
.on( 'keydown', function( e ) { if( e.key == 'Enter' ) { self.editor.setOption( 'tabSize', $( this ).val() ); } });
|
||||
return content;
|
||||
}
|
||||
});
|
||||
$('#ifmmodal').on( 'remove', function () { self.editor = null; self.fileChanged = false; });
|
||||
// Start ACE
|
||||
self.editor = ace.edit("content");
|
||||
self.editor.$blockScrolling = 'Infinity';
|
||||
|
Reference in New Issue
Block a user