123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- {include file='common/head.html'}
-
- <div class="layui-body">
- <div class="layui-tab layui-tab-brief" lay-filter="tab">
- <ul class="layui-tab-title">
- <li class="layui-this" lay-id="t1">在线更新</li>
- <li lay-id="t2">更新设置</li>
- </ul>
- <div class="layui-tab-content">
- <div class="layui-tab-item layui-show">
- <table class="layui-table">
- <thead>
- <tr>
- <th width="30">选择</th>
- <th>更新文件</th>
- <th>更新方式</th>
- <th>本地时间</th>
- <th>更新时间</th>
- </tr>
- </thead>
- <tbody id="upfile">
- {foreach $upfile(key,value)}
- <tr>
- <td><input type="checkbox" checked class="checkbox checkitem" lay-ignore name="list" value="[value->path]"></td>
- <td>[value->path]</td>
- <td>[value->type]</td>
- <td>[value->ltime]</td>
- <td>[value->ctime]</td>
- </tr>
- {/foreach}
- {if([$upfile] && get('action')=='local')}
- <tr>
- <td><input type="checkbox" class="checkbox" checked lay-ignore id="checkall" title="全选"></td>
- <td colspan="4">已下载更新:[num]个文件</td>
- </tr>
- {/if}
- </tbody>
- </table>
-
- {if(get('action')=='local')}
- <button class="layui-btn" id="check" data-url='{url./admin/Upgrade/check}'>重新检查</button>
- {else}
- <button class="layui-btn" id="check" data-url='{url./admin/Upgrade/check}' id="check">检查更新</button>
- {/if}
- <button class="layui-btn" {if(![$upfile])}style="display:none"{/if} id="update" data-url='{url./admin/Upgrade/update}'>执行更新</button>
- <button class="layui-btn" style="display:none" id="down" data-url='{url./admin/Upgrade/down}'>下载更新</button>
- </div>
-
- <div class="layui-tab-item">
- <form action="{url./admin/Config/index}" method="post" class="layui-form">
- <input type="hidden" name="formcheck" value="{$formcheck}" >
-
- <div class="layui-form-item">
- <label class="layui-form-label">更新分支</label>
- <div class="layui-input-inline">
- <select name="upgrade_branch">
- <option value="3.X" {if([$branch]=='3.X')}selected{/if}>3.X 稳定版</option>
- <option value="3.X.dev" {if([$branch]=='3.X.dev')}selected{/if} >3.X 测试版</option>
- </select>
- </div>
- </div>
-
- <div class="layui-form-item">
- <label class="layui-form-label">强制文件同步</label>
- <div class="layui-input-block">
- <input type="hidden" name="upgrade_force" value="0"><!-- 默认0 -->
- <input type="checkbox" name="upgrade_force" value="1" {if([$force])}checked{/if} lay-skin="switch" lay-text="开启|关闭">
- </div>
- <div class="layui-form-mid layui-word-aux">适用有部分文件更新失败或检查文件与官方一致性。</div>
- </div>
-
- <div class="layui-form-item">
- <div class="layui-input-block">
- <button class="layui-btn" lay-submit name="submit" value="upgrade">保存</button>
- <button type="reset" class="layui-btn layui-btn-primary">重选</button>
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- </div>
-
- <script>
-
- //页面加载时检查更新
- $.ajax({
- type: 'GET',
- url: 'https://www.pbootcms.com/index.php?p=upgrade/check&version={APP_VERSION}.{RELEASE_TIME}.{$revise}&branch={$branch}&snuser={$snuser}&site={$site}',
- dataType: 'json',
- success: function (response, status) {
- if(response.code==1){
- $("#check").html($("#check").html()+'<span class="layui-badge-dot"></span>');
- }
- }
- });
-
- //检查更新
- $("#check").on("click",check);
-
- //下载更新
- $("#update").on("click",update);
-
- //下载更新
- $("#down").on("click",down);
-
-
- //检查更新
- function check(){
- var lyindex;
- layui.use('layer', function(){
- var layer = layui.layer;
- lyindex = layer.open({
- type: 1,
- title:'检查更新',
- closeBtn:0,
- content: '<div style="padding:20px 10px;"><img src="{APP_THEME_DIR}/layui/css/modules/layer/default/loading-0.gif">正在检查更新文件,请稍等...<div>'
- });
- });
-
- var url= $('#check').data('url');
- $.ajax({
- type: 'GET',
- url: url,
- dataType: 'json',
- success: function (response, status) {
- if(response.code==1){
- var data=response.data;
- if(!(data instanceof Array)){
- layer.close(lyindex);
- layer.msg(data, {icon: 1});
- }else{
- var html='';
- for(var i = 0; i < data.length; i++){
- html += '<tr><td><input type="checkbox" checked class="checkbox checkitem" lay-ignore name="list" value="'+data[i].path+'"></td><td>'+data[i].path+'</td><td>'+data[i].type+'</td><td>'+data[i].ltime+'</td><td>'+data[i].ctime+'</td></tr>';
- }
- html += '<tr><td><input type="checkbox" class="checkbox" checked lay-ignore id="checkall" title="全选"></td><td colspan="4">总共检测到 '+i+' 个文件</td></tr>';
- $("#upfile").html('');
- $("#upfile").append(html);
- layer.close(lyindex);
- layer.msg('共检测到 '+i+' 个文件需要更新!', {icon: 1});
- $('#update').hide();
- $('#down').show();
- }
- $('#check').text('重新检查');
- }else{
- layer.close(lyindex);
- layer.msg(response.data, {icon: 5});
- }
-
- },
- error:function(xhr,status,error){
- layer.close(lyindex);
- layer.msg("检查更新发生错误!", {icon: 5});
- }
- });
- }
-
- //下载更新
- function down(){
- var lyindex;
- var layer;
- layui.use('layer', function(){
- layer = layui.layer;
- lyindex = layer.open({
- type: 1,
- title:'下载更新',
- closeBtn:0,
- content: '<div style="padding:20px 10px;"><img src="{APP_THEME_DIR}/layui/css/modules/layer/default/loading-0.gif"><span id="layer-content">正在下载更新文件,请稍等...</span><div>'
- });
- });
-
- var url= $('#down').data('url');
- var checked = $(".checkitem:checked");
- var len = $(checked).length;
- var exe=0;
- $(checked).each(function(index,element){
- setTimeout(function () { //延迟执行、避免文件太多卡死问题
- $.ajax({
- type: 'GET',
- url: url,
- dataType: 'json',
- async:true,
- data: {
- list:$(element).val()
- },
- success: function (response, status) {
- if(response.code==1){
- exe++;
- $('#layer-content').text(response.data);
- }else{
- layer.close(lyindex);
- layer.msg(response.data, {icon: 5});
- }
-
- if(exe==len){
- layer.close(lyindex);
- layer.open({
- type: 0,
- title:'下载更新',
- closeBtn:0,
- btn: ['立即更新', '稍后更新'],
- content: '所选文件全部下载完成!',
- yes: function(index, layero){
- layer.close(index);
- $('#update').click();
-
- },
- btn2: function(index, layero){
- layer.close(index);
- window.location.href = '{url./admin/Upgrade/index/action/local}';
- }
- });
- $('#update').show();
- $('#down').hide();
- }
- },
- error:function(xhr,status,error){
- layer.close(lyindex);
- layer.msg("下载更新文件发生错误!", {icon: 5});
- }
- });
- }, index*1000);
- });
- }
-
- //执行更新
- function update(){
- var lyindex;
- var layer;
- layui.use('layer', function(){
- layer = layui.layer;
- lyindex = layer.open({
- type: 1,
- title:'执行更新',
- closeBtn:0,
- content: '<div style="padding:20px 10px;"><img src="{APP_THEME_DIR}/layui/css/modules/layer/default/loading-0.gif"><span id="layer-content">正在执行更新文件,请稍等...</span><div>'
- });
- });
-
- //由于涉及到数据库升级文件先后顺序,所以必须一次性提交
- var url= $('#update').data('url');
- var list='';
- $(".checkitem:checked").each(function(index,element){
- if(index==0){
- list += $(element).val();
- }else{
- list += ','+$(element).val();
- }
- });
-
- $.ajax({
- type: 'POST',
- url: url,
- dataType: 'json',
- data: {
- list:list
- },
- success: function (response, status) {
- if(response.code==1){
- layer.close(lyindex);
- layer.open({
- type: 0,
- title:'执行更新',
- closeBtn:0,
- content: '所选文件全部更新完成!',
- yes: function(index, layero){
- window.location.href = '{url./admin/Upgrade/index}';
- layer.close(index);
- }
- });
- }else{
- layer.close(lyindex);
- layer.msg(response.data, {icon: 5});
- }
- },
- error:function(xhr,status,error){
- layer.msg("执行更新文件发生错误!", {icon: 5});
- }
- });
- }
-
- //选择全部
- $("#upfile").on("click","#checkall", function () {
- if($(this).prop("checked")){
- $(".checkitem:enabled").prop("checked", true);
- }else{
- $(".checkitem").prop("checked", false);
- }
- });
-
- </script>
-
- {include file='common/foot.html'}
|