|
@@ -119,6 +119,12 @@
|
|
|
.btn-warning.disabled, .btn-warning:disabled {
|
|
|
color: #ffffff;
|
|
|
}
|
|
|
+ .modal-body {
|
|
|
+ background-color: #ffffff;
|
|
|
+ }
|
|
|
+ .selected-row {
|
|
|
+ background-color: rgba(221, 251, 239, 0.56);
|
|
|
+ }
|
|
|
</style>
|
|
|
</style>
|
|
|
|
|
@@ -135,6 +141,8 @@
|
|
|
<button type="button" class="btn btn-info btn-sm" id="save-btn" disabled>Save</button>
|
|
|
<button type="button" class="btn btn-warning btn-sm" data-toggle="modal" id="variable-btn" data-target="#iframeModal" disabled>Variable</button>
|
|
|
<button type="button" class="btn btn-success btn-sm" id="publish-btn" disabled>Publish</button>
|
|
|
+
|
|
|
+ <button type="button" class="btn btn-info btn-sm float-right" id="history-btn" disabled>History</button>
|
|
|
</div>
|
|
|
<div class="main-panel-content" id="editor" style="width: 100%; height: 100%;"></div>
|
|
|
<input type="hidden" name="template_id" id="template_id" />
|
|
@@ -190,6 +198,44 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
+<!-- Bootstrap Modal -->
|
|
|
+<div class="modal fade" id="templateLogModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
|
|
+ <div class="modal-dialog modal-xl" role="document" >
|
|
|
+ <div class="modal-content">
|
|
|
+ <div class="modal-header">
|
|
|
+ <h5 class="modal-title" id="exampleModalLabel">Template Logs</h5>
|
|
|
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
+ <span aria-hidden="true">×</span>
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ <div class="modal-body" style="height: 600px;">
|
|
|
+ <div class="row" style="height: 100%;">
|
|
|
+ <!-- 左侧显示 Previous Content -->
|
|
|
+ <div class="col-md-8">
|
|
|
+ <h5>Content</h5>
|
|
|
+ <textarea id="contentDetails" style="height: 550px; overflow-y: auto; border: 1px solid #ededed; padding: 10px;width: 100%;"></textarea>
|
|
|
+ </div>
|
|
|
+ <!-- 右侧显示 Version 和 Created At 列表 -->
|
|
|
+ <div class="col-md-4">
|
|
|
+ <h5>Version</h5>
|
|
|
+ <table class="table table-condensed table-hover">
|
|
|
+ <tbody id="templateLogTableBody">
|
|
|
+ <!-- 动态生成的列表 -->
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="modal-footer">
|
|
|
+ <input type="hidden" id="templateLogId" name="templateLogId"/>
|
|
|
+ <input type="hidden" id="templateVersion" name="templateVersion"/>
|
|
|
+ <button type="button" class="btn btn-success" id="restoreTemplateLog">Restore Version</button>
|
|
|
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+
|
|
|
|
|
|
<script src="/vendor/ace/ace.js" type="text/javascript"></script>
|
|
|
<script>
|
|
@@ -213,6 +259,7 @@
|
|
|
$('#save-btn').prop('disabled', status);
|
|
|
$('#variable-btn').prop('disabled', status);
|
|
|
$('#publish-btn').prop('disabled', status);
|
|
|
+ $('#history-btn').prop('disabled', status);
|
|
|
}
|
|
|
|
|
|
var changeIframeUrl = function() {
|
|
@@ -446,7 +493,7 @@
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+ //代码树新增
|
|
|
$("#addFileButton").click(function () {
|
|
|
var filePathName = $('#file_path_name').val();
|
|
|
var fileInputName = $('#file_name_input').val();
|
|
@@ -462,7 +509,7 @@
|
|
|
$('#addFileModal').modal('hide');
|
|
|
ajaxAddDelFile(appearanceId,distId,0,filePathName,fileInputName,'add');
|
|
|
});
|
|
|
-
|
|
|
+ //代码树删除
|
|
|
function delFileButtonClick() {
|
|
|
$(".delFileButton").click(function () {
|
|
|
var filePathName = "";
|
|
@@ -480,7 +527,119 @@
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
+ //历史记录弹窗
|
|
|
+ $("#history-btn").click(function () {
|
|
|
+ loadingIndex = layer.load(1, {
|
|
|
+ shade: [0.5, '#000'] // 设置遮罩层
|
|
|
+ });
|
|
|
+ var appearanceId = $('select[name="appearance_id"]').val();
|
|
|
+ var distId = $('input[name="dist_id"]').val();
|
|
|
+ if (fileId == '') {
|
|
|
+ Dcat.error('操作失败:请先选择模板');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $.ajax({
|
|
|
+ url: '/prime-control/dist-template/ace',
|
|
|
+ method: 'POST',
|
|
|
+ data: {
|
|
|
+ act: 'fetch_template_logs',
|
|
|
+ file_id: fileId,
|
|
|
+ dist_id: distId,
|
|
|
+ appearance_id: appearanceId,
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ const tableBody = $('#templateLogTableBody');
|
|
|
+ tableBody.empty();
|
|
|
+
|
|
|
+ data.forEach(log => {
|
|
|
+ const row = `<tr log_id="${log.id}">
|
|
|
+ <td>版本:${log.version} <br /> ${log.created_at}</td>
|
|
|
+ </tr>`;
|
|
|
+ tableBody.append(row);
|
|
|
+ });
|
|
|
|
|
|
+ layer.close(loadingIndex);
|
|
|
+ // Show modal
|
|
|
+ $('#templateLogModal').modal('show');
|
|
|
+
|
|
|
+ },
|
|
|
+ error: function(error) {
|
|
|
+ layer.close(loadingIndex);
|
|
|
+ alert('Error fetching data!');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ //显示历史记录内容
|
|
|
+ $(document).on('click', '#templateLogTableBody tr', function() {
|
|
|
+ loadingIndex = layer.load(1, {
|
|
|
+ shade: [0.5, '#000'] // 设置遮罩层
|
|
|
+ });
|
|
|
+ // 移除其他行的选中样式
|
|
|
+ $('#templateLogTableBody tr').removeClass('selected-row');
|
|
|
+ // 当前点击行添加选中样式
|
|
|
+ $(this).addClass('selected-row');
|
|
|
+ //
|
|
|
+ var logId = $(this).attr('log_id');
|
|
|
+ var appearanceId = $('select[name="appearance_id"]').val();
|
|
|
+ var distId = $('input[name="dist_id"]').val();
|
|
|
+ $.ajax({
|
|
|
+ url: '/prime-control/dist-template/ace',
|
|
|
+ method: 'POST',
|
|
|
+ data: {
|
|
|
+ act: 'fetch_template_log_content',
|
|
|
+ log_id: logId,
|
|
|
+ dist_id: distId,
|
|
|
+ appearance_id: appearanceId,
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ layer.close(loadingIndex);
|
|
|
+ $('#contentDetails').html(data.previous_content);
|
|
|
+ $("#templateLogId").val(data.id);
|
|
|
+ },
|
|
|
+ error: function(error) {
|
|
|
+ layer.close(loadingIndex);
|
|
|
+ alert('Error fetching data!');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ $("#restoreTemplateLog").click(function () {
|
|
|
+ var logId = $("#templateLogId").val();
|
|
|
+ var templateVersion = $("#templateVersion").val();
|
|
|
+ //确认框
|
|
|
+ msg = '确定恢复'+templateVersion+'版本吗?';
|
|
|
+ Dcat.confirm('确定恢复',msg , function () {
|
|
|
+ loadingIndex = layer.load(1, {
|
|
|
+ shade: [0.5, '#000'] // 设置遮罩层
|
|
|
+ });
|
|
|
+ //ajax
|
|
|
+ $.ajax({
|
|
|
+ url: '/prime-control/dist-template/ace',
|
|
|
+ method: 'POST',
|
|
|
+ data: {
|
|
|
+ act:'restore_template_log',
|
|
|
+ log_id: logId,
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ layer.close(loadingIndex);
|
|
|
+ if (data.status == '1') {
|
|
|
+ Dcat.success('恢复成功');
|
|
|
+ //关闭弹窗
|
|
|
+ $('#templateLogModal').modal('hide');
|
|
|
+ //请空编辑器内容
|
|
|
+ editor.setValue('');
|
|
|
+ //刷新代码树
|
|
|
+ postData();
|
|
|
+ }else{
|
|
|
+ Dcat.error(data.msg);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function(error) {
|
|
|
+ layer.close(loadingIndex);
|
|
|
+ alert('Error fetching data!');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
});
|
|
|
</script>
|
|
|
|