Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
+10
-16
@@ -41,13 +41,12 @@ class control extends baseControl
|
||||
$mainViewFile = $modulePath . 'view' . DS . $this->devicePrefix . $methodName . '.' . $viewType . '.php';
|
||||
|
||||
/* If the main view file doesn't exist, set the device prefix to empty and reset the main view file. */
|
||||
if($this->viewType == 'mhtml' or $this->viewType == 'xhtml')
|
||||
if(!file_exists($mainViewFile))
|
||||
{
|
||||
if(!file_exists($mainViewFile))
|
||||
{
|
||||
$this->devicePrefix = '';
|
||||
$mainViewFile = $modulePath . 'view' . DS . $this->devicePrefix . $methodName . '.' . $viewType . '.php';
|
||||
}
|
||||
$originalPrefix = $this->devicePrefix;
|
||||
$this->devicePrefix = '';
|
||||
$mainViewFile = $modulePath . 'view' . DS . $this->devicePrefix . $methodName . '.' . $viewType . '.php';
|
||||
$this->devicePrefix = $originalPrefix;
|
||||
}
|
||||
|
||||
$viewFile = $mainViewFile;
|
||||
@@ -98,16 +97,11 @@ class control extends baseControl
|
||||
/* If the js or css file doesn't exist, set the device prefix to empty and reset the js or css file. */
|
||||
if($this->viewType == 'xhtml')
|
||||
{
|
||||
if(!$css)
|
||||
{
|
||||
$this->devicePrefix = '';
|
||||
$css = $this->getCSS($moduleName, $methodName);
|
||||
}
|
||||
if(!$js)
|
||||
{
|
||||
$this->devicePrefix = '';
|
||||
$js = $this->getJS($moduleName, $methodName);
|
||||
}
|
||||
$originalPrefix = $this->devicePrefix;
|
||||
$this->devicePrefix = '';
|
||||
$css .= $this->getCSS($moduleName, $methodName);
|
||||
$js .= $this->getJS($moduleName, $methodName);
|
||||
$this->devicePrefix = $originalPrefix;
|
||||
}
|
||||
if($css) $this->view->pageCSS = $css;
|
||||
if($js) $this->view->pageJS = $js;
|
||||
|
||||
@@ -184,4 +184,19 @@ class router extends baseRouter
|
||||
|
||||
if($this->get->display == 'card') $this->viewType = 'xhtml';
|
||||
}
|
||||
|
||||
/**
|
||||
* 合并请求的参数和默认参数,这样就可以省略已经有默认值的参数了。
|
||||
* Merge the params passed in and the default params. Thus the params which have default values needn't pass value, just like a function.
|
||||
*
|
||||
* @param array $defaultParams the default params defined by the method.
|
||||
* @param array $passedParams the params passed in through url.
|
||||
* @access public
|
||||
* @return array the merged params.
|
||||
*/
|
||||
public function mergeParams($defaultParams, $passedParams)
|
||||
{
|
||||
unset($passedParams['display']);
|
||||
return parent::mergeParams($defaultParams, $passedParams);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,3 +44,4 @@
|
||||
.title-group .chosen-container {width: 1%!important; min-width: 70px;}
|
||||
.title-group #severity + .chosen-container > .chosen-single {border-radius: 0!important;}
|
||||
.title-group #pri + .chosen-container > .chosen-single {border-top-left-radius: 0!important; border-bottom-left-radius: 0!important;}
|
||||
.title-group .has-icon-right{min-width:700px}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header, #header+#main{min-width: auto}
|
||||
.main-header{display: none}
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header, #header+#main{min-width: auto}
|
||||
.main-header{display: none}
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
.main-header{display: none}
|
||||
#header, #header+#main{min-width: auto}
|
||||
@@ -0,0 +1,7 @@
|
||||
body{padding:0px; margin: 0px}
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header+#main{min-width:700px}
|
||||
.main-header{display: none}
|
||||
.main-row .col-8{display: none}
|
||||
.form-actions{margin-top: 0px}
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header, #header+#main{min-width: auto}
|
||||
.main-header{display: none}
|
||||
@@ -0,0 +1,13 @@
|
||||
body{padding:0px; margin: 0px}
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
.main-actions{display: none}
|
||||
#header+#main{min-width: auto}
|
||||
#mainMenu .pull-left>a{display: none}
|
||||
#mainMenu .pull-left .divider{display: none}
|
||||
#mainMenu .pull-right{display: none}
|
||||
#mainContent .col-4{display: none}
|
||||
.col-8>.cell{min-height: 300px}
|
||||
|
||||
/*备注宽度*/
|
||||
.modal-dialog{width: 90%}
|
||||
@@ -0,0 +1,11 @@
|
||||
$(function()
|
||||
{
|
||||
$('.title-group .has-icon-right').css('min-width', '100px');
|
||||
$('#buildBoxActions').remove();
|
||||
$('#openedBuild').parent().find('input-group-btn').remove();
|
||||
$('#openedBuild_chosen.chosen-container .chosen-drop').css('min-width', '100px');
|
||||
$('#tplBoxWrapper .btn-toolbar .btn-group').remove();
|
||||
$('table tbody tr').eq(3).remove();
|
||||
$('table tbody tr th').removeClass('w-110px');
|
||||
$('table tbody tr th').addClass('w-70px');
|
||||
})
|
||||
@@ -0,0 +1,5 @@
|
||||
$(function()
|
||||
{
|
||||
var $btn = $('.col-8').find('.form-actions').clone();
|
||||
$('.col-4').find('.detail:last-child').html($btn);
|
||||
})
|
||||
@@ -0,0 +1,12 @@
|
||||
$(function()
|
||||
{
|
||||
var $xuanAction = "<div class='xuancard-actions fixed'>";
|
||||
|
||||
if(confirmed != 1) $xuanAction += "<a href='" + confirmLink + "'" + " target='_blank'" + " class='btn btn-link'" + '>' + "<i class='icon-bug-confirmBug icon-search'></i>" + " <span class='text'>" + confirmBug + "</span>" + "</a>";
|
||||
$xuanAction += "<a href='" + assignLink + "'" + " target='_blank'" + " class='btn btn-link'" + '>' + "<i class='icon-hand-right'></i>" + " <span class='text'>" + assignTo + "</span>" + "</a>";
|
||||
if(status == 'active') $xuanAction += '<a href="' + resolveLink + '"' + " target='_blank'" + ' class="btn btn-link">' + '<i class="icon-bug-resolve icon-checked"></i>' + ' <span class="text">' + resolve + "</span>" + "</a>";
|
||||
$xuanAction += "<a href='" + editLink + "'" + " target='_blank' title=" + edit + " class='btn btn-link'" + '>' + "<i class='icon-edit'></i>" + "</a>";
|
||||
|
||||
$xuanAction += '</div>';
|
||||
$('#footer').replaceWith($xuanAction);
|
||||
})
|
||||
@@ -21,7 +21,6 @@ js::set('createBuild', $lang->build->create);
|
||||
js::set('refresh', $lang->refresh);
|
||||
js::set('confirmDeleteTemplate', $lang->bug->confirmDeleteTemplate);
|
||||
?>
|
||||
<style>.title-group .has-icon-right{min-width:700px}</style>
|
||||
<div id="mainContent" class="main-content fade">
|
||||
<div class="center-block">
|
||||
<div class="main-header">
|
||||
|
||||
@@ -12,7 +12,13 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php $browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product");?>
|
||||
<?php
|
||||
$browseLink = $app->session->bugList != false ? $app->session->bugList : inlink('browse', "productID=$bug->product");
|
||||
$confirmLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('bug', 'confirmBug', "bugID=$bug->id"));
|
||||
$assignLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('bug', 'assignTo', "bugID=$bug->id"));
|
||||
$resolveLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('bug', 'resolve', "bugID=$bug->id"));
|
||||
$editLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('bug', 'edit', "bugID=$bug->id"));
|
||||
?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php if(!isonlybody()):?>
|
||||
@@ -367,5 +373,17 @@
|
||||
<div id="mainActions" class='main-actions'>
|
||||
<?php common::printPreAndNext($preAndNext);?>
|
||||
</div>
|
||||
<?php
|
||||
js::set('confirmLink', $confirmLink);
|
||||
js::set('resolveLink', $resolveLink);
|
||||
js::set('editLink', $editLink);
|
||||
js::set('assignLink', $assignLink);
|
||||
js::set('confirmed', $bug->confirmed);
|
||||
js::set('status', $bug->status);
|
||||
js::set('confirmBug', $lang->bug->confirmBug);
|
||||
js::set('assignTo', $lang->bug->assignTo);
|
||||
js::set('resolve', $lang->bug->resolve);
|
||||
js::set('edit', $lang->bug->edit);
|
||||
?>
|
||||
<?php include '../../common/view/syntaxhighlighter.html.php';?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1,211 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The create view of bug module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package bug
|
||||
* @version $Id: create.html.php 4903 2013-06-26 05:32:59Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
include '../../common/view/header.lite.html.php';
|
||||
include '../../common/view/kindeditor.html.php';
|
||||
include '../../common/view/datepicker.html.php';
|
||||
?>
|
||||
<style>
|
||||
body{padding-bottom:0px}
|
||||
#openedBuild_chosen.chosen-container .chosen-drop {min-width: 100px;}
|
||||
#module_chosen.chosen-container .chosen-drop{min-width: 100px;}
|
||||
</style>
|
||||
<div id="mainContent" class="main-content fade" style='padding-bottom:0px'>
|
||||
<form class="load-indicator main-form form-ajax" method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class="table table-form">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class='w-70px'><?php echo $lang->bug->product;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('product', $products, $productID, "onchange='loadAll(this.value);' class='form-control chosen control-product' autocomplete='off'");?>
|
||||
<?php if($this->session->currentProductType != 'normal'):?>
|
||||
<?php echo html::select('branch', $branches, $branch, "onchange='loadBranch()' class='form-control chosen control-branch'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='input-group' id='moduleIdBox'>
|
||||
<span class="input-group-addon"><?php echo $lang->bug->module?></span>
|
||||
<?php echo html::select('module', $moduleOptionMenu, $moduleID, "onchange='loadModuleRelated()' class='form-control chosen'"); ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->project;?></th>
|
||||
<td><span id='projectIdBox'><?php echo html::select('project', $projects, $projectID, "class='form-control chosen' onchange='loadProjectRelated(this.value)' autocomplete='off'");?></span></td>
|
||||
<td>
|
||||
<div class='input-group' id='buildBox'>
|
||||
<span class="input-group-addon"><?php echo $lang->bug->openedBuild?></span>
|
||||
<?php echo html::select('openedBuild[]', $builds, $buildID, "size=4 multiple=multiple class='chosen form-control'");?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><nobr><?php echo $lang->bug->lblAssignedTo;?></nobr></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('assignedTo', $projectMembers, $assignedTo, "class='form-control chosen'");?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->bug->deadline?></span>
|
||||
<span><?php echo html::input('deadline', $deadline, "class='form-control form-date'");?></span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->type;?></th>
|
||||
<td>
|
||||
<?php
|
||||
/* Remove the unused types. */
|
||||
unset($lang->bug->typeList['designchange']);
|
||||
unset($lang->bug->typeList['newfeature']);
|
||||
unset($lang->bug->typeList['trackthings']);
|
||||
echo html::select('type', $lang->bug->typeList, $type, "class='form-control chosen'");
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->bug->os?></span>
|
||||
<?php echo html::select('os', $lang->bug->osList, $os, "class='form-control chosen'");?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->browser;?></th>
|
||||
<td> <?php echo html::select('browser', $lang->bug->browserList, $browser, "class='form-control chosen'");?> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->title;?></th>
|
||||
<td colspan='2'>
|
||||
<div class="input-group title-group">
|
||||
<div class="input-control has-icon-right">
|
||||
<?php echo html::input('title', $bugTitle, "class='form-control' autocomplete='off' required");?>
|
||||
<div class="colorpicker">
|
||||
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
|
||||
<ul class="dropdown-menu clearfix">
|
||||
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
|
||||
</ul>
|
||||
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#title" data-provide="colorpicker">
|
||||
</div>
|
||||
</div>
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->bug->severity;?></span>
|
||||
<?php
|
||||
$hasCustomSeverity = false;
|
||||
foreach($lang->bug->severityList as $severityKey => $severityValue)
|
||||
{
|
||||
if(!empty($severityKey) and (string)$severityKey != (string)$severityValue)
|
||||
{
|
||||
$hasCustomSeverity = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php if($hasCustomSeverity):?>
|
||||
<?php echo html::select('severity', (array)$lang->bug->severityList, $severity, "class='form-control'");?>
|
||||
<?php else: ?>
|
||||
<div class="input-group-btn pri-selector" data-type="severity">
|
||||
<button type="button" class="btn dropdown-toggle br-0" data-toggle="dropdown">
|
||||
<span class="pri-text"><span class="label-severity" data-severity="<?php echo $severity;?>" title="<?php echo $severity;?>"></span></span> <span class="caret"></span>
|
||||
</button>
|
||||
<div class='dropdown-menu pull-right'>
|
||||
<?php echo html::select('severity', (array)$lang->bug->severityList, $severity, "class='form-control' data-provide='labelSelector' data-label-class='label-severity'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; // end print severity selector ?>
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->bug->pri;?></span>
|
||||
<?php
|
||||
$hasCustomPri = false;
|
||||
foreach($lang->bug->priList as $priKey => $priValue)
|
||||
{
|
||||
if(!empty($priKey) and (string)$priKey != (string)$priValue)
|
||||
{
|
||||
$hasCustomPri = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$priList = $lang->bug->priList;
|
||||
if(end($priList))
|
||||
{
|
||||
unset($priList[0]);
|
||||
$priList[0] = '';
|
||||
}
|
||||
?>
|
||||
<?php if($hasCustomPri):?>
|
||||
<?php echo html::select('pri', (array)$priList, $pri, "class='form-control'");?>
|
||||
<?php else: ?>
|
||||
<div class="input-group-btn pri-selector" data-type="pri">
|
||||
<button type="button" class="btn dropdown-toggle br-0" data-toggle="dropdown">
|
||||
<span class="pri-text"><span class="label-pri label-pri-<?php echo empty($pri) ? '0' : $pri?>" title="<?php echo $pri?>"><?php echo $pri?></span></span> <span class="caret"></span>
|
||||
</button>
|
||||
<div class='dropdown-menu pull-right'>
|
||||
<?php echo html::select('pri', (array)$priList, $pri, "class='form-control' data-provide='labelSelector' data-label-class='label-pri'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->steps;?></th>
|
||||
<td colspan='2'> <?php echo html::textarea('steps', $steps, "rows='10' class='form-control'");?> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->story;?></th>
|
||||
<td>
|
||||
<span id='storyIdBox'><?php echo html::select('story', empty($stories) ? '' : $stories, $storyID, "class='form-control chosen'");?></span>
|
||||
</td>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->bug->task?></span>
|
||||
<?php echo html::select('task', '', $taskID, "class='form-control chosen'") . html::hidden('oldTaskID', $taskID);?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->lblMailto;?></th>
|
||||
<td>
|
||||
<div class='input-group' id='contactListGroup'>
|
||||
<?php
|
||||
echo html::select('mailto[]', $users, str_replace(' ', '', $mailto), "class='form-control chosen' multiple");
|
||||
echo $this->fetch('my', 'buildContactLists');
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon' id='keywordsAddonLabel'><?php echo $lang->bug->keywords;?></span>
|
||||
<?php echo html::input('keywords', $keywords, "class='form-control'");?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->bug->files;?></th>
|
||||
<td colspan='2'><?php echo $this->fetch('file', 'buildform', 'fileCount=1&percent=0.85');?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3" class="text-center form-actions">
|
||||
<?php echo html::submitButton();?>
|
||||
<?php echo html::hidden('case', (int)$caseID) . html::hidden('caseVersion', (int)$version);?>
|
||||
<?php echo html::hidden('result', (int)$runID) . html::hidden('testtask', (int)$testtask);?>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
@@ -348,6 +348,7 @@ class doc extends control
|
||||
$this->view->position[] = $this->lang->doc->create;
|
||||
|
||||
$this->view->libID = $libID;
|
||||
$this->view->libs = $this->doc->getLibs($type = 'all', $extra = 'withObject');
|
||||
$this->view->libName = $this->dao->findByID($libID)->from(TABLE_DOCLIB)->fetch('name');
|
||||
$this->view->moduleOptionMenu = $this->tree->getOptionMenu($libID, 'doc', $startModuleID = 0);
|
||||
$this->view->moduleID = $moduleID;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
body{padding:0px;}
|
||||
#header{display:none;}
|
||||
#header+#main{min-width:auto;}
|
||||
#main{padding:0px;}
|
||||
#main .container{padding:0px;}
|
||||
.main-header{display:none;}
|
||||
#footer{display:none;}
|
||||
@@ -0,0 +1,13 @@
|
||||
#header{display:none;}
|
||||
#header+#main{min-width:auto;}
|
||||
#main{padding:0px;}
|
||||
#main .container{padding:0px;}
|
||||
.side-col.col-4{display:none;}
|
||||
#mainMenu{margin-top:0px;}
|
||||
#mainMenu .btn{display:none;}
|
||||
#mainMenu .divider{display:none;}
|
||||
.main-actions #back{display:none;}
|
||||
.main-actions .divider{display:none;}
|
||||
.main-actions .fullscreen-btn{display:none;}
|
||||
.main-actions a[href*=delete]{display:none;}
|
||||
#footer{display:none;}
|
||||
@@ -25,12 +25,11 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->lib;?></th>
|
||||
<td><?php echo $libName?></td><td></td>
|
||||
<td> <?php echo html::select('lib', $libs, $libID, "class='form-control chosen' onchange=loadDocModule(this.value)");?> </td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->module;?></th>
|
||||
<td>
|
||||
<?php echo html::hidden('lib', $libID);?>
|
||||
<span id='moduleBox'><?php echo html::select('module', $moduleOptionMenu, $moduleID, "class='form-control chosen'");?></span>
|
||||
</td><td></td>
|
||||
</tr>
|
||||
@@ -81,7 +80,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='3' class='text-center form-actions'>
|
||||
<?php echo html::submitButton() . ' ' . html::backButton() . html::hidden('lib', $libID);?>
|
||||
<?php echo html::submitButton() . ' ' . html::backButton();?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -134,7 +134,17 @@ js::set('retrack', $lang->doc->retrack);
|
||||
<?php
|
||||
if(!$doc->deleted)
|
||||
{
|
||||
common::printIcon('doc', 'edit', "docID=$doc->id", $doc);
|
||||
if($this->app->getViewType() == 'xhtml' and common::hasPriv('doc', 'edit'))
|
||||
{
|
||||
$url = common::getSysURL() . $this->createLink('doc', 'edit', "docID=$doc->id");
|
||||
$url .= strpos($url, '?') === false ? '?' : '&';
|
||||
$url .= 'width=1000px&height=800px';
|
||||
echo html::a('xxc:openUrlInDialog/' . urlencode($url), "<i class='icon-edit'></i>", '_blank', "class='btn btn-link'");
|
||||
}
|
||||
else
|
||||
{
|
||||
common::printIcon('doc', 'edit', "docID=$doc->id", $doc);
|
||||
}
|
||||
common::printIcon('doc', 'delete', "docID=$doc->id", $doc, 'button', '', 'hiddenwin');
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The create view of doc module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Jia Fu <fujia@cnezsoft.com>
|
||||
* @package doc
|
||||
* @version $Id: create.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/ueditor.html.php';?>
|
||||
<?php include '../../common/view/markdown.html.php';?>
|
||||
<style>body{padding:0px;}</style>
|
||||
<?php js::set('holders', $lang->doc->placeholder);?>
|
||||
<?php js::set('type', 'doc');?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class='center-block'>
|
||||
<form class="load-indicator main-form form-ajax" id="dataform" method='post' enctype='multipart/form-data'>
|
||||
<table class='table table-form'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->lib;?></th>
|
||||
<?php $libs = $this->doc->getLibs($type = 'all', $extra = 'withObject');?>
|
||||
<td> <?php echo html::select('lib', $libs, $libID, "class='form-control chosen' onchange=loadDocModule(this.value)");?> </td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->module;?></th>
|
||||
<td>
|
||||
<span id='moduleBox'><?php echo html::select('module', $moduleOptionMenu, $moduleID, "class='form-control chosen'");?></span>
|
||||
</td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->title;?></th>
|
||||
<td colspan='2'><?php echo html::input('title', '', "class='form-control' autocomplete='off' required");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->keywords;?></th>
|
||||
<td colspan='2'><?php echo html::input('keywords', '', "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->type;?></th>
|
||||
<td><?php echo html::radio('type', $lang->doc->types, 'text');?></td>
|
||||
</tr>
|
||||
<tr id='contentBox'>
|
||||
<th><?php echo $lang->doc->content;?></th>
|
||||
<td colspan='2'>
|
||||
<div class='contenthtml'><?php echo html::textarea('content', '', "style='width:100%;height:200px'");?></div>
|
||||
<div class='contentmarkdown hidden'><?php echo html::textarea('contentMarkdown', '', "style='width:100%;height:200px'");?></div>
|
||||
<?php echo html::hidden('contentType', 'html');?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id='urlBox' class='hidden'>
|
||||
<th><?php echo $lang->doc->url;?></th>
|
||||
<td colspan='2'><?php echo html::input('url', '', "class='form-control' autocomplete='off'");?></td>
|
||||
</tr>
|
||||
<tr id='fileBox'>
|
||||
<th><?php echo $lang->doc->files;?></th>
|
||||
<td colspan='2'><?php echo $this->fetch('file', 'buildform');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doclib->control;?></th>
|
||||
<td><?php echo html::radio('acl', $lang->doc->aclList, 'open', "onchange='toggleAcl(this.value)'")?></td>
|
||||
</tr>
|
||||
<tr id='whiteListBox' class='hidden'>
|
||||
<th><?php echo $lang->doc->whiteList;?></th>
|
||||
<td colspan='2'>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon groups-addon'><?php echo $lang->doclib->group?></span>
|
||||
<?php echo html::select('groups[]', $groups, '', "class='form-control chosen' multiple")?>
|
||||
</div>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->doclib->user?></span>
|
||||
<?php echo html::select('users[]', $users, '', "class='form-control chosen' multiple")?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='3' class='text-center form-actions'>
|
||||
<?php echo html::submitButton();?>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.injectWithXXC = function(message)
|
||||
{
|
||||
$('#title').val(message.content);
|
||||
if(message.type == 'url')
|
||||
{
|
||||
$('#typeurl').attr('checked', 'checked');
|
||||
$('input[name="type"]').change();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
@@ -1,83 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The view of doc module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Jia Fu <fujia@cnezsoft.com>
|
||||
* @package doc
|
||||
* @version $Id: view.html.php 975 2010-07-29 03:30:25Z jajacn@126.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php echo css::internal($keTableCSS);?>
|
||||
<?php $browseLink = $this->session->docList ? $this->session->docList : inlink('browse');?>
|
||||
<style>body{padding:0px;}</style>
|
||||
<div class='xuanxuan-card'>
|
||||
<div class='panel'>
|
||||
<div class='panel-heading strong'>
|
||||
<span class="label label-id"><?php echo $doc->id;?></span> <span class="text" title='<?php echo $doc->title;?>'><?php echo $doc->title;?></span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class="table table-data">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->doc->content;?></th>
|
||||
<td>
|
||||
<div class="detail-content article-content no-margin no-padding">
|
||||
<?php echo $doc->content;?>
|
||||
|
||||
<?php foreach($doc->files as $file):?>
|
||||
<?php if(in_array($file->extension, $config->file->imageExtensions)):?>
|
||||
<div class='file-image'>
|
||||
<img onload="setImageSize(this, 0)" src="<?php echo $this->createLink('file', 'read', "fileID={$file->id}");?>" alt="<?php echo $file->title?>">
|
||||
</div>
|
||||
<?php unset($doc->files[$file->id]);?>
|
||||
<?php endif;?>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $doc->files, 'fieldset' => 'true'));?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if($doc->productName):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->product;?></th>
|
||||
<td><?php echo $doc->productName;?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($doc->projectName):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->project;?></th>
|
||||
<td><?php echo $doc->projectName;?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->lib;?></th>
|
||||
<td><?php echo $lib->name;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->module;?></th>
|
||||
<td><?php echo $doc->moduleName ? $doc->moduleName : '/';?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->addedDate;?></th>
|
||||
<td><?php echo $doc->addedDate;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->editedBy;?></th>
|
||||
<td><?php echo zget($users, $doc->editedBy);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->doc->editedDate;?></th>
|
||||
<td><?php echo $doc->editedDate;?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php include '../../common/view/action.html.php';?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/syntaxhighlighter.html.php';?>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header, #header+#main{min-width: 700px}
|
||||
.main-header{display: none}
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header, #header+#main{min-width: 700px}
|
||||
.main-header{display: none}
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header, #header+#main{min-width: 700px}
|
||||
.main-header{display: none}
|
||||
@@ -0,0 +1,4 @@
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
.main-header{display: none}
|
||||
#header, #header+#main{min-width: 700px}
|
||||
@@ -0,0 +1,7 @@
|
||||
body{padding:0px; margin: 0px}
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
#header+#main{min-width:700px}
|
||||
.main-header{display: none}
|
||||
.main-row .col-8{display: none}
|
||||
.form-actions{margin-top: 0px}
|
||||
@@ -0,0 +1,13 @@
|
||||
body{padding:0px; margin: 0px}
|
||||
#header{display: none}
|
||||
#footer{display: none}
|
||||
.main-actions{display: none}
|
||||
#header+#main{min-width:700px}
|
||||
#mainMenu .pull-left>a{display: none}
|
||||
#mainMenu .pull-left .divider{display: none}
|
||||
#mainMenu .pull-right{display: none}
|
||||
#mainContent .col-4{display: none}
|
||||
.col-8>.cell{min-height: 300px}
|
||||
|
||||
/*备注宽度*/
|
||||
.modal-dialog{width: 90%}
|
||||
@@ -0,0 +1,6 @@
|
||||
$(function()
|
||||
{
|
||||
$('#sourceNote').parent().find('span').remove();
|
||||
$('#sourceNote').remove();
|
||||
$('table tbody tr th').addClass('w-70px');
|
||||
});
|
||||
@@ -0,0 +1,5 @@
|
||||
$(function()
|
||||
{
|
||||
var $btn = $('.col-8').find('.form-actions').clone();
|
||||
$('.col-4').find('.detail:last-child').html($btn);
|
||||
})
|
||||
@@ -0,0 +1,13 @@
|
||||
$(function()
|
||||
{
|
||||
var $xuanAction = "<div class='xuancard-actions fixed'>";
|
||||
|
||||
if(status != 'closed') $xuanAction += "<a href='" + changeLink + "'" + " target='_blank'" + " class='btn btn-link'" + '>' + "<i class='icon-story-change icon-fork'></i>" + " <span class='text'>" + change + "</span>" + "</a>";
|
||||
if(status == 'draft') $xuanAction += "<a href='" + reviewLink + "'" + " target='_blank'" + " class='btn btn-link'" + '>' + "<i class='icon-glasses'></i>" + " <span class='text'>" + review + "</span>" + "</a>";
|
||||
if(status != 'closed') $xuanAction += '<a href="' + closeLink + '"' + " target='_blank'" + ' class="btn btn-link">' + '<i class="icon-story-close icon-off"></i>' + ' <span class="text">' + close + "</span>" + "</a>";
|
||||
if(status == 'closed') $xuanAction += '<a href="' + activateLink + '"' + " target='_blank'" + ' class="btn btn-link">' + '<i class="icon-story-activate icon-magic"></i>' + ' <span class="text">' + activate + "</span>" + "</a>";
|
||||
$xuanAction += "<a href='" + editLink + "'" + " target='_blank' title=" + edit + " class='btn btn-link'" + '>' + "<i class='icon-edit'></i>" + "</a>";
|
||||
|
||||
$xuanAction += '</div>';
|
||||
$('#footer').replaceWith($xuanAction);
|
||||
})
|
||||
@@ -12,7 +12,15 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php $browseLink = $app->session->storyList != false ? $app->session->storyList : $this->createLink('product', 'browse', "productID=$story->product&branch=$story->branch&moduleID=$story->module");?>
|
||||
<?php
|
||||
$browseLink = $app->session->storyList != false ? $app->session->storyList : $this->createLink('product', 'browse', "productID=$story->product&branch=$story->branch&moduleID=$story->module");
|
||||
/* xuanxuan.*/
|
||||
$changeLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('story', 'change', "storyID=$story->id"));
|
||||
$reviewLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('story', 'review', "storyID=$story->id"));
|
||||
$editLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('story', 'edit', "storyID=$story->id"));
|
||||
$closeLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('story', 'close', "storyID=$story->id"));
|
||||
$activateLink = 'xxc:openUrlInDialog/' . rawurlencode(common::getSysUrl() . helper::createLink('story', 'activate', "storyID=$story->id"));
|
||||
?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php if(!isonlybody()):?>
|
||||
@@ -388,6 +396,19 @@ js::set('createStory', $lang->story->create);
|
||||
js::set('productID', $story->product);
|
||||
js::set('branch', $story->branch);
|
||||
js::set('moduleID', $story->module);
|
||||
/* xuanxuan. */
|
||||
js::set('storyID', $story->id);
|
||||
js::set('changeLink', $changeLink);
|
||||
js::set('reviewLink', $reviewLink);
|
||||
js::set('editLink', $editLink);
|
||||
js::set('closeLink', $closeLink);
|
||||
js::set('activateLink', $activateLink);
|
||||
js::set('edit', $lang->story->edit);
|
||||
js::set('change', $lang->story->change);
|
||||
js::set('review', $lang->story->review);
|
||||
js::set('close', $lang->story->close);
|
||||
js::set('activate', $lang->story->activate);
|
||||
js::set('status', $story->status);
|
||||
?>
|
||||
<?php include '../../common/view/syntaxhighlighter.html.php';?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1,168 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The create view of story module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package story
|
||||
* @version $Id: create.html.php 4902 2013-06-26 05:25:58Z wyd621@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<style>
|
||||
body{padding-bottom: 0px}
|
||||
</style>
|
||||
<div id="mainContent" class="main-content fade">
|
||||
<form class="load-indicator main-form form-ajax" method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class="table table-form">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class='w-70px'><?php echo $lang->story->product;?></th>
|
||||
<td colspan="2">
|
||||
<?php if($product->type != 'normal'):?>
|
||||
<div class='input-group'>
|
||||
<?php endif;?>
|
||||
<?php echo html::select('product', $products, $productID, "onchange='loadProduct(this.value);' class='form-control chosen control-product'");?>
|
||||
<?php if($product->type != 'normal'):?>
|
||||
<span class='input-group-addon fix-border fix-padding'></span>
|
||||
<?php echo html::select('branch', $branches, $branch, "onchange='loadBranch();' class='form-control chosen control-branch'");?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<div class='input-group' id='moduleIdBox'>
|
||||
<div class="input-group-addon"><?php echo $lang->story->module;?></div>
|
||||
<?php echo html::select('module', $moduleOptionMenu, $moduleID, "class='form-control chosen'"); ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->plan;?></th>
|
||||
<td colspan="2">
|
||||
<div class='input-group' id='planIdBox'>
|
||||
<?php echo html::select('plan', $plans, $planID, "class='form-control chosen'"); ?>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<div class="input-group">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon"><?php echo $lang->story->source;?></div>
|
||||
<?php echo html::select('source', $lang->story->sourceList, $source, "class='form-control chosen'");?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->reviewedBy;?></th>
|
||||
<td><?php echo html::select('assignedTo', $users, empty($needReview) ? $product->PO : '', "class='form-control chosen'");?></td>
|
||||
<?php if(!$this->story->checkForceReview()):?>
|
||||
<td>
|
||||
<div class='checkbox-primary'>
|
||||
<input id='needNotReview' name='needNotReview' value='1' type='checkbox' class='no-margin' <?php echo $needReview;?>/>
|
||||
<label for='needNotReview'><?php echo $lang->story->needNotReview;?></label>
|
||||
</div>
|
||||
</td>
|
||||
<?php endif;?>
|
||||
<td colspan='2'>
|
||||
<div class="input-group">
|
||||
<span class='input-group-addon'><?php echo $lang->story->sourceNote;?></span>
|
||||
<?php echo html::input('sourceNote', $sourceNote, "class='form-control' autocomplete='off'");?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->title;?></th>
|
||||
<td colspan="4">
|
||||
<div class='table-row'>
|
||||
<div class='table-col'>
|
||||
<div class="input-control has-icon-right">
|
||||
<?php echo html::input('title', $storyTitle, "class='form-control' autocomplete='off' required");?>
|
||||
<div class="colorpicker">
|
||||
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
|
||||
<ul class="dropdown-menu clearfix">
|
||||
<li class="heading"><?php echo $lang->story->colorTag;?><i class="icon icon-close"></i></li>
|
||||
</ul>
|
||||
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#title" data-provide="colorpicker">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='table-col w-150px'>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->story->pri;?></span>
|
||||
<?php
|
||||
$hasCustomPri = false;
|
||||
foreach($lang->story->priList as $priKey => $priValue)
|
||||
{
|
||||
if(!empty($priKey) and (string)$priKey != (string)$priValue)
|
||||
{
|
||||
$hasCustomPri = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$priList = $lang->story->priList;
|
||||
?>
|
||||
<?php if($hasCustomPri):?>
|
||||
<?php echo html::select('pri', (array)$priList, $pri, "class='form-control'");?>
|
||||
<?php else:?>
|
||||
<div class="input-group-btn pri-selector" data-type="pri">
|
||||
<button type="button" class="btn dropdown-toggle br-0" data-toggle="dropdown">
|
||||
<span class="pri-text"><span class="label-pri label-pri-<?php echo empty($pri) ? '0' : $pri?>" title="<?php echo $pri?>"><?php echo $pri?></span></span> <span class="caret"></span>
|
||||
</button>
|
||||
<div class='dropdown-menu pull-right'>
|
||||
<?php echo html::select('pri', (array)$priList, $pri, "class='form-control' data-provide='labelSelector' data-label-class='label-pri'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<div class='table-col w-120px'>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->story->estimateAB;?></span>
|
||||
<input type="text" name="estimate" id="estimate" value="<?php echo $estimate;?>" class="form-control" autocomplete="off" placeholder='<?php echo $lang->story->hour;?>' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->spec;?></th>
|
||||
<td colspan="4"><?php echo html::textarea('spec', $spec, "rows='9' class='form-control kindeditor disabled-ie-placeholder' hidefocus='true' placeholder='" . htmlspecialchars($lang->story->specTemplate) . "'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->verify;?></th>
|
||||
<td colspan="4"><?php echo html::textarea('verify', $verify, "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->mailto;?></th>
|
||||
<td colspan="4">
|
||||
<div class="input-group">
|
||||
<?php echo html::select('mailto[]', $users, str_replace(' ' , '', $mailto), "class='form-control chosen' data-placeholder='{$lang->chooseUsersToMail}' multiple");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->keywords;?></th>
|
||||
<td colspan="4">
|
||||
<?php echo html::input('keywords', $keywords, 'class="form-control" autocomplete="off"');?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->legendAttatch;?></th>
|
||||
<td colspan='4'><?php echo $this->fetch('file', 'buildform');?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5" class="text-center form-actions">
|
||||
<?php echo html::submitButton();?>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
<?php js::set('storyModule', $lang->story->module);?>
|
||||
@@ -0,0 +1,18 @@
|
||||
#header {display: none;}
|
||||
#main {padding: 0 0;}
|
||||
#main > .container {padding: 0 0;}
|
||||
|
||||
#header, #header + #main {min-width: 600px;}
|
||||
|
||||
#mainContent .center-block .main-header {display: none;}
|
||||
.main-content {padding:0}
|
||||
|
||||
.title-group .has-icon-right {min-width: 400px!important;}
|
||||
|
||||
#mailto ~ span.input-group-btn{display:none;}
|
||||
|
||||
.modal-dialog {width: 700px;}
|
||||
|
||||
a.btn-back {display:none;}
|
||||
|
||||
#footer{display:none;}
|
||||
@@ -0,0 +1,12 @@
|
||||
#header {display: none;}
|
||||
#main {padding: 0 0;}
|
||||
#mainMenu {display: none;}
|
||||
#main > .container {padding: 0 0;}
|
||||
|
||||
#header, #header + #main {min-width: 600px;}
|
||||
|
||||
#mainContent div.side-col {display: none;}
|
||||
#mainContent .main-col div.main-actions {display: none;}
|
||||
.main-content {padding:0}
|
||||
|
||||
#footer{display:none;}
|
||||
@@ -1,187 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The create view of task module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package task
|
||||
* @version $Id: create.html.php 5090 2013-07-10 05:49:24Z zhujinyonging@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<style>body{padding-bottom: 0px}</style>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<form class='main-form form-ajax' method='post' enctype='multipart/form-data' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-70px'><?php echo $lang->task->type;?></th>
|
||||
<td><?php echo html::select('type', $lang->task->typeList, $task->type, "class='form-control chosen' onchange='setOwners(this.value)' required");?></td><td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->module;?></th>
|
||||
<td id='moduleIdBox'><?php echo html::select('module', $moduleOptionMenu, $task->module, "class='form-control chosen' onchange='setStories(this.value,$project->id)'");?></td><td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->assignedTo;?></th>
|
||||
<td>
|
||||
<div class="input-group" id="dataPlanGroup">
|
||||
<?php echo html::select('assignedTo[]', $members, $task->assignedTo, "class='form-control chosen'");?>
|
||||
<?php echo html::input('teamMember', '', "class='form-control team-group fix-border hidden' readonly='readonly'");?>
|
||||
<span class="input-group-btn team-group hidden"><a class="btn br-0" href="#modalTeam" data-toggle="modal"><?php echo $lang->task->team;?></a></span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="checkbox-primary affair">
|
||||
<input type="checkbox" name="multiple" value="1" id="multipleBox"><label for="multipleBox" class="no-margin"><?php echo $lang->task->multipleAB;?></label>
|
||||
</div>
|
||||
<button id='selectAllUser' type="button" class="btn btn-link<?php if($task->type !== 'affair') echo ' hidden';?>"><?php echo $lang->task->selectAllUser;?></button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->story;?></th>
|
||||
<td colspan='3'>
|
||||
<?php if(empty($stories)):?>
|
||||
<span id='story'><?php printf($lang->task->noticeLinkStory, html::a($this->createLink('project', 'linkStory', "projectID=$project->id"), $lang->project->linkStory, '_blank', 'class="text-primary"'), html::a("javascript:loadStories($project->id)", $lang->refresh, '', 'class="text-primary"'));?></span>
|
||||
<?php else:?>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('story', $stories, $task->story, "class='form-control chosen' onchange='setStoryRelated();'");?>
|
||||
<span class='input-group-btn' id='preview'><a href='#' class='btn iframe'><?php echo $lang->preview;?></a></span>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->name;?></th>
|
||||
<td colspan='3'>
|
||||
<div class="input-group title-group">
|
||||
<div class="input-control has-icon-right">
|
||||
<div class="colorpicker">
|
||||
<button type="button" class="btn btn-link dropdown-toggle" data-toggle="dropdown"><span class="cp-title"></span><span class="color-bar"></span><i class="ic"></i></button>
|
||||
<ul class="dropdown-menu clearfix">
|
||||
<li class="heading"><?php echo $lang->task->colorTag;?><i class="icon icon-close"></i></li>
|
||||
</ul>
|
||||
<input type="hidden" class="colorpicker" id="color" name="color" value="" data-icon="color" data-wrapper="input-control-icon-right" data-update-color="#name" data-provide="colorpicker">
|
||||
</div>
|
||||
<?php echo html::input('name', $task->name, "class='form-control' autocomplete='off' required");?>
|
||||
<?php if($config->global->flow != 'onlyTask'):?>
|
||||
<a href='javascript:copyStoryTitle();' id='copyButton' class='input-control-icon-right'><?php echo $lang->task->copyStoryTitle;?></a>
|
||||
<?php echo html::hidden("storyEstimate") . html::hidden("storyDesc") . html::hidden("storyPri");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->task->pri;?></span>
|
||||
<?php
|
||||
$hasCustomPri = false;
|
||||
foreach($lang->task->priList as $priKey => $priValue)
|
||||
{
|
||||
if(!empty($priKey) and (string)$priKey != (string)$priValue)
|
||||
{
|
||||
$hasCustomPri = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$priList = $lang->task->priList;
|
||||
if(end($priList))
|
||||
{
|
||||
unset($priList[0]);
|
||||
$priList[0] = '';
|
||||
}
|
||||
?>
|
||||
<?php if($hasCustomPri):?>
|
||||
<?php echo html::select('pri', (array)$priList, $task->pri, "class='form-control'");?>
|
||||
<?php else: ?>
|
||||
<div class="input-group-btn pri-selector" data-type="pri">
|
||||
<button type="button" class="btn dropdown-toggle br-0" data-toggle="dropdown">
|
||||
<span class="pri-text"><span class="label-pri label-pri-<?php echo empty($task->pri) ? '0' : $task->pri?>" title="<?php echo $task->pri?>"><?php echo $task->pri?></span></span> <span class="caret"></span>
|
||||
</button>
|
||||
<div class='dropdown-menu pull-right'>
|
||||
<?php echo html::select('pri', (array)$priList, $task->pri, "class='form-control' data-provide='labelSelector' data-label-class='label-pri'");?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class='table-col w-120px'>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon fix-border br-0"><?php echo $lang->task->estimateAB;?></span>
|
||||
<input type="text" name="estimate" id="estimate" value="<?php echo $task->estimate;?>" class="form-control" autocomplete="off"></td>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->desc;?></th>
|
||||
<td colspan='3'><?php echo html::textarea('desc', $task->desc, "rows='10' class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->files;?></th>
|
||||
<td colspan='3'><?php echo $this->fetch('file', 'buildform');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->task->datePlan;?></th>
|
||||
<td colspan='2'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('estStarted', $task->estStarted, "class='form-control form-date' placeholder='{$lang->task->estStarted}'");?>
|
||||
<span class='input-group-addon fix-border'>~</span>
|
||||
<?php echo html::input('deadline', $task->deadline, "class='form-control form-date' placeholder='{$lang->task->deadline}'");?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->story->mailto;?></th>
|
||||
<td colspan='3'>
|
||||
<div class="input-group">
|
||||
<?php echo html::select('mailto[]', $project->acl == 'private' ? $members : $users, str_replace(' ', '', $task->mailto), "class='form-control chosen' data-placeholder='{$lang->chooseUsersToMail}' multiple");?>
|
||||
<?php echo $this->fetch('my', 'buildContactLists');?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr <?php echo $config->global->flow == 'onlyTask' ? "class='hidden'" : '';?>>
|
||||
<th><?php echo $lang->task->afterSubmit;?></th>
|
||||
<td colspan='3'><?php echo html::radio('after', $lang->task->afterChoices, $config->global->flow == 'onlyTask' || !empty($task->id) ? 'toTaskList' : 'continueAdding');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='4' class='text-center form-actions'>
|
||||
<?php echo html::submitButton();?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class='modal fade modal-team' id='modalTeam'>
|
||||
<div class='modal-dialog'>
|
||||
<div class='modal-header'>
|
||||
<button type='button' class='close' data-dismiss='modal'>
|
||||
<i class="icon icon-close"></i>
|
||||
</button>
|
||||
<h4 class='modal-title'><?php echo $lang->task->team;?></h4>
|
||||
</div>
|
||||
<div class='modal-content with-padding'>
|
||||
<table class="table table-form" id='taskTeamEditor'>
|
||||
<tbody class='sortable'>
|
||||
<tr class='template'>
|
||||
<td><?php echo html::select("team[]", $members, '', "class='form-control chosen'");?></td>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input("teamEstimate[]", '', "class='form-control text-center' autocomplete='off' placeholder='{$lang->task->estimateAB}'") ?>
|
||||
<span class='input-group-addon'><?php echo $lang->task->hour;?></span>
|
||||
</div>
|
||||
</td>
|
||||
<td class='w-130px sort-handler'>
|
||||
<button type="button" class="btn btn-link btn-sm btn-icon btn-add"><i class="icon icon-plus"></i></button>
|
||||
<button type='button' class='btn btn-link btn-sm btn-icon btn-move'><i class='icon-move'></i></button>
|
||||
<button type="button" class="btn btn-link btn-sm btn-icon btn-delete"><i class="icon icon-close"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan='3' class='text-center'><?php echo html::a('javascript:void(0)', $lang->confirm, '', "class='btn btn-primary' data-dismiss='modal'");?></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
#header{display:none;}
|
||||
#header+#main{min-width:auto;}
|
||||
#main{padding:0px;}
|
||||
#main .container{padding:0px;}
|
||||
.side-col.col-4{display:none;}
|
||||
#mainMenu{margin-top:0px;}
|
||||
#mainMenu .btn{display:none;}
|
||||
#mainMenu .divider{display:none;}
|
||||
.main-actions #back{display:none;}
|
||||
.main-actions .divider{display:none;}
|
||||
.main-actions a[href*=delete]{display:none;}
|
||||
.main-actions a[href*=create]{display:none;}
|
||||
.main-actions a[href*=runCase]{display:none;}
|
||||
#footer{display:none;}
|
||||
@@ -1,5 +1,5 @@
|
||||
$(document).ready(function()
|
||||
{
|
||||
if(config.onlybody != 'yes')$(".runCase").modalTrigger({width:900, type:'iframe', afterHide:function(){parent.location.href=parent.location.href;}});
|
||||
if(config.onlybody != 'yes')$(".results").modalTrigger({width:900, type:'iframe'});
|
||||
if(config.onlybody != 'yes')$(".runCase").modalTrigger({width:'90%', type:'iframe', afterHide:function(){parent.location.href=parent.location.href;}});
|
||||
if(config.onlybody != 'yes')$(".results").modalTrigger({width:'90%', type:'iframe'});
|
||||
})
|
||||
|
||||
@@ -113,7 +113,17 @@
|
||||
if($config->testcase->needReview or !empty($config->testcase->forceReview)) common::printIcon('testcase', 'review', "caseID=$case->id", $case, 'button', '', '', 'iframe');
|
||||
?>
|
||||
<?php
|
||||
common::printIcon('testcase', 'edit',"caseID=$case->id", $case);
|
||||
if($this->app->getViewType() == 'xhtml' and common::hasPriv('testcase', 'edit'))
|
||||
{
|
||||
$url = common::getSysURL() . $this->createLink('testcase', 'edit', "case=$case->id");
|
||||
$url .= strpos($url, '?') === false ? '?' : '&';
|
||||
$url .= 'width=1000px&height=800px';
|
||||
echo html::a('xxc:openUrlInDialog/' . urlencode($url), "<i class='icon-edit'></i>", '_blank', "class='btn btn-link'");
|
||||
}
|
||||
else
|
||||
{
|
||||
common::printIcon('testcase', 'edit',"caseID=$case->id", $case);
|
||||
}
|
||||
if(!$isLibCase) common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase¶m=$case->id", $case, 'button', 'copy');
|
||||
if($isLibCase and common::hasPriv('testsuite', 'createCase')) echo html::a($this->createLink('testsuite', 'createCase', "libID=$case->lib&moduleID=$case->module¶m=$case->id", $case), "<i class='icon-copy'></i>", '', "class='btn' title='{$lang->testcase->copy}'");
|
||||
common::printIcon('testcase', 'delete', "caseID=$case->id", $case, 'button', '', 'hiddenwin');
|
||||
|
||||
@@ -1,240 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The view file of case module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package case
|
||||
* @version $Id: view.html.php 5000 2013-07-03 08:20:57Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php $browseLink = $app->session->caseList != false ? $app->session->caseList : $this->createLink('testcase', 'browse', "productID=$case->product");?>
|
||||
<style>body{padding:0px;}</style>
|
||||
<div class='xuanxuan-card'>
|
||||
<div class='panel'>
|
||||
<div class='panel-heading strong'>
|
||||
<span class='label label-id'><?php echo $case->id;?></span>
|
||||
<span class='text' title='<?php echo $case->title;?>' style='color: <?php echo $case->color; ?>'><?php echo $case->title;?></span>
|
||||
<?php if($case->fromCaseID):?>
|
||||
<small><?php echo html::icon($lang->icons['testcase']) . " {$lang->testcase->fromCase}$lang->colon$case->fromCaseID";?></small>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<div class='panel-body'>
|
||||
<table class='table table-data'>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->precondition;?></th>
|
||||
<td><?php echo nl2br($case->precondition);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->steps;?></th>
|
||||
<td>
|
||||
<table class='table table-condensed table-hover table-striped table-bordered' id='steps'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-50px'><?php echo $lang->testcase->stepID;?></th>
|
||||
<th class='w-p70 text-left'><?php echo $lang->testcase->stepDesc;?></th>
|
||||
<th class='text-left'><?php echo $lang->testcase->stepExpect;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php
|
||||
$stepId = $childId = 0;
|
||||
foreach($case->steps as $stepID => $step)
|
||||
{
|
||||
$stepClass = "step-{$step->type}";
|
||||
if($step->type == 'group' or $step->type == 'step')
|
||||
{
|
||||
$stepId++;
|
||||
$childId = 0;
|
||||
}
|
||||
if($step->type == 'step') $stepClass = 'step-group';
|
||||
echo "<tr class='step {$stepClass}'>";
|
||||
echo "<th class='step-id'>$stepId</th>";
|
||||
echo "<td class='text-left'><div class='input-group'>";
|
||||
if($step->type == 'item') echo "<span class='step-item-id'>{$stepId}.{$childId}</span>";
|
||||
echo nl2br(str_replace(' ', ' ', $step->desc)) . "</td>";
|
||||
echo "<td class='text-left'>" . nl2br(str_replace(' ', ' ', $step->expect)) . "</div></td>";
|
||||
echo "</tr>";
|
||||
$childId ++;
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<?php echo $this->fetch('file', 'printFiles', array('files' => $case->files, 'fieldset' => 'true'));?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan='2' class='text-left stong'><?php echo $lang->testcase->legendBasicInfo;?></th>
|
||||
</tr>
|
||||
<?php if($isLibCase):?>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->testcase->lib;?></th>
|
||||
<td><?php echo $libName;?></td>
|
||||
</tr>
|
||||
<?php else:?>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->testcase->product;?></th>
|
||||
<td><?php echo $productName;?></td>
|
||||
</tr>
|
||||
<?php if($this->session->currentProductType != 'normal'):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->product->branch;?></th>
|
||||
<td><?php echo $branchName;?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->module;?></th>
|
||||
<td>
|
||||
<?php
|
||||
if(empty($modulePath))
|
||||
{
|
||||
echo "/";
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($modulePath as $key => $module)
|
||||
{
|
||||
echo $module->name;
|
||||
if(isset($modulePath[$key + 1])) echo $lang->arrow;
|
||||
}
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(!$isLibCase and $config->global->flow != 'onlyTest'):?>
|
||||
<tr class='nofixed'>
|
||||
<th><?php echo $lang->testcase->story;?></th>
|
||||
<td>
|
||||
<?php
|
||||
if(isset($case->storyTitle)) echo "#$case->story:$case->storyTitle";
|
||||
if($case->story and $case->storyStatus == 'active' and $case->latestStoryVersion > $case->storyVersion)
|
||||
{
|
||||
echo "(<span class='warning'>{$lang->story->changed}</span> ";
|
||||
echo html::a($this->createLink('testcase', 'confirmStoryChange', "caseID=$case->id"), $lang->confirm, 'hiddenwin');
|
||||
echo ")";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->type;?></th>
|
||||
<td><?php echo $lang->testcase->typeList[$case->type];?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->stage;?></th>
|
||||
<td>
|
||||
<?php
|
||||
if($case->stage)
|
||||
{
|
||||
$stags = explode(',', $case->stage);
|
||||
foreach($stags as $stage)
|
||||
{
|
||||
if(empty($stage)) continue;
|
||||
isset($lang->testcase->stageList[$stage]) ? print($lang->testcase->stageList[$stage]) : print($stage);
|
||||
echo "<br />";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->pri;?></th>
|
||||
<td><span class='label-pri label-pri-<?php echo $case->pri;?>' title='<?php echo zget($lang->testcase->priList, $case->pri);?>'><?php echo zget($lang->testcase->priList, $case->pri)?></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->status;?></th>
|
||||
<td>
|
||||
<?php
|
||||
echo $lang->testcase->statusList[$case->status];
|
||||
if($case->version > $case->currentVersion and $from == 'testtask')
|
||||
{
|
||||
echo "(<span class='warning'>{$lang->testcase->changed}</span> ";
|
||||
echo html::a($this->createLink('testcase', 'confirmchange', "caseID=$case->id"), $lang->confirm, 'hiddenwin', "class='btn btn-mini btn-info'");
|
||||
echo ")";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if(!$isLibCase):?>
|
||||
<tr>
|
||||
<th><?php echo $this->app->loadLang('testtask')->testtask->lastRunTime;?></th>
|
||||
<td><?php if(!helper::isZeroDate($case->lastRunDate)) echo $case->lastRunDate;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $this->app->loadLang('testtask')->testtask->lastRunResult;?></th>
|
||||
<td><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->keywords;?></th>
|
||||
<td><?php echo $case->keywords;?></td>
|
||||
</tr>
|
||||
<?php if(!$isLibCase):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->linkCase;?></th>
|
||||
<td>
|
||||
<?php
|
||||
if(isset($case->linkCaseTitles))
|
||||
{
|
||||
foreach($case->linkCaseTitles as $linkCaseID => $linkCaseTitle)
|
||||
{
|
||||
echo html::a($this->createLink('testcase', 'view', "caseID=$linkCaseID", '', true), "#$linkCaseID $linkCaseTitle", '', "class='iframe' data-width='80%'") . '<br />';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($case->fromBug):?>
|
||||
<tr>
|
||||
<th colspan='2' class='text-left stong'><?php echo $lang->testcase->legendLinkBugs;?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-60px'><?php echo $lang->testcase->fromBug;?></th>
|
||||
<td><?php echo html::a($this->createLink('bug', 'view', "bugID=$case->fromBug", '', true), $case->fromBugTitle, '', "class='iframe' data-width='80%'");?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<?php if($case->toBugs):?>
|
||||
<tr>
|
||||
<th class='w-60px' valign="top"><?php echo $lang->testcase->toBug;?></th>
|
||||
<td>
|
||||
<?php
|
||||
foreach($case->toBugs as $bugID => $bugTitle)
|
||||
{
|
||||
echo '<p style="margin-bottom:0;">' . html::a($this->createLink('bug', 'view', "bugID=$bugID", '', true), $bugTitle, '', "class='iframe' data-width='80%'") . '</p>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th colspan='2' class='text-left stong'><?php echo $lang->testcase->legendOpenAndEdit;?></tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-60px'><?php echo $lang->testcase->openedBy;?></th>
|
||||
<td><?php echo $users[$case->openedBy] . $lang->at . $case->openedDate;?></td>
|
||||
</tr>
|
||||
<?php if($config->testcase->needReview or !empty($config->testcase->forceReview)):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->reviewedBy;?></th>
|
||||
<td><?php $reviewedBy = explode(',', $case->reviewedBy); foreach($reviewedBy as $account) echo ' ' . $users[trim($account)]; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->reviewedDate;?></th>
|
||||
<td><?php if($case->reviewedBy) echo $case->reviewedDate;?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->lblLastEdited;?></th>
|
||||
<td><?php if($case->lastEditedBy) echo $users[$case->lastEditedBy] . $lang->at . $case->lastEditedDate;?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php include '../../common/view/action.html.php';?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
@@ -0,0 +1,7 @@
|
||||
body{padding:0px;}
|
||||
#header{display:none;}
|
||||
#header+#main{min-width:auto;}
|
||||
#main{padding:0px;}
|
||||
#main .container{padding:0px;}
|
||||
.main-header{display:none;}
|
||||
#footer{display:none;}
|
||||
@@ -1,149 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* The create view of todo module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
||||
* @package todo
|
||||
* @version $Id: create.html.php 4728 2013-05-03 06:14:34Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<?php include '../../common/view/datepicker.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<style>
|
||||
body{padding:0px;}
|
||||
</style>
|
||||
<?php js::set('noTodo', $lang->todo->noTodo);?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<form method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-80px'><?php echo $lang->todo->date;?></th>
|
||||
<td class='w-300px'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('date', $date, "class='form-control form-date'");?>
|
||||
<span class='input-group-addon switchDate'>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' id='switchDate' onclick='switchDateTodo(this);' />
|
||||
<label for='switchDate'><?php echo $lang->todo->periods['future'];?></label>
|
||||
</div>
|
||||
</span>
|
||||
<span class='input-group-addon'>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' id='cycle' name='cycle' value='1' />
|
||||
<label for='cycle'><?php echo $lang->todo->cycle;?></label>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
</td><td></td>
|
||||
</tr>
|
||||
<tr class='cycleConfig hidden'>
|
||||
<th><?php echo $lang->todo->cycleConfig;?></th>
|
||||
<td colspan='2'>
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a data-tab data-type='day' href="#day"><?php echo $lang->todo->cycleDay;?></a></li>
|
||||
<li><a data-tab data-type='week' href="#week"><?php echo $lang->todo->cycleWeek;?></a></li>
|
||||
<li><a data-tab data-type='month' href="#month"><?php echo $lang->todo->cycleMonth;?></a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="day">
|
||||
<div class='input-group w-150px'>
|
||||
<span class='input-group-addon'><?php echo $lang->todo->every;?></span>
|
||||
<?php echo html::input('config[day]', 1, "class='form-control'")?>
|
||||
<span class='input-group-addon'><?php echo $lang->todo->cycleDay;?></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane clearfix" id="week">
|
||||
<?php echo html::checkbox('config[week]', $lang->todo->dayNames)?>
|
||||
</div>
|
||||
<div class="tab-pane clearfix" id="month">
|
||||
<?php
|
||||
$days = array();
|
||||
for($i = 1; $i <= 10; $i ++) $days[$i] = $i;
|
||||
echo html::checkbox('config[month]', $days);
|
||||
$days = array();
|
||||
for($i = 11; $i <= 20; $i ++) $days[$i] = $i;
|
||||
echo html::checkbox('config[month]', $days);
|
||||
$days = array();
|
||||
for($i = 21; $i <= 31; $i ++) $days[$i] = $i;
|
||||
echo html::checkbox('config[month]', $days);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo html::hidden('config[type]', 'day')?>
|
||||
<div class='input-group' style='width:200px; padding-top:5px;'>
|
||||
<?php printf($lang->todo->beforeDays, html::input('config[beforeDays]', 0, "class='form-control'"));?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='cycleConfig hidden'>
|
||||
<th><?php echo $lang->todo->deadline;?></th>
|
||||
<td><?php echo html::input("config[end]", '', "class='form-control form-date'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->type;?></th>
|
||||
<td><?php echo html::select('type', $lang->todo->typeList, '', 'onchange="loadList(this.value);" class="form-control"');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->pri;?></th>
|
||||
<td><?php echo html::select('pri', $lang->todo->priList, '', "class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->name;?></th>
|
||||
<td colspan='2'>
|
||||
<div id='nameBox' class='hidden'><?php echo html::input('name', '', "class='form-control' autocomplete='off'");?></div>
|
||||
<div class='nameBox required'><?php echo html::input('name', '', "class='form-control' autocomplete='off'");?></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->desc;?></th>
|
||||
<td colspan='2'><?php echo html::textarea('desc', '', "rows='8' class='form-control'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->status;?></th>
|
||||
<td><?php echo html::select('status', $lang->todo->statusList, '', "class='form-control chosen'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->beginAndEnd;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('begin', $times, date('Y-m-d') != $date ? key($times) : $time, 'onchange=selectNext(); class="form-control chosen" style="width: 50%;"') . html::select('end', $times, '', 'class="form-control chosen" style="width: 50%; margin-left:-1px"');?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' id='switchDate' onclick='switchDateFeature(this);' />
|
||||
<label for='switchDate'><?php echo $lang->todo->lblDisableDate;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->todo->private;?></th>
|
||||
<td>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' name='private' id='private' value='1' />
|
||||
<label for='private'></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='3' class='text-center form-actions'>
|
||||
<?php echo html::submitButton();?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php js::set('account', $app->user->account)?>
|
||||
<script>
|
||||
var nowTime = '<?php echo $time?>';
|
||||
var today = '<?php echo date('Y-m-d')?>';
|
||||
var start = '<?php echo key($times)?>';
|
||||
</script>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
@@ -16,3 +16,5 @@ $config->upgrade->lowerTables[$config->db->prefix . 'userContact'] = $config-
|
||||
$config->upgrade->lowerTables[$config->db->prefix . 'userGroup'] = $config->db->prefix . 'usergroup';
|
||||
$config->upgrade->lowerTables[$config->db->prefix . 'userQuery'] = $config->db->prefix . 'userquery';
|
||||
$config->upgrade->lowerTables[$config->db->prefix . 'userTPL'] = $config->db->prefix . 'usertpl';
|
||||
|
||||
$config->delete['10.6'][] = 'module/chat/ext/control/extensions.php';
|
||||
|
||||
@@ -106,12 +106,24 @@ class upgrade extends control
|
||||
public function execute($fromVersion = '')
|
||||
{
|
||||
$this->session->set('step', '');
|
||||
$fromVersion = isset($_POST['fromVersion']) ? $this->post->fromVersion : $fromVersion;
|
||||
$this->upgrade->execute($fromVersion);
|
||||
|
||||
$this->view->title = $this->lang->upgrade->result;
|
||||
$this->view->position[] = $this->lang->upgrade->common;
|
||||
|
||||
$result = $this->upgrade->deleteFiles();
|
||||
if($result)
|
||||
{
|
||||
$result[] = $this->lang->upgrade->afterDeleted;
|
||||
|
||||
$this->view->result = 'fail';
|
||||
$this->view->errors = $result;
|
||||
|
||||
die($this->display());
|
||||
}
|
||||
|
||||
$fromVersion = isset($_POST['fromVersion']) ? $this->post->fromVersion : $fromVersion;
|
||||
$this->upgrade->execute($fromVersion);
|
||||
|
||||
if(!$this->upgrade->isError()) $this->locate(inlink('afterExec', "fromVersion=$fromVersion"));
|
||||
|
||||
$this->view->result = 'fail';
|
||||
|
||||
@@ -46,5 +46,6 @@ $lang->upgrade->sureExecute = 'Execute';
|
||||
$lang->upgrade->forbiddenExt = 'Extension is not compatible with the version. It has been deactivated:';
|
||||
$lang->upgrade->updateFile = 'File information has to be updated.';
|
||||
$lang->upgrade->noticeSQL = 'Check that your database is inconsistent with the standard and try to fix failure. Please perform the following SQL and refresh.';
|
||||
$lang->upgrade->afterDeleted = 'File is not deleted. Please refresh after you delete it.';
|
||||
|
||||
include dirname(__FILE__) . '/version.php';
|
||||
|
||||
@@ -46,5 +46,6 @@ $lang->upgrade->sureExecute = '确认执行';
|
||||
$lang->upgrade->forbiddenExt = '以下插件与新版本不兼容,已经自动禁用:';
|
||||
$lang->upgrade->updateFile = '需要更新附件信息。';
|
||||
$lang->upgrade->noticeSQL = '检查到你的数据库跟标准不一致,尝试修复失败。请执行以下SQL语句,再刷新页面检查。';
|
||||
$lang->upgrade->afterDeleted = '以上文件未能删除, 删除后刷新!';
|
||||
|
||||
include dirname(__FILE__) . '/version.php';
|
||||
|
||||
@@ -472,6 +472,28 @@ class upgradeModel extends model
|
||||
return $alterSQL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Useless Files
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function deleteFiles()
|
||||
{
|
||||
$result = array();
|
||||
foreach($this->config->delete as $deleteFiles)
|
||||
{
|
||||
$basePath = $this->app->getBasePath();
|
||||
foreach($deleteFiles as $file)
|
||||
{
|
||||
$fullPath = $basePath . str_replace('/', DIRECTORY_SEPARATOR, $file);
|
||||
if(file_exists($fullPath) and !unlink($fullPath)) $result[] = $fullPath;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Update ubb code in bug table and user Templates table to html.
|
||||
|
||||
+4
-4
File diff suppressed because one or more lines are too long
@@ -15,3 +15,7 @@
|
||||
|
||||
/* Finish task #5068*/
|
||||
.main-table .table{cursor:pointer;}
|
||||
|
||||
.xuanxuan-card{padding-bottom:55px;}
|
||||
.xuancard-actions{width: 100%;text-align: center; padding: 10px 0;}
|
||||
.xuancard-actions.fixed{position: fixed; background: #fff; border-top: 1px solid #ddd; bottom: 0; margin-bottom: 0; z-index: 999; box-shadow: 0 -2px 10px rgba(0,0,0,0.15);}
|
||||
|
||||
@@ -58,6 +58,7 @@ class admin extends control
|
||||
$this->view->os = $os . '_' . php_uname('m');
|
||||
$this->view->type = $type;
|
||||
$this->view->domain = $domain;
|
||||
$this->view->turnon = isset($this->config->xuanxuan->turnon) ? $this->config->xuanxuan->turnon : 1;
|
||||
$this->view->isHttps = $isHttps;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -24,7 +24,11 @@
|
||||
<form method='post' id='ajaxForm' class='form-inline form-ajax'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->chat->version;?></th>
|
||||
<th class='w-120px'><?php echo $lang->chat->turnon;?></th>
|
||||
<td><?php echo $type == 'edit' ? html::radio('turnon', $lang->chat->turnonList, $turnon) : zget($lang->chat->turnonList, $config->xuanxuan->turnon);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->chat->version;?></th>
|
||||
<td><?php echo $config->xuanxuan->version;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -77,21 +81,6 @@
|
||||
<td><?php echo html::textarea('sslkey', zget($config->xuanxuan, 'sslkey', ''), "placeholder='{$lang->chat->placeholder->xxd->sslkey}' class='form-control'");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->chat->xxd->uploadFileSize;?></th>
|
||||
<td>
|
||||
<?php if($type == 'edit'):?>
|
||||
<div class='input-group'>
|
||||
<span class='input-group-addon'><?php echo $lang->chat->xxd->max;?></span>
|
||||
<?php echo html::input('uploadFileSize', zget($config->xuanxuan, 'uploadFileSize', 20), "class='form-control' placeholder='{$lang->chat->placeholder->xxd->uploadFileSize}' ");?>
|
||||
<span class='input-group-addon'>M</span>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<?php echo $lang->chat->xxd->max . zget($config->xuanxuan, 'uploadFileSize', 20) . 'M';?>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<?php if(!$type):?>
|
||||
<tr>
|
||||
<th><?php echo $lang->chat->xxd->os;?></th>
|
||||
|
||||
@@ -8,3 +8,9 @@ $config->chat->mimes['png'] = 'image/png';
|
||||
$config->chat->mimes['bmp'] = 'image/x-ms-bmp';
|
||||
$config->chat->mimes['xml'] = 'application/xml';
|
||||
$config->chat->mimes['html'] = 'text/html';
|
||||
|
||||
$config->chat->cards['bug']['view'] = array('width' => '700px', 'height' => '500px');
|
||||
$config->chat->cards['task']['view'] = array('width' => '700px', 'height' => '500px');
|
||||
$config->chat->cards['doc']['view'] = array('width' => '700px', 'height' => '500px');
|
||||
$config->chat->cards['story']['view'] = array('width' => '700px', 'height' => '500px');
|
||||
$config->chat->cards['testcase']['view'] = array('width' => '700px', 'height' => '500px');
|
||||
|
||||
@@ -31,8 +31,8 @@ $lang->chat->xxdServerTip = 'XXD服务器地址为完整的协议+地址+端
|
||||
$lang->chat->xxdServerEmpty = 'XXD服务器地址为空。';
|
||||
$lang->chat->xxdSchemeError = '服务器地址应该以<strong>http://</strong>或<strong>https://</strong>开头。';
|
||||
$lang->chat->xxdPortError = '服务器地址应该包含有效的端口号,默认为<strong>11443</strong>。';
|
||||
$lang->chat->xxClientConfirm = '禅道新增客户端,点击下载体验!';
|
||||
$lang->chat->xxServerConfirm = '禅道新增客户端,点击确认前往后台配置客户端服务器。';
|
||||
$lang->chat->xxClientConfirm = '禅道新增客户端,与禅道深度集成,支持成员沟通,小组讨论,文件传输,任务指派,更加方便的项目管理,更加流畅的团队协作!点击确认下载客户端。';
|
||||
$lang->chat->xxServerConfirm = '禅道新增客户端,与禅道深度集成,支持成员沟通,小组讨论,文件传输,任务指派,更加方便的项目管理,更加流畅的团队协作!点击确认前往后台配置客户端服务器。';
|
||||
|
||||
$lang->chat->xxd = new stdclass();
|
||||
$lang->chat->xxd->os = '操作系统';
|
||||
|
||||
@@ -69,25 +69,27 @@ class xuanxuanChat extends chatModel
|
||||
$baseURL = commonModel::getSysURL();
|
||||
|
||||
$actions = new stdclass();
|
||||
$actions->createBug = array('title' => $this->lang->chat->createBug, 'url' => $baseURL . helper::createLink('bug', 'create', 'product=1', 'xhtml'), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createDoc = array('title' => $this->lang->chat->createDoc, 'url' => $baseURL . helper::createLink('doc', 'create', 'lib=1', 'xhtml'), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createStory = array('title' => $this->lang->chat->createStory, 'url' => $baseURL . helper::createLink('story', 'create', 'product=1', 'xhtml'), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createTask = array('title' => $this->lang->chat->createTask, 'url' => $baseURL . helper::createLink('task', 'create', 'project=1', 'xhtml'), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createTodo = array('title' => $this->lang->chat->createTodo, 'url' => $baseURL . helper::createLink('todo', 'create', '', 'xhtml'), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createBug = array('title' => $this->lang->chat->createBug, 'url' => $baseURL . str_replace('/xuanxuan.php', '/index.php', helper::createLink('bug', 'create', 'product=1', 'xhtml')), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createDoc = array('title' => $this->lang->chat->createDoc, 'url' => $baseURL . str_replace('/xuanxuan.php', '/index.php', helper::createLink('doc', 'create', 'lib=1', 'xhtml')), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createStory = array('title' => $this->lang->chat->createStory, 'url' => $baseURL . str_replace('/xuanxuan.php', '/index.php', helper::createLink('story', 'create', 'product=1', 'xhtml')), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createTask = array('title' => $this->lang->chat->createTask, 'url' => $baseURL . str_replace('/xuanxuan.php', '/index.php', helper::createLink('task', 'create', 'project=1', 'xhtml')), 'height' => "600px", 'width' => "800px");
|
||||
$actions->createTodo = array('title' => $this->lang->chat->createTodo, 'url' => $baseURL . str_replace('/xuanxuan.php', '/index.php', helper::createLink('todo', 'create', '', 'xhtml')), 'height' => "600px", 'width' => "800px");
|
||||
|
||||
$urls = array();
|
||||
foreach(array('bug', 'task', 'doc', 'story', 'testcase') as $moduleName)
|
||||
foreach($this->config->chat->cards as $moduleName => $methods)
|
||||
{
|
||||
$url = '/';
|
||||
if($this->config->requestType == 'GET')
|
||||
foreach($methods as $methodName => $size)
|
||||
{
|
||||
$url .= "index.php?m={$moduleName}&f=view";
|
||||
if($this->config->requestType == 'GET')
|
||||
{
|
||||
$url = "/index.php?m={$moduleName}&f={$methodName}";
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = "/{$moduleName}-{$methodName}-";
|
||||
}
|
||||
$urls[$url] = $size;
|
||||
}
|
||||
else
|
||||
{
|
||||
$url .= "{$moduleName}-view-";
|
||||
}
|
||||
$urls[$url] = true;
|
||||
}
|
||||
|
||||
$data = new stdClass();
|
||||
|
||||
@@ -14,7 +14,7 @@ class entry extends control
|
||||
if(RUN_MODE != 'xuanxuan') die();
|
||||
|
||||
$referer = !empty($_GET['referer']) ? $this->get->referer : $referer;
|
||||
if(empty($referer)) $referer = common::getSysURL() . $this->createLink('index', 'index', '', 'xhtml');
|
||||
if(empty($referer)) $referer = common::getSysURL() . str_replace('/xuanxuan.php', '/index.php', $this->createLink('index', 'index', '', 'xhtml'));
|
||||
|
||||
$output = new stdclass();
|
||||
$output->module = $this->moduleName;
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user