* Merge 18.9 xuanxuan directory.

This commit is contained in:
hufangzhou
2023-11-28 10:30:24 +08:00
parent 6514eadd0f
commit 83054f89d1
10 changed files with 135 additions and 87 deletions
@@ -22,18 +22,17 @@ $lang->admin->sizeType['K'] = 1024;
$lang->admin->sizeType['M'] = 1024 * 1024;
$lang->admin->sizeType['G'] = 1024 * 1024 * 1024;
global $config;
if($config->vision != 'lite')
{
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => 'Home|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => 'Parameter|setting|xuanxuan|');
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => 'Conference|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => 'Update|client|browse|', 'subModule' => 'client');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => 'Home|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => 'Parameter|setting|xuanxuan|');
global $config;
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => 'Conference|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => 'Update|client|browse|', 'subModule' => 'client');
@@ -22,18 +22,16 @@ $lang->admin->sizeType['K'] = 1024;
$lang->admin->sizeType['M'] = 1024 * 1024;
$lang->admin->sizeType['G'] = 1024 * 1024 * 1024;
global $config;
if($config->vision != 'lite')
{
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => 'Home|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => 'Parameter|setting|xuanxuan|');
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => 'Conference|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => 'Update|client|browse|', 'subModule' => 'client');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => 'Home|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => 'Parameter|setting|xuanxuan|');
global $config;
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => 'Conference|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => 'Update|client|browse|', 'subModule' => 'client');
@@ -22,18 +22,16 @@ $lang->admin->sizeType['K'] = 1024;
$lang->admin->sizeType['M'] = 1024 * 1024;
$lang->admin->sizeType['G'] = 1024 * 1024 * 1024;
global $config;
if($config->vision != 'lite')
{
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => 'Desktop|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => 'Home|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => 'Parameter|setting|xuanxuan|');
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => 'Conference|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => 'Update|client|browse|', 'subModule' => 'client');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => 'Home|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => 'Parameter|setting|xuanxuan|');
global $config;
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => 'Conference|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => 'Update|client|browse|', 'subModule' => 'client');
@@ -22,18 +22,16 @@ $lang->admin->sizeType['K'] = 1024;
$lang->admin->sizeType['M'] = 1024 * 1024;
$lang->admin->sizeType['G'] = 1024 * 1024 * 1024;
global $config;
if($config->vision != 'lite')
{
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => '聊天|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['subMenu']['xuanxuan'] = array('link' => '聊天|admin|xuanxuan|', 'subModule' => 'client,setting,conference');
$lang->admin->menuList->system['menuOrder']['20'] = 'xuanxuan';
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => '首页|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => '参数|setting|xuanxuan|');
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => '音视频|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => '更新|client|browse|', 'subModule' => 'client');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['index'] = array('link' => '首页|admin|xuanxuan|');
$lang->admin->menuList->system['tabMenu']['xuanxuan']['setting'] = array('link' => '参数|setting|xuanxuan|');
global $config;
if($config->edition != 'open')
{
$lang->admin->menuList->system['tabMenu']['xuanxuan']['conference'] = array('link' => '音视频|conference|admin|');
$lang->navGroup->conference = 'admin';
}
$lang->admin->menuList->system['tabMenu']['xuanxuan']['update'] = array('link' => '更新|client|browse|', 'subModule' => 'client');
@@ -2,7 +2,7 @@
/**
* The admin view file of conference module of XXB.
*
* @copyright Copyright 2009-2020 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd., www.zentao.net)
* @license ZOSL (https://zpl.pub/page/zoslv1.html)
* @author Wenrui LI <liwenrui@easycorp.ltd>
* @package conference
@@ -11,6 +11,7 @@
*/
?>
<?php include $app->getModuleRoot() . 'common/view/header.html.php';?>
<?php js::set('hasDetached', extCommonModel::ilMethod('conference', 'detachedConference'))?>
<div id='mainContent' class='main-row'>
<div class='side-col' id='sidebar'>
<div class='cell'>
@@ -58,6 +59,22 @@
</td>
<td></td>
</tr>
<tr class='edit-row common-row'>
<th class="w-120px"><?php echo $lang->conference->detachedConference;?></th>
<td class="w-400px">
<?php if($type != 'edit'): ?>
<div class="checkbox-primary disabled <?php if($detachedConference && extCommonModel::ilMethod('conference', 'detachedConference')) echo 'checked';?>">
<label id="detachedConferenceTip"><?php echo $lang->conference->detachedConferenceTip;?></label>
</div>
<?php else: ?>
<div class="checkbox-primary">
<input type='hidden' value='0' name='detachedConference'>
<input type="checkbox" name="detachedConference" id='detachedConference' value="true" <?php if($detachedConference && extCommonModel::ilMethod('conference', 'detachedConference')) echo 'checked';?> <?php if($type != 'edit' || !extCommonModel::ilMethod('conference', 'detachedConference') || $backendType == 'owt') echo 'disabled';?>>
<label id="detachedConferenceTip" for='detachedConference'><?php echo $lang->conference->detachedConferenceTip;?></label>
</div>
<?php endif; ?>
</td>
</tr>
<tr class='edit-row common-row'>
<th class="w-120px"><?php echo $lang->conference->serverAddr;?></th>
<td class="w-400px code">
@@ -82,7 +99,6 @@
</div>
<?php endif; ?>
</td>
<td></td>
</tr>
<tr class='edit-row common-row'>
<th class="w-120px"><?php echo $lang->conference->apiPort;?></th>
@@ -149,9 +165,9 @@
<a href="https://www.xuanim.com/page/download.html" target="_blank"><?php echo $lang->conference->download;?></a>
<hr>
<h4><?php echo $lang->conference->srsSetupTitle;?></h4>
<a href="https://www.xuanim.com/book/xuanxuanserver/273.html" target="_blank"><?php echo $lang->conference->setupDoc;?></a>
<a href="https://www.zentao.net/book/zentaopms/1158.html" target="_blank"><?php echo $lang->conference->setupDoc;?></a>
<br>
<a href="https://www.xuanim.com/book/xxbservice/274.html" target="_blank"><?php echo $lang->conference->configDoc;?></a>
<a href="https://www.zentao.net/book/zentaopms/1159.html" target="_blank"><?php echo $lang->conference->configDoc;?></a>
<hr>
<h4><?php echo $lang->conference->owtSetupTitle;?></h4>
<a href="https://www.xuanim.com/book/xuanxuanserver/237.html" target="_blank"><?php echo $lang->conference->setupDoc;?></a>
@@ -161,11 +177,6 @@
</form>
</div>
<div class="tab-pane fade <?php echo $type == 'video' ? 'active in' : '';?>" id="videoContent">
<div class='main-header'>
<div class='heading'>
<strong><?php echo $lang->conference->video?></strong>
</div>
</div>
<form method='post' id='ajaxForm' class='form-ajax' action=<?php echo $this->createLink("conference", 'admin', 'type=video');?>>
<table class='table table-form'>
<tr>
@@ -193,25 +204,36 @@
</div>
</div>
</div>
<div class="modal fade" id="detachedConferenceCheckModal">
<div class="modal-dialog modal-sm">
<div class="modal-header">
<strong>
<?php echo $lang->conference->detachedConference;?>
</strong>
</div>
<div class="modal-body">
<?php echo $lang->conference->detachedConferencewarning;?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo $lang->cancel;?></button>
<button type="button" class="btn btn-primary" id="detachedConferenceConfirmButton"><?php echo $lang->confirm;?></button>
</div>
</div>
</div>
<style>
.tab-content .tab-pane {padding: 0;}
.tab-content .tab-pane form {padding: 20px 0;}
.edit-row {display: none}
#conference-admin-form.conference-enabled .edit-row {display: table-row}
.srs-selected .owt-row {display: none!important}
.owt-selected .srs-row {display: none!important}
#videoContent, #serverContent{padding-top:0px;}
.tab-content .main-header {margin-bottom:20px;}
</style>
<script>
$(function()
{
let owtPort = '3004';
let srsPort = '1985';
$('.side-col .nav a[data-toggle=tab]').click(function()
{
$(this).parent().find('a').removeClass('active');
$(this).addClass('active');
});
$.setAjaxForm('#conference-admin-form');
var owtPort = '3004';
var srsPort = '1985';
$('#enabled').on('change', function()
{
$('#conference-admin-form').toggleClass('conference-enabled', $('#enabled').is(':checked'));
@@ -226,6 +248,7 @@ $(function()
document.getElementById('apiPortTip').innerHTML = '<?php echo $lang->conference->apiPortOwtTip;?>';
srsPort = document.getElementById('apiPort').value;
document.getElementById('apiPort').value = owtPort;
document.getElementById('detachedConference').toggleAttribute('disabled', true);
}
if(e.target.value == 'srs')
{
@@ -235,8 +258,34 @@ $(function()
document.getElementById('apiPortTip').innerHTML = '<?php echo $lang->conference->apiPortSrsTip;?>';
owtPort = document.getElementById('apiPort').value;
document.getElementById('apiPort').value = srsPort;
if(hasDetached)
{
document.getElementById('detachedConference').toggleAttribute('disabled', false);
}
}
});
$("#submit").click(function(event)
{
event.preventDefault();
var conferenceAdminFormData = new FormData(document.getElementById('conference-admin-form'));
var isDetachedConferenceEnable = conferenceAdminFormData.getAll('detachedConference').reduce((previousValue, currentValue) => previousValue || (currentValue === 'true'), false);
if(isDetachedConferenceEnable)
{
$('#detachedConferenceCheckModal').modal('show', 'fit')
}
else
{
$.setAjaxForm('#conference-admin-form');
document.getElementById("conference-admin-form").requestSubmit();
}
});
$('#detachedConferenceConfirmButton').on('click', function()
{
$('#detachedConferenceCheckModal').modal('hide');
$("#conference-admin-form").off( "submit");
$.setAjaxForm('#conference-admin-form');
document.getElementById("conference-admin-form").requestSubmit();
});
});
</script>
<?php include $app->getModuleRoot() . 'common/view/footer.html.php';?>
@@ -32,11 +32,13 @@ $lang->im->xxdServerTip = 'XXD server address contains protocol, host and port
$lang->im->xxdServerEmpty = 'XXD server address is empty.';
$lang->im->xxdServerError = 'XXD server address should not be 127.0.0.1.';
if(!isset($lang->im->xxd)) $lang->im->xxd = new stdclass();
$lang->im->xxd->aes = 'Server-side AES';
$lang->im->xxdAESTip = 'This only affects server-side AES encryption between XXB and XXD.';
$lang->im->aesOptions['on'] = 'Enabled';
$lang->im->aesOptions['off'] = 'Disabled';
if(!isset($lang->im->bot)) $lang->im->bot = new stdclass();
$lang->im->bot->zentaoBot = new stdclass();
$lang->im->bot->zentaoBot->name = 'ZenTao';
$lang->im->bot->zentaoBot->pageSearchRegex = '/(pageID|recPerPage)=(\d+)/';
@@ -122,3 +124,5 @@ The Task Edit command supports making status changes to tasks.
| complete task #ID | Complete the task and record its consumption/remaining hours |
| close task #ID | Close the task and record its consumption/remaining work hours |
EOT;
$lang->im->bot->upgradeWelcome->link = 'https://www.zentao.net/page/download-new.html';
@@ -32,11 +32,13 @@ $lang->im->xxdServerTip = 'XXD server address contains protocol, host and port
$lang->im->xxdServerEmpty = 'XXD server address is empty.';
$lang->im->xxdServerError = 'XXD server address should not be 127.0.0.1.';
if(!isset($lang->im->xxd)) $lang->im->xxd = new stdclass();
$lang->im->xxd->aes = 'Server-side AES';
$lang->im->xxdAESTip = 'This only affects server-side AES encryption between XXB and XXD.';
$lang->im->aesOptions['on'] = 'Enabled';
$lang->im->aesOptions['off'] = 'Disabled';
if(!isset($lang->im->bot)) $lang->im->bot = new stdclass();
$lang->im->bot->zentaoBot = new stdclass();
$lang->im->bot->zentaoBot->name = 'ZenTao';
$lang->im->bot->zentaoBot->pageSearchRegex = '/(pageID|recPerPage)=(\d+)/';
@@ -122,3 +124,5 @@ The Task Edit command supports making status changes to tasks.
| complete task #ID | Complete the task and record its consumption/remaining hours |
| close task #ID | Close the task and record its consumption/remaining work hours |
EOT;
$lang->im->bot->upgradeWelcome->link = 'https://www.zentao.net/page/download-new.html';
@@ -32,11 +32,13 @@ $lang->im->xxdServerTip = 'XXD server address contains protocol, host and port
$lang->im->xxdServerEmpty = 'XXD server address is empty.';
$lang->im->xxdServerError = 'XXD server address should not be 127.0.0.1.';
if(!isset($lang->im->xxd)) $lang->im->xxd = new stdclass();
$lang->im->xxd->aes = 'Server-side AES';
$lang->im->xxdAESTip = 'This only affects server-side AES encryption between XXB and XXD.';
$lang->im->aesOptions['on'] = 'Enabled';
$lang->im->aesOptions['off'] = 'Disabled';
if(!isset($lang->im->bot)) $lang->im->bot = new stdclass();
$lang->im->bot->zentaoBot = new stdclass();
$lang->im->bot->zentaoBot->name = 'ZenTao';
$lang->im->bot->zentaoBot->pageSearchRegex = '/(pageID|recPerPage)=(\d+)/';
@@ -122,3 +124,5 @@ The Task Edit command supports making status changes to tasks.
| complete task #ID | Complete the task and record its consumption/remaining hours |
| close task #ID | Close the task and record its consumption/remaining work hours |
EOT;
$lang->im->bot->upgradeWelcome->link = 'https://www.zentao.net/page/download-new.html';
@@ -32,11 +32,13 @@ $lang->im->xxdServerTip = '禅道服务器地址为完整的协议+地址+端
$lang->im->xxdServerEmpty = '禅道服务器地址为空。';
$lang->im->xxdServerError = '禅道服务器地址不能为 127.0.0.1。';
if(!isset($lang->im->xxd)) $lang->im->xxd = new stdclass();
$lang->im->xxd->aes = '服务端通信 AES';
$lang->im->xxdAESTip = '该设置仅针对 XXB 和 XXD 之间的通讯加密,不影响客户端通讯加密。';
$lang->im->aesOptions['on'] = '开启';
$lang->im->aesOptions['off'] = '关闭';
if(!isset($lang->im->bot)) $lang->im->bot = new stdclass();
$lang->im->bot->commonName = '阿道';
$lang->im->bot->welcome->title = '哈喽~我是你的助手阿道';
$lang->im->bot->upgradeWelcome->title = '哈喽~我是你的助手阿道';
@@ -131,3 +133,7 @@ $lang->im->bot->zentaoBot->help = <<<EOT
| 完成 任务 #ID | 完成任务并记录其消耗/剩余工时 |
| 关闭 任务 #ID | 关闭任务并记录其消耗/剩余工时 |
EOT;
$lang->im->bot->upgradeWelcome->link = 'https://www.zentao.net/page/download-new.html';
$lang->im->detachedConferenceUpgradeMessage->newClient->content = '管理员已将会议机制更新,支持 v7.2.beta 及以上版本,为了不影响您的使用体验,建议您重启应用我们将更新您的会议机制,详情请移步禅道官网查看。';
$lang->im->detachedConferenceUpgradeMessage->oldClient->content = '管理员已将会议机制更新,支持 v7.2.beta 及以上版本,为了不影响您的使用体验,建议您重启应用我们将更新您的会议机制,请移步禅道官网更新。';
@@ -1,4 +1,5 @@
<?php if(strpos($_SERVER['HTTP_USER_AGENT'], 'xuanxuan') != false): ?>
<?php $this->app->setClientTheme('blue'); ?>
<style>
#appsBar, #apps {left: 0!important;}
</style>
@@ -50,13 +51,13 @@ if(isset($this->config->xuanxuan->turnon) && $this->config->xuanxuan->turnon &&
<style>
#chatBtn {padding: 3px; position: relative;}
#chatBtn .icon {font-size: 24px;}
#chatNoticeBadge {position: absolute; top: -4px; right: -2px; line-height: 14px; height: 14px; min-width: 14px; text-align: center; display: inline-block; font-size: 12px; border-radius: 7px; opacity: 0; transform: scale(0); transition: .2s; transition-property: transform, opacity; padding: 0 2px;}
#chatNoticeBadge {position: absolute; bottom: 4px; right: 0; line-height: 14px; height: 14px; min-width: 14px; text-align: center; display: inline-block; font-size: 12px; border-radius: 7px; opacity: 0; transform: scale(0); transition: .2s; transition-property: transform, opacity; padding: 0 2px;}
#chatNoticeBadge.show {opacity: 1; transform: scale(1);}
#xx-embed-container {bottom: 40px!important; z-index: 1010!important;}
#xx-embed-container .xx-embed-has-animation {transition: min-width .5s ease-out, min-height .5s ease-out, transform, opacity!important;}
#xx-embed-container .xx-embed {width: 280px; height: 100%; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)!important;}
#xx-embed-container .xx-embed {width: 330px; height: 100%; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06)!important;}
#xx-embed-container .xx-embed.xx-embed-hidden,
#xx-embed-container .xx-embed.xx-embed-collapsed {width: 280px!important; height: 100%!important; opacity: .7; pointer-events: none; transform: translateY(100%); display: block!important;}
#xx-embed-container .xx-embed.xx-embed-collapsed {width: 330px!important; height: 100%!important; opacity: .7; pointer-events: none; transform: translateY(100%); display: block!important;}
#xx-embed-container .xx-embed.has-chat-view {min-width: 1000px!important;}
#xx-embed-container .xx-embed-body {min-height: initial!important;}
</style>
@@ -96,21 +97,8 @@ Xuanxuan.setGlobalOptions(
lang: lang
});
$(function() {
/* Create chat button */
var $chatBtn = $('<a href="javascript:void(0)" id="chatBtn" class="btn btn-link"><i class="text-primary icon icon-chat-solid"></i><span class="badge bg-red" id="chatNoticeBadge"></span></a>');
$chatBtn.insertBefore('#globalSearchDiv').on('click', toggleXuanClient);
});
/* Create client instance */
window.xuan = new Xuanxuan(xuanConfig);
/* Hide xuan popover on click page */
$(document).on('click', function(e)
{
if(!window.xuan.shown || $(e.target).closest('#xx-embed-container,#chatBtn').length) return;
window.xuan.hide();
});
</script>
<?php endif; ?>
<?php endif; ?>