codemirror: perl support

This commit is contained in:
Usman Nasir
2020-10-22 10:45:49 +05:00
parent 2275e69971
commit e4e633d920
4 changed files with 29 additions and 1 deletions

View File

@@ -11,7 +11,7 @@ from filemanager.models import Trash
class FileManager: class FileManager:
modes = {'php': 'application/x-httpd-php', 'javascript': 'javascript', 'python': 'text/x-python', modes = {'php': 'application/x-httpd-php', 'javascript': 'javascript', 'python': 'text/x-python',
'html': 'text/html', 'go': 'text/x-go', 'css': 'text/css', 'java': 'text/x-java'} 'html': 'text/html', 'go': 'text/x-go', 'css': 'text/css', 'java': 'text/x-java', 'perl': 'text/x-perl'}
def __init__(self, request, data): def __init__(self, request, data):
self.request = request self.request = request
@@ -31,8 +31,12 @@ class FileManager:
return FileManager.modes['go'] return FileManager.modes['go']
elif fileName.endswith('.css') or fileName.endswith('.scss'): elif fileName.endswith('.css') or fileName.endswith('.scss'):
return FileManager.modes['css'] return FileManager.modes['css']
elif fileName.endswith('.pl') or fileName.endswith('.PL'):
return FileManager.modes['perl']
elif fileName.endswith('.java'): elif fileName.endswith('.java'):
return FileManager.modes['java'] return FileManager.modes['java']
else:
return ""
@staticmethod @staticmethod
@@ -117,6 +121,11 @@ class FileManager:
return """ return """
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/clike/clike.min.js" integrity="sha512-HT3t3u7HfQ7USbSZa0Tk5caEnUfO8s58OWqMBwm96xaZAbA17rpnXXHDefR8ixVmSSVssbOv3W3OMh6mNX/XuQ==" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/clike/clike.min.js" integrity="sha512-HT3t3u7HfQ7USbSZa0Tk5caEnUfO8s58OWqMBwm96xaZAbA17rpnXXHDefR8ixVmSSVssbOv3W3OMh6mNX/XuQ==" crossorigin="anonymous"></script>
""" """
elif mode == FileManager.modes['perl']:
return """
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/perl/perl.min.js" integrity="sha512-6rKFA1mIjmFqxMM/b0dtjQOWFRAoqKCmhb7/6u2KohJcP4poKbrUI08Yf5GXsK+rkCr2dQnppV7gMe2a0HGQBQ==" crossorigin="anonymous"></script> """
else:
return ''
@staticmethod @staticmethod
def findThemeFile(theme): def findThemeFile(theme):

View File

@@ -480,6 +480,7 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader,
restoreBTN.style.display = "none"; restoreBTN.style.display = "none";
} }
// for edit button // for edit button
if (allFilesAndFolders.length === 1) { if (allFilesAndFolders.length === 1) {
var editNode = document.getElementById("editFile"); var editNode = document.getElementById("editFile");
editNode.style.pointerEvents = "auto"; editNode.style.pointerEvents = "auto";
@@ -813,6 +814,14 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader,
}; };
/// code mirror open
$scope.editWithCodeMirror = function(){
var completePathForFile = $scope.currentPath + "/" + allFilesAndFolders[0];
var finalURL = 'https://' + window.location.hostname + ':' + window.location.port + '/filemanager/editFile?domainName=' + domainName + '&fileName=' + completePathForFile;
window.open(finalURL);
};
// uploads // uploads

View File

@@ -732,6 +732,7 @@
<a style="border-bottom: 1px solid #007bff;" onclick="return false;" ng-click="showCompressionModal()" href="#"><li class="list-group-item"><i class="fa fa-compress" aria-hidden="true"></i> {% trans "Compress" %}</li></a> <a style="border-bottom: 1px solid #007bff;" onclick="return false;" ng-click="showCompressionModal()" href="#"><li class="list-group-item"><i class="fa fa-compress" aria-hidden="true"></i> {% trans "Compress" %}</li></a>
<a style="border-bottom: 1px solid #007bff;" id="extractOnRight" onclick="return false;" ng-click="showExtractionModal()" href="#"><li class="list-group-item"><i class="fa fa-expand" aria-hidden="true"></i> {% trans "Extract" %}</li></a> <a style="border-bottom: 1px solid #007bff;" id="extractOnRight" onclick="return false;" ng-click="showExtractionModal()" href="#"><li class="list-group-item"><i class="fa fa-expand" aria-hidden="true"></i> {% trans "Extract" %}</li></a>
<a style="border-bottom: 1px solid #007bff;" id="editOnRight" onclick="return false;" ng-click="showHTMLEditorModal()" href="#"><li class="list-group-item"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> {% trans "Edit" %}</li></a> <a style="border-bottom: 1px solid #007bff;" id="editOnRight" onclick="return false;" ng-click="showHTMLEditorModal()" href="#"><li class="list-group-item"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> {% trans "Edit" %}</li></a>
<a style="border-bottom: 1px solid #007bff;" id="editOnRightCodeMirror" onclick="return false;" ng-click="editWithCodeMirror()" href="#"><li class="list-group-item"><i class="fa fa-pencil-square-o" aria-hidden="true"></i> {% trans "Edit with CodeMirror" %}</li></a>
<a style="border-bottom: 1px solid #007bff;" id="restoreRight" onclick="return false;" ng-click="showRestoreModal()" href="#"><li class="list-group-item"><i class="fa fa-window-restore" aria-hidden="true"></i> {% trans "Restore" %}</li></a> <a style="border-bottom: 1px solid #007bff;" id="restoreRight" onclick="return false;" ng-click="showRestoreModal()" href="#"><li class="list-group-item"><i class="fa fa-window-restore" aria-hidden="true"></i> {% trans "Restore" %}</li></a>
</ul> </ul>
</div> </div>

View File

@@ -480,6 +480,7 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader,
restoreBTN.style.display = "none"; restoreBTN.style.display = "none";
} }
// for edit button // for edit button
if (allFilesAndFolders.length === 1) { if (allFilesAndFolders.length === 1) {
var editNode = document.getElementById("editFile"); var editNode = document.getElementById("editFile");
editNode.style.pointerEvents = "auto"; editNode.style.pointerEvents = "auto";
@@ -813,6 +814,14 @@ fileManager.controller('fileManagerCtrl', function ($scope, $http, FileUploader,
}; };
/// code mirror open
$scope.editWithCodeMirror = function(){
var completePathForFile = $scope.currentPath + "/" + allFilesAndFolders[0];
var finalURL = 'https://' + window.location.hostname + ':' + window.location.port + '/filemanager/editFile?domainName=' + domainName + '&fileName=' + completePathForFile;
window.open(finalURL);
};
// uploads // uploads