Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
+5
-5
@@ -42,7 +42,7 @@ echo backup.bat ok
|
||||
if %requestType% == 'PATH_INFO' (
|
||||
SET computeburn= %phpcli% %baseDir%ztcli "%pmsRoot%/report-remind"
|
||||
)else (
|
||||
SET computeburn= %phpcli% %baseDir%ztcli "%pmsRoot%/?m=report&f=remind"
|
||||
SET computeburn= %phpcli% %baseDir%ztcli "%pmsRoot%/index.php?m=report&f=remind"
|
||||
)
|
||||
echo %computeburn% > %baseDir%dailyreminder.bat
|
||||
echo dailyreminder.bat ok
|
||||
@@ -51,7 +51,7 @@ echo dailyreminder.bat ok
|
||||
if %requestType% == 'PATH_INFO' (
|
||||
SET computeburn= %phpcli% %baseDir%ztcli "%pmsRoot%/project-computeburn"
|
||||
)else (
|
||||
SET computeburn= %phpcli% %baseDir%ztcli "%pmsRoot%/?m=project&f=computeburn"
|
||||
SET computeburn= %phpcli% %baseDir%ztcli "%pmsRoot%/index.php?m=project&f=computeburn"
|
||||
)
|
||||
echo %computeburn% > %baseDir%computeburn.bat
|
||||
echo computeburn.bat ok
|
||||
@@ -60,7 +60,7 @@ echo computeburn.bat ok
|
||||
if %requestType% == 'PATH_INFO' (
|
||||
SET checkdb= %phpcli% %baseDir%ztcli "%pmsRoot%/admin-checkdb"
|
||||
)else (
|
||||
SET checkdb= %phpcli% %baseDir%ztcli "%pmsRoot%/?m=admin&f=checkdb"
|
||||
SET checkdb= %phpcli% %baseDir%ztcli "%pmsRoot%/index.php?m=admin&f=checkdb"
|
||||
)
|
||||
echo %checkdb% > %baseDir%checkdb.bat
|
||||
echo checkdb.bat ok
|
||||
@@ -69,7 +69,7 @@ echo checkdb.bat ok
|
||||
if %requestType% == 'PATH_INFO' (
|
||||
SET syncsvn= %phpcli% %baseDir%ztcli "%pmsRoot%/svn-run"
|
||||
)else (
|
||||
SET syncsvn= %phpcli% %baseDir%ztcli "%pmsRoot%/?m=svn&f=run"
|
||||
SET syncsvn= %phpcli% %baseDir%ztcli "%pmsRoot%/index.php?m=svn&f=run"
|
||||
)
|
||||
echo %syncsvn% > %baseDir%syncsvn.bat
|
||||
echo syncsvn.bat ok
|
||||
@@ -78,7 +78,7 @@ echo syncsvn.bat ok
|
||||
if %requestType% == 'PATH_INFO' (
|
||||
SET syncgit= %phpcli% %baseDir%ztcli "%pmsRoot%/git-run"
|
||||
)else (
|
||||
SET syncgit= %phpcli% %baseDir%ztcli "%pmsRoot%/?m=git&f=run"
|
||||
SET syncgit= %phpcli% %baseDir%ztcli "%pmsRoot%/index.php?m=git&f=run"
|
||||
)
|
||||
echo %syncgit% > %baseDir%syncgit.bat
|
||||
echo syncgit.bat ok
|
||||
|
||||
+6
-6
@@ -50,7 +50,7 @@ echo "backup.sh ok"
|
||||
if [ $requestType == 'PATH_INFO' ]; then
|
||||
computeburn="$phpcli $basePath/ztcli '$pmsRoot/project-computeburn'";
|
||||
else
|
||||
computeburn="$phpcli $basePath/ztcli '$pmsRoot/?m=project&f=computeburn'";
|
||||
computeburn="$phpcli $basePath/ztcli '$pmsRoot/index.php?m=project&f=computeburn'";
|
||||
fi
|
||||
echo $computeburn > $basePath/computeburn.sh
|
||||
echo "computeburn.sh ok"
|
||||
@@ -59,7 +59,7 @@ echo "computeburn.sh ok"
|
||||
if [ $requestType == 'PATH_INFO' ]; then
|
||||
checkdb="$phpcli $basePath/ztcli '$pmsRoot/report-remind'";
|
||||
else
|
||||
checkdb="$phpcli $basePath/ztcli '$pmsRoot/?m=report&f=remind'";
|
||||
checkdb="$phpcli $basePath/ztcli '$pmsRoot/index.php?m=report&f=remind'";
|
||||
fi
|
||||
echo $checkdb > $basePath/dailyreminder.sh
|
||||
echo "dailyreminder.sh ok"
|
||||
@@ -68,7 +68,7 @@ echo "dailyreminder.sh ok"
|
||||
if [ $requestType == 'PATH_INFO' ]; then
|
||||
checkdb="$phpcli $basePath/ztcli '$pmsRoot/admin-checkdb'";
|
||||
else
|
||||
checkdb="$phpcli $basePath/ztcli '$pmsRoot/?m=admin&f=checkdb'";
|
||||
checkdb="$phpcli $basePath/ztcli '$pmsRoot/index.php?m=admin&f=checkdb'";
|
||||
fi
|
||||
echo $checkdb > $basePath/checkdb.sh
|
||||
echo "checkdb.sh ok"
|
||||
@@ -77,7 +77,7 @@ echo "checkdb.sh ok"
|
||||
if [ $requestType == 'PATH_INFO' ]; then
|
||||
win2Unix="$phpcli $basePath/ztcli '$pmsRoot/admin-win2Unix'";
|
||||
else
|
||||
win2Unix="$phpcli $basePath/ztcli '$pmsRoot/?m=admin&f=win2Unix'";
|
||||
win2Unix="$phpcli $basePath/ztcli '$pmsRoot/index.php?m=admin&f=win2Unix'";
|
||||
fi
|
||||
echo $win2Unix > $basePath/win2unix.sh
|
||||
echo "win2unix.sh ok"
|
||||
@@ -86,7 +86,7 @@ echo "win2unix.sh ok"
|
||||
if [ $requestType == 'PATH_INFO' ]; then
|
||||
syncsvn="$phpcli $basePath/ztcli '$pmsRoot/svn-run'";
|
||||
else
|
||||
syncsvn="$phpcli $basePath/ztcli '$pmsRoot/?m=svn&f=run'";
|
||||
syncsvn="$phpcli $basePath/ztcli '$pmsRoot/index.php?m=svn&f=run'";
|
||||
fi
|
||||
echo $syncsvn > $basePath/syncsvn.sh
|
||||
echo "syncsvn.sh ok"
|
||||
@@ -95,7 +95,7 @@ echo "syncsvn.sh ok"
|
||||
if [ $requestType == 'PATH_INFO' ]; then
|
||||
syncgit="$phpcli $basePath/ztcli '$pmsRoot/git-run'";
|
||||
else
|
||||
syncgit="$phpcli $basePath/ztcli '$pmsRoot/?m=git&f=run'";
|
||||
syncgit="$phpcli $basePath/ztcli '$pmsRoot/index.php?m=git&f=run'";
|
||||
fi
|
||||
echo $syncgit > $basePath/syncgit.sh
|
||||
echo "syncgit.sh ok"
|
||||
|
||||
@@ -481,7 +481,7 @@ class helper
|
||||
}
|
||||
}
|
||||
|
||||
if(strpos($config->views, ',' . $viewType . ',') === false) $viewType = $config->default->view;
|
||||
if(isset($viewType) and strpos($config->views, ',' . $viewType . ',') === false) $viewType = $config->default->view;
|
||||
$app->viewType = isset($viewType) ? $viewType : $config->default->view;
|
||||
}
|
||||
}
|
||||
@@ -587,8 +587,9 @@ function getWebRoot()
|
||||
{
|
||||
$url = parse_url($_SERVER['argv'][1]);
|
||||
$path = empty($url['path']) ? '/' : rtrim($url['path'], '/');
|
||||
$path = empty($path) ? '/' : $path;
|
||||
$path = empty($path) ? '/' : preg_replace('/\/www$/', '/www/', $path);
|
||||
}
|
||||
|
||||
return substr($path, 0, (strrpos($path, '/') + 1));
|
||||
}
|
||||
|
||||
|
||||
@@ -1592,6 +1592,12 @@ class router
|
||||
$errorLog = "\n" . date('H:i:s') . " $message in <strong>$file</strong> on line <strong>$line</strong> ";
|
||||
$errorLog .= "when visiting <strong>" . $this->getURI() . "</strong>\n";
|
||||
|
||||
/* If the ip is pulic, hidden the full path of scripts. */
|
||||
if(!defined('IN_SHELL') and !validater::checkIP($this->server->server_addr, 'private'))
|
||||
{
|
||||
$errorLog = str_replace($this->getBasePath(), '', $errorLog);
|
||||
}
|
||||
|
||||
/* Save to log file. */
|
||||
$errorFile = $this->getLogRoot() . 'php.' . date('Ymd') . '.log';
|
||||
$fh = @fopen($errorFile, 'a');
|
||||
|
||||
@@ -122,11 +122,11 @@ class validater
|
||||
*/
|
||||
public static function checkIP($var, $range = 'all')
|
||||
{
|
||||
if($range == 'all') return filter_var($var, FILTER_VALIDATE_IP);
|
||||
if($range == 'all') return filter_var($var, FILTER_VALIDATE_IP);
|
||||
if($range == 'public static') return filter_var($var, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE);
|
||||
if($range == 'private')
|
||||
{
|
||||
if(filter_var($var, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) === false) return $var;
|
||||
if($var == '127.0.0.1' or filter_var($var, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) === false) return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,11 +190,13 @@ class actionModel extends model
|
||||
->andWhere('objectID')->eq($objectID)
|
||||
->orderBy('date, id')->fetchAll('id');
|
||||
$histories = $this->getHistory(array_keys($actions));
|
||||
$this->loadModel('file');
|
||||
foreach($actions as $actionID => $action)
|
||||
{
|
||||
if(strtolower($action->action) == 'svncommited' and isset($commiters[$action->actor])) $action->actor = $commiters[$action->actor];
|
||||
if(strtolower($action->action) == 'gitcommited' and isset($commiters[$action->actor])) $action->actor = $commiters[$action->actor];
|
||||
$action->history = isset($histories[$actionID]) ? $histories[$actionID] : array();
|
||||
$action->comment = $this->file->setImgSize($action->comment, 910, 'comment');
|
||||
$actions[$actionID] = $action;
|
||||
}
|
||||
return $actions;
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
body{background:white; overflow:hidden;}
|
||||
.button-c {width:100px}
|
||||
.btn-group .btn{display: block;width: 80px;text-align: center;margin-top: -1px;}
|
||||
.btn-group .btn:hover{z-index: 9999;}
|
||||
.btn-group .btn i{line-height: 21px;}
|
||||
@@ -1236,6 +1236,7 @@ class bugModel extends model
|
||||
{
|
||||
return $this->dao->findByResolution('postponed')->from(TABLE_BUG)->andWhere('product')->eq($productID)
|
||||
->andWhere('project')->in(array_keys($projects))
|
||||
->andWhere('deleted')->eq(0)
|
||||
->orderBy($orderBy)->page($pager)->fetchAll();
|
||||
}
|
||||
|
||||
@@ -1255,9 +1256,9 @@ class bugModel extends model
|
||||
return $this->dao->select('t1.*, t2.title AS storyTitle')->from(TABLE_BUG)->alias('t1')->leftJoin(TABLE_STORY)->alias('t2')->on('t1.story = t2.id')
|
||||
->where("t2.status = 'active'")
|
||||
->andWhere('t1.product')->eq($productID)
|
||||
->andWhere('t1.deleted')->eq(0)
|
||||
->andWhere('t2.version > t1.storyVersion')
|
||||
->andWhere('t1.project')->in(array_keys($projects))
|
||||
->andWhere('t1.deleted')->eq(0)
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll();
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<td><?php echo $i+1;?></td>
|
||||
<td class='a-left' style='overflow:visible'><?php echo html::select("modules[$i]", $moduleOptionMenu, $moduleID, "class='select-1'");?></td>
|
||||
<td><?php echo html::select("projects[$i]", $projects, $projectID, "class='select-1' onchange='loadProjectBuilds($productID, this.value, $i)'");?></td>
|
||||
<td class='a-left chosenBox' style='overflow:visible' id='buildBox<?php echo $i;?>'><?php echo html::select("openedBuilds[$i][]", $builds, '', "class='select-1' multiple data-placeholder='{$lang->bug->placeholder->chooseBuilds}'");?></td>
|
||||
<td class='a-left chosenBox' style='overflow:visible' id='buildBox<?php echo $i;?>'><?php echo html::select("openedBuilds[$i][]", $builds, '', "class='select-1' multiple data-placeholder=' '");?></td>
|
||||
<td><?php echo html::input("titles[$i]", '', 'class=select-1');?></td>
|
||||
<td><?php echo html::textarea("stepses[$i]", '', "rows='1' class=text-1");?></td>
|
||||
<td><?php echo html::select("types[$i]", $lang->bug->typeList, '');?></td>
|
||||
|
||||
@@ -6,8 +6,8 @@ KindEditor.lang({'savetemplate' : '<?php echo $lang->bug->saveTemplate;?>'});
|
||||
foreach($templates as $key => $template)
|
||||
{
|
||||
echo "<span id='tplBox$template->id'>";
|
||||
echo ' ' . $lang->arrow. " <span id='tplTitleBox$template->id' onclick='setTemplate($template->id)' style='text-decoration:underline; color:blue' class='hand'>$template->title</span>";
|
||||
echo " <a href='javascript:void();' onclick='deleteTemplate($template->id)' class='link-icon'><i class='icon-remove icon-sm'></i></a>";
|
||||
echo '<nobr>' . $lang->arrow. " <span id='tplTitleBox$template->id' onclick='setTemplate($template->id)' style='text-decoration:underline; color:blue' class='hand'>$template->title</span>";
|
||||
echo " <a href='javascript:void();' onclick='deleteTemplate($template->id)' class='link-icon'><i class='icon-remove icon-sm'></i></a></nobr>";
|
||||
echo "<span id='template$template->id' class='hidden'>$template->content</span>";
|
||||
echo '<br /></span>';
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ js::set('page', 'confirmbug');
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='rowhead'><?php echo $lang->comment;?></td>
|
||||
<td><?php echo html::textarea('comment', '', "rows='6' class='w-p98'");?></td>
|
||||
<td><?php echo html::textarea('comment', '', "rows='6' class='w-p94'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' class='a-center'><?php echo html::submitButton() . html::linkButton($lang->goback, $this->server->http_referer);?></td>
|
||||
|
||||
@@ -64,9 +64,9 @@ js::set('refresh', $lang->refresh);
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->bug->steps;?></th>
|
||||
<td>
|
||||
<td style='position:relative'>
|
||||
<div class='w-p85 bd-none padding-zero f-left'><?php echo html::textarea('steps', $steps, "rows='10'");?></div>
|
||||
<div class='bd-none pl-10px f-left' id='tplBox'><?php echo $this->fetch('bug', 'buildTemplates');?></div>
|
||||
<div class='bd-none' id='tplBox' style='position:absolute;top:0px;left:86%'><?php echo $this->fetch('bug', 'buildTemplates');?></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -28,19 +28,15 @@
|
||||
echo html::select('defaultFields[]', $defaultFields, '', 'class=hidden');
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
echo html::commonButton('>', "onclick=\"addItem('allFields', 'customFields')\"") . '<br />';
|
||||
echo html::commonButton('<', "onclick=delItem('customFields')") . '<br />';
|
||||
?>
|
||||
<td class='v-middle btn-group'>
|
||||
<a class='btn' onclick="addItem('allFields', 'customFields')"><i class="icon-chevron-right"></i></a>
|
||||
<a class='btn' onclick="delItem('customFields')"><i class="icon-chevron-left"></i></a>
|
||||
</td>
|
||||
<td><?php echo html::select('customFields[]', $customFields, '', 'class=select-2 size=10 multiple');?></td>
|
||||
<td>
|
||||
<?php
|
||||
echo html::commonButton('+', "onclick=upItem('customFields')") . '<br />';
|
||||
echo html::commonButton('-', "onclick=downItem('customFields')") . '<br />';
|
||||
echo html::commonButton($lang->bug->restoreDefault, "onclick=restoreDefault()") . '<br />';
|
||||
?>
|
||||
<td class='v-middle btn-group'>
|
||||
<a class='btn' onclick="upItem('customFields')"><i class="icon-plus"></i></a>
|
||||
<a class='btn' onclick="downItem('customFields')"><i class="icon-minus"></i></a>
|
||||
<a class='btn' onclick='restoreDefault()'><?php echo $lang->bug->restoreDefault;?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan='4' class='a-center'><?php echo html::submitButton('', 'onclick=selectItem("customFields")');?></td></tr>
|
||||
|
||||
@@ -44,7 +44,7 @@ js::set('oldResolvedBuild' , $bug->resolvedBuild);
|
||||
<tr class='bd-none'><td class='bd-none'>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->bug->legendSteps;?></legend>
|
||||
<?php echo html::textarea('steps', htmlspecialchars($bug->steps), "rows='12' class='area-1'");?>
|
||||
<?php echo html::textarea('steps', $bug->steps, "rows='12' class='area-1'");?>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->bug->legendComment;?></legend>
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
<th class='rowhead'><?php echo $lang->build->linkStoriesAndBugs;?></th>
|
||||
<td>
|
||||
|
||||
<table class='w-p90 bd-none' style='margin-bottom:0px'>
|
||||
<table class='bd-none' style='margin-bottom:0px;width:91%'>
|
||||
<tr>
|
||||
<td class='w-p50'>
|
||||
<td class='w-p50' style='padding-left:0px;padding-right:8px;'>
|
||||
<table class='mainTable'>
|
||||
<caption style='padding-left:3px'><?php echo html::selectAll('story', 'checkbox') . ' ' . $lang->build->linkStories;?></caption>
|
||||
<tr style='border-bottom:none'>
|
||||
@@ -71,7 +71,7 @@
|
||||
</table>
|
||||
</td>
|
||||
|
||||
<td class='w-p50'>
|
||||
<td class='w-p50' style='padding-left:0px;padding-right:0px;'>
|
||||
<table class='mainTable'>
|
||||
<caption style='padding-left:3px'><?php echo html::selectAll('bug', 'checkbox') . ' ' . $lang->build->linkBugs;?></caption>
|
||||
<tr style='border-bottom:none'>
|
||||
|
||||
@@ -44,9 +44,9 @@
|
||||
<th class='rowhead'><?php echo $lang->build->linkStoriesAndBugs;?></th>
|
||||
<td>
|
||||
|
||||
<table class='w-p90 bd-none' style='margin-bottom:0px'>
|
||||
<table class='bd-none' style='margin-bottom:0px;width:91%'>
|
||||
<tr>
|
||||
<td class='w-p50'>
|
||||
<td class='w-p50' style='padding-left:0px;padding-right:8px'>
|
||||
<table class='mainTable bd-none'>
|
||||
<tr style='border-bottom:none'>
|
||||
<td style='border-bottom:none;padding:0px'>
|
||||
@@ -81,7 +81,7 @@
|
||||
</table>
|
||||
</td>
|
||||
|
||||
<td class='w-p50'>
|
||||
<td class='w-p50' style='padding-left:0px;padding-right:0px;'>
|
||||
<table class='mainTable bd-none'>
|
||||
<tr style='border-bottom:none'>
|
||||
<td style='border-bottom:none; padding:0px'>
|
||||
@@ -121,7 +121,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->build->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($build->desc), "rows='15' class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('desc', $build->desc, "rows='15' class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr><td colspan='2' class='a-center'><?php echo html::submitButton() . html::backButton() .html::hidden('project', $build->project);?></td></tr>
|
||||
</table>
|
||||
|
||||
+1
-12
@@ -157,6 +157,7 @@ class commonModel extends model
|
||||
|
||||
if(stripos($method, 'ajaxgetdropmenu') !== false and $this->app->user->account == 'guest') return true;
|
||||
if(stripos($method, 'ajaxgetmatcheditems') !== false and $this->app->user->account == 'guest') return true;
|
||||
if($method == 'ajaxgetdetail' and $this->app->viewType == 'mhtml') return true;
|
||||
if($module == 'misc' and $method == 'qrcode') return true;
|
||||
if($module == 'misc' and $method == 'about') return true;
|
||||
if($module == 'misc' and $method == 'checkupdate') return true;
|
||||
@@ -542,18 +543,6 @@ class commonModel extends model
|
||||
echo html::a(helper::createLink('misc', 'qrCode'), "<i class='icon-mobile-phone icon-large'></i>" . $lang->user->mobileLogin, '', "class='qrCode $color'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Print QR code Link.
|
||||
*
|
||||
* @static
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public static function getQRCodeLink()
|
||||
{
|
||||
echo helper::createLink('misc', 'qrCode');
|
||||
}
|
||||
|
||||
/**
|
||||
* Diff two string. (see phpt)
|
||||
*
|
||||
|
||||
@@ -153,7 +153,7 @@ $(function(){
|
||||
<form method='post' action='<?php echo $this->createLink('action', 'editComment', "actionID=$action->id")?>'>
|
||||
<table align='center' class='table-1'>
|
||||
<tr><td><?php echo html::textarea('lastComment', $action->comment,"rows='5' class='w-p100'");?></td></tr>
|
||||
<tr><td><?php echo html::submitButton() . html::commonButton($lang->goback, "onclick='toggleComment($action->id)' class='button-s'");?></td></tr>
|
||||
<tr><td><?php echo html::submitButton() . html::commonButton($lang->goback, "onclick='toggleComment($action->id)' class='button-b'");?></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,7 @@ $clientTheme = $this->app->getClientTheme();
|
||||
<html xmlns='http://www.w3.org/1999/xhtml'>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
|
||||
<?php
|
||||
echo html::title($title . ' - ' . $lang->zentaoPMS);
|
||||
|
||||
|
||||
@@ -6,4 +6,4 @@ if($config->debug)
|
||||
js::import($jsRoot . 'jquery/treeview/min.js');
|
||||
}
|
||||
?>
|
||||
<script language='javascript'>$(function() { $(".tree").treeview({ persist: "cookie", collapsed: false, unique: false}) })</script>
|
||||
<script language='javascript'>$(function() { $(".tree").treeview({ persist: "cookie", collapsed: true, unique: false}) })</script>
|
||||
|
||||
@@ -43,7 +43,7 @@ $(document).ready(function()
|
||||
</tr>
|
||||
<tr id='contentBox' class='hidden'>
|
||||
<th class='rowhead'><?php echo $lang->doc->content;?></th>
|
||||
<td><?php echo html::textarea('content', htmlspecialchars($doc->content), "class='text-1' rows='8' style='width:90%; height:200px'");?></td>
|
||||
<td><?php echo html::textarea('content', $doc->content, "class='text-1' rows='8' style='width:90%; height:200px'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->doc->digest;?></th>
|
||||
|
||||
@@ -206,9 +206,9 @@ class fileModel extends model
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function setImgSize($content, $maxSize = 0)
|
||||
public function setImgSize($content, $maxSize = 0, $type = 'content')
|
||||
{
|
||||
return str_replace('src="data/upload', 'onload="setImageSize(this,' . $maxSize . ' )" src="data/upload', $content);
|
||||
return str_replace('src="data/upload', 'onload="setImageSize(this,' . $maxSize . ', \'' . $type . '\' )" src="data/upload', $content);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,7 +34,7 @@ function downloadFile(fileID)
|
||||
{
|
||||
if(common::hasPriv('file', 'download')) echo html::a($this->createLink('file', 'download', "fileID=$file->id") . $sessionString, $file->title .'.' . $file->extension, '_blank', "onclick='return downloadFile($file->id)'");
|
||||
common::printLink('file', 'edit', "fileID=$file->id", $lang->file->edit, '', "class='edit'");
|
||||
if(common::hasPriv('file', 'delete')) echo html::commonButton(' x ', "onclick='deleteFile($file->id)'");
|
||||
if(common::hasPriv('file', 'delete')) echo "<a class='link-icon' href='###' onclick='deleteFile($file->id)'><i class='icon-remove'></i></a>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
@@ -129,10 +129,15 @@ class misc extends control
|
||||
public function qrCode()
|
||||
{
|
||||
$loginAPI = common::getSysURL() . $this->config->webRoot;
|
||||
if($this->loadModel('user')->isLogon()) $loginAPI .= "?sid=" . session_ID();
|
||||
$session = $this->loadModel('user')->isLogon() ? '?sid=' . session_id() : '';
|
||||
|
||||
if(!extension_loaded('gd')) die(printf($this->lang->misc->noGDLib, $loginAPI));
|
||||
$ciqrcode = $this->app->loadClass('qrcode');
|
||||
QRcode::png($loginAPI, false, 4, 9);
|
||||
if(!extension_loaded('gd'))
|
||||
{
|
||||
$this->view->noGDLib = sprintf($this->lang->misc->noGDLib, $loginAPI);
|
||||
die($this->display());
|
||||
}
|
||||
|
||||
$this->app->loadClass('qrcode');
|
||||
QRcode::png($loginAPI . $session, false, 4, 9);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,5 +46,6 @@ $lang->misc->zentao->service['install'] = 'Install service';
|
||||
$lang->misc->zentao->service['fixissue'] = 'Issue support';
|
||||
$lang->misc->zentao->service['servicemore']= 'More...';
|
||||
|
||||
$lang->misc->noGDLib = "the entrance of mobile browser: %s.";
|
||||
$lang->misc->mobile = "Mobile access";
|
||||
$lang->misc->noGDLib = "Please visit:<strong>%s</strong>.";
|
||||
$lang->misc->copyright = "Copyright ©2009-2013 <a href='http://www.cnezsoft.com' target='_blank'>Nature EasySoft Network Tecnology Co.ltd, QingDao, China</a>";
|
||||
|
||||
@@ -46,5 +46,6 @@ $lang->misc->zentao->service['install'] = '禅道安装服务';
|
||||
$lang->misc->zentao->service['fixissue'] = '禅道问题解决';
|
||||
$lang->misc->zentao->service['servicemore']= '更多服务...';
|
||||
|
||||
$lang->misc->noGDLib = "请用手机浏览器直接访问:%s";
|
||||
$lang->misc->mobile = "手机访问";
|
||||
$lang->misc->noGDLib = "请用手机浏览器访问:<strong>%s</strong>";
|
||||
$lang->misc->copyright = "版权所有 ©2009-2013 <a href='http://www.cnezsoft.com' target='_blank'>青岛易软天创网络科技有限公司</a>";
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<table class='table-1' style='margin-top:100px;'>
|
||||
<caption><?php echo $lang->misc->mobile?></caption>
|
||||
<tr><td><?php echo $noGDLib?></td></tr>
|
||||
</table>
|
||||
<?php include '../../common/view/footer.lite.html.php';?>
|
||||
@@ -16,7 +16,7 @@
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<th class='w-id'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-80px'><?php echo $lang->project->code;?></th>
|
||||
<th class='w-160px'><?php echo $lang->project->code;?></th>
|
||||
<th><?php echo $lang->project->name;?></th>
|
||||
<th class='w-date'><?php echo $lang->project->begin;?></th>
|
||||
<th class='w-date'><?php echo $lang->project->end;?></th>
|
||||
|
||||
@@ -516,8 +516,14 @@ class product extends control
|
||||
*/
|
||||
public function ajaxGetMatchedItems($keywords, $module, $method, $extra)
|
||||
{
|
||||
$products = $this->dao->select('*')->from(TABLE_PRODUCT)->where('deleted')->eq(0)->andWhere('name')->like("%$keywords%")->orderBy('code')->fetchAll();
|
||||
foreach($products as $key => $product)
|
||||
{
|
||||
if(!$this->product->checkPriv($product)) unset($products[$key]);
|
||||
}
|
||||
|
||||
$this->view->link = $this->product->getProductLink($module, $method, $extra);
|
||||
$this->view->products = $this->dao->select('*')->from(TABLE_PRODUCT)->where('deleted')->eq(0)->andWhere('name')->like("%$keywords%")->orderBy('code')->fetchAll();
|
||||
$this->view->products = $products;
|
||||
$this->view->keywords = $keywords;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -371,7 +371,12 @@ class productModel extends model
|
||||
}
|
||||
|
||||
ksort($roadmap);
|
||||
return $roadmap;
|
||||
|
||||
/* Get last 5 roadmap. */
|
||||
$lastKeys = array_slice(array_keys($roadmap), -5);
|
||||
foreach($lastKeys as $key) $lastRoadmap[$key] = $roadmap[$key];
|
||||
|
||||
return $lastRoadmap;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<?php js::set('module', $module);?>
|
||||
<?php js::set('method', $method);?>
|
||||
<?php js::set('extra', $extra);?>
|
||||
<input type='text' class='gray' id='search' value='' onkeyup='searchItems(this.value, "product", productID, module, method, extra)' placeholder='<?php echo $this->app->loadLang('search')->search->common;?>'>
|
||||
<input type='text' class='gray' id='search' value='' onkeyup='searchItems(this.value, "product", productID, module, method, extra)' autocomplete="off" placeholder='<?php echo $this->app->loadLang('search')->search->common;?>' />
|
||||
|
||||
<div id='searchResult'>
|
||||
<div id='defaultMenu' class='f-left'>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->product->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($product->desc), "rows='8' class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('desc', $product->desc, "rows='8' class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->product->acl;?></th>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->productplan->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($plan->desc), "rows='10' class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('desc', $plan->desc, "rows='10' class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' class='a-center'>
|
||||
|
||||
@@ -1645,8 +1645,14 @@ class project extends control
|
||||
*/
|
||||
public function ajaxGetMatchedItems($keywords, $module, $method, $extra)
|
||||
{
|
||||
$projects = $this->dao->select('*')->from(TABLE_PROJECT)->where('deleted')->eq(0)->andWhere('name')->like("%$keywords%")->orderBy('code')->fetchAll();
|
||||
foreach($projects as $key => $project)
|
||||
{
|
||||
if(!$this->project->checkPriv($project)) unset($projects[$key]);
|
||||
}
|
||||
|
||||
$this->view->link = $this->project->getProjectLink($module, $method, $extra);
|
||||
$this->view->projects = $this->dao->select('*')->from(TABLE_PROJECT)->where('deleted')->eq(0)->andWhere('name')->like("%$keywords%")->orderBy('code')->fetchAll();
|
||||
$this->view->projects = $projects;
|
||||
$this->view->keywords = $keywords;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<?php js::set('module', $module);?>
|
||||
<?php js::set('method', $method);?>
|
||||
<?php js::set('extra', $extra);?>
|
||||
<input type='text' class='gray' id='search' value='' onkeyup='searchItems(this.value, "project", projectID, module, method, extra)' placeholder='<?php echo $this->app->loadLang('search')->search->common;?>'>
|
||||
<input type='text' class='gray' id='search' value='' onkeyup='searchItems(this.value, "project", projectID, module, method, extra)' autocomplete="off" placeholder='<?php echo $this->app->loadLang('search')->search->common;?>' />
|
||||
|
||||
<div id='searchResult'>
|
||||
<div id='defaultMenu' class='f-left'>
|
||||
|
||||
@@ -71,11 +71,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->project->goal;?></th>
|
||||
<td><?php echo html::textarea('goal', htmlspecialchars($project->goal), "rows='6' class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('goal', $project->goal, "rows='6' class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->project->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($project->desc), "rows='6' class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('desc', $project->desc, "rows='6' class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->project->acl;?></th>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->release->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($release->desc), "rows='20' class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('desc', $release->desc, "rows='20' class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' class='a-center'><?php echo html::submitButton() . html::backButton() . html::hidden('product', $release->product);?></td>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
.select-1 {width:80%}
|
||||
.text-2{margin-bottom:2px; width:123px}
|
||||
.select-2{margin-bottom:2px}
|
||||
.date{width:104px}
|
||||
#searchform input.date{width:110px}
|
||||
</style>
|
||||
<script language='Javascript'>
|
||||
|
||||
@@ -187,7 +187,7 @@ function deleteQuery()
|
||||
foreach($fieldParams as $fieldName => $param)
|
||||
{
|
||||
echo "<span id='box$fieldName'>";
|
||||
if($param['control'] == 'select') echo html::select($fieldName, $param['values'], '', 'class=select-2 searchSelect');
|
||||
if($param['control'] == 'select') echo html::select($fieldName, $param['values'], '', "class='select-2 searchSelect'");
|
||||
if($param['control'] == 'input') echo html::input($fieldName, '', "class='text-2 searchInput'");
|
||||
echo '</span>';
|
||||
}
|
||||
@@ -207,7 +207,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
for($i = 1; $i <= $groupItems; $i ++)
|
||||
{
|
||||
$spanClass = $i == 1 ? 'inline' : 'hidden';
|
||||
echo "<span id='searchbox$fieldNO' class='$spanClass'>";
|
||||
echo "<div><span id='searchbox$fieldNO' class='$spanClass'>";
|
||||
|
||||
/* Get params of current field. */
|
||||
$currentField = $formSession["field$fieldNO"];
|
||||
@@ -215,7 +215,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
|
||||
/* Print and or. */
|
||||
if($i == 1) echo "<span id='searchgroup1'><strong>{$lang->search->group1}</strong></span>" . html::hidden("andOr$fieldNO", 'AND');
|
||||
if($i > 1) echo "<br />" . html::select("andOr$fieldNO", $lang->search->andor, $formSession["andOr$fieldNO"]);
|
||||
if($i > 1) echo html::select("andOr$fieldNO", $lang->search->andor, $formSession["andOr$fieldNO"]);
|
||||
|
||||
/* Print field. */
|
||||
echo html::select("field$fieldNO", $searchFields, $formSession["field$fieldNO"], "onchange='setField(this.value, $fieldNO)'");
|
||||
@@ -235,7 +235,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
echo '</span>';
|
||||
|
||||
$fieldNO ++;
|
||||
echo '</span>';
|
||||
echo '</span></div>';
|
||||
}
|
||||
?>
|
||||
</nobr>
|
||||
@@ -247,7 +247,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
for($i = 1; $i <= $groupItems; $i ++)
|
||||
{
|
||||
$spanClass = $i == 1 ? 'inline' : 'hidden';
|
||||
echo "<span id='searchbox$fieldNO' class='$spanClass'>";
|
||||
echo "<div><span id='searchbox$fieldNO' class='$spanClass'>";
|
||||
|
||||
/* Get params of current field. */
|
||||
$currentField = $formSession["field$fieldNO"];
|
||||
@@ -255,7 +255,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
|
||||
/* Print and or. */
|
||||
if($i == 1) echo "<span id='searchgroup2'><strong>{$lang->search->group2}</strong></span>" . html::hidden("andOr$fieldNO", 'AND');
|
||||
if($i > 1) echo "<br />" . html::select("andOr$fieldNO", $lang->search->andor, $formSession["andOr$fieldNO"]);
|
||||
if($i > 1) echo html::select("andOr$fieldNO", $lang->search->andor, $formSession["andOr$fieldNO"]);
|
||||
|
||||
/* Print field. */
|
||||
echo html::select("field$fieldNO", $searchFields, $formSession["field$fieldNO"], "onchange='setField(this.value, $fieldNO)'");
|
||||
@@ -276,12 +276,12 @@ foreach($fieldParams as $fieldName => $param)
|
||||
echo '</span>';
|
||||
|
||||
$fieldNO ++;
|
||||
echo '</span>';
|
||||
echo '</span></div>';
|
||||
}
|
||||
?>
|
||||
</nobr>
|
||||
</td>
|
||||
<td width='100'>
|
||||
<td width='180' class='a-center'>
|
||||
<nobr>
|
||||
<?php
|
||||
echo html::hidden('module', $module);
|
||||
@@ -293,7 +293,7 @@ foreach($fieldParams as $fieldName => $param)
|
||||
?>
|
||||
</nobr>
|
||||
</td>
|
||||
<td width='250' class='a-center'>
|
||||
<td width='150' class='a-center'>
|
||||
<?php
|
||||
echo html::select('queryID', $queries, $queryID, 'class=select-1 onchange=executeQuery(this.value)');
|
||||
if(common::hasPriv('search', 'deleteQuery')) echo html::a('javascript:deleteQuery()', '<i class="link-icon icon-remove"></i>', '', '');
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
#plan {width:245px}
|
||||
#mailto {width:85%}
|
||||
#mailto {width:90.3%}
|
||||
select {border:1px solid #ccc}
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->story->spec;?></th>
|
||||
<td><?php echo html::textarea('spec', htmlspecialchars($story->spec), 'rows=8 class="area-1"');?><br /> <?php echo $lang->story->specTemplate;?></td>
|
||||
<td><?php echo html::textarea('spec', $story->spec, 'rows=8 class="area-1"');?><br /> <?php echo $lang->story->specTemplate;?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->story->verify;?></th>
|
||||
<td><?php echo html::textarea('verify', htmlspecialchars($story->verify), 'rows=6 class="area-1"');?></td>
|
||||
<td><?php echo html::textarea('verify', $story->verify, 'rows=6 class="area-1"');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->story->comment;?></th>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->story->verify;?></legend>
|
||||
<div><?php echo htmlspecialchars($story->verify);?></div>
|
||||
<div><?php echo $story->verify;?></div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->story->comment;?></legend>
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<div id='titlebar'>
|
||||
<div id='main' <?php if($story->deleted) echo "class='deleted'";?>>STORY #<?php echo $story->id . ' ' . $story->title;?>
|
||||
<?php if($story->version > 1):?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.button-c {padding:2px}
|
||||
#mailto {width:85%}
|
||||
|
||||
#preview{display: inline-block; line-height: 24px;position: relative;top: -10px;+top:0;}
|
||||
caption .f-right a{color:red}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
select.select-1,#module,#mailto {width:230px}
|
||||
.text-1 {width:220px}
|
||||
#estStarted,#realStarted,#deadline {width:200px}
|
||||
select.select-1,#module,#mailto {width:220px}
|
||||
.text-1 {width:213px}
|
||||
#estStarted,#realStarted,#deadline {width:190px}
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<tr class='bd-none'><td class='bd-none'>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->task->desc;?></legend>
|
||||
<?php echo html::textarea('desc', htmlspecialchars($task->desc), "rows='8' class='area-1'");?>
|
||||
<?php echo html::textarea('desc', $task->desc, "rows='8' class='area-1'");?>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend><?php echo $lang->comment;?></legend>
|
||||
|
||||
@@ -11,7 +11,7 @@ function browseBySearch(active)
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
setModal4List('runCase', 'caseList', function(){$(".results").colorbox({width:900, height:550, iframe:true, transition:'none'});});
|
||||
setModal4List('runCase', 'caseList', function(){$(".results").colorbox({width:1024, height:550, iframe:true, transition:'none'});}, 1024);
|
||||
$('#' + browseType + 'Tab').addClass('active');
|
||||
$('#module' + moduleID).addClass('active');
|
||||
if(browseType == 'bysearch') ajaxGetSearchForm();
|
||||
@@ -19,5 +19,5 @@ $(document).ready(function()
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$(".results").colorbox({width:900, height:550, iframe:true, transition:'none'});
|
||||
$(".results").colorbox({width:1024, height:550, iframe:true, transition:'none'});
|
||||
})
|
||||
|
||||
@@ -20,7 +20,7 @@ function browseBySearch(active)
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
setModal4List('runCase', 'caseList', function(){$(".results").colorbox({width:900, height:550, iframe:true, transition:'none'});});
|
||||
setModal4List('runCase', 'caseList', function(){$(".results").colorbox({width:1024, height:550, iframe:true, transition:'none'});}, 1024);
|
||||
$('#' + browseType + 'Tab').addClass('active');
|
||||
$('#module' + moduleID).addClass('active');
|
||||
if(browseType == 'bysearch') ajaxGetSearchForm();
|
||||
@@ -28,7 +28,7 @@ $(document).ready(function()
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("a.iframe").colorbox({width:900, height:550, iframe:true, transition:'none'});
|
||||
$("a.iframe").colorbox({width:1024, height:550, iframe:true, transition:'none'});
|
||||
$('#' + browseType + 'Tab').addClass('active');
|
||||
$('#module' + moduleID).addClass('active');
|
||||
});
|
||||
|
||||
@@ -50,11 +50,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->testtask->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($task->desc), "rows=10 class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('desc', $task->desc, "rows=10 class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->testtask->report;?></th>
|
||||
<td><?php echo html::textarea('report', htmlspecialchars($task->report), "rows=10 class='area-1'");?></td>
|
||||
<td><?php echo html::textarea('report', $task->report, "rows=10 class='area-1'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' class='a-center'><?php echo html::submitButton() . html::backButton();?> </td>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->todo->desc;?></th>
|
||||
<td><?php echo html::textarea('desc', htmlspecialchars($todo->desc), "rows=8 class=area-1");?></td>
|
||||
<td><?php echo html::textarea('desc', $todo->desc, "rows=8 class=area-1");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='rowhead'><?php echo $lang->todo->status;?></th>
|
||||
|
||||
@@ -702,6 +702,8 @@ class user extends control
|
||||
$this->view->demoUsers = $demoUsers;
|
||||
}
|
||||
|
||||
$this->app->loadLang('misc');
|
||||
$this->view->noGDLib = sprintf($this->lang->misc->noGDLib, common::getSysURL() . $this->config->webRoot);
|
||||
$this->view->title = $this->lang->user->login;
|
||||
$this->view->referer = $this->referer;
|
||||
$this->view->s = zget($this->config->global, 'sn');
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
html,body{background-color: #036;}
|
||||
#container{margin: 4% auto 0 auto;}
|
||||
#logo{height: 170px;background:url('theme/default/images/main/zt-logo.png') center no-repeat;}
|
||||
#container{margin: 10% auto 0 auto;}
|
||||
#login-panel{margin: 0 auto;width: 540px;min-height: 280px;background-color: #fff;border: 1px solid #dfdfdf;-moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px;-moz-box-shadow:0px 0px 30px rgba(0,0,0,0.75); -webkit-box-shadow:0px 0px 30px rgba(0,0,0,0.75); box-shadow:0px 0px 30px rgba(0,0,0,0.75);}
|
||||
#login-panel .panel-head{min-height: 70px;background-color: #edf3fe;border-bottom: 1px solid #dfdfdf;position: relative;}
|
||||
#login-panel .panel-head h3{margin: 0 0 0 20px;padding: 0;line-height: 70px;}
|
||||
#login-panel .panel-head .nav{float: right;position: absolute;right: 0;top: 0;padding: 0;}
|
||||
#login-panel .panel-head .nav .btn{clear: both;display: block;margin: 10px 10px 0 0;position: absolute;top: 6px;right: 6px;border-color: #ccc;}
|
||||
#login-panel .panel-head .nav #mobile{background-color: #0053a6;border-color: #036;color: #fff;height: 28px;}
|
||||
#login-panel .panel-head .nav #mobile:hover{background-color: #036;}
|
||||
#login-panel .panel-head .nav #mobile i{margin: 0;padding: 0;}
|
||||
#login-panel .panel-head .nav #lang{right: 60px;padding: 8px;width: auto;word-spacing:nowrap; overflow:visible;min-width: 80px;text-align: center;}
|
||||
#login-panel #mobile{height: 28px;}
|
||||
#login-panel #mobile i{margin: 0;padding: 0;}
|
||||
#login-panel #lang{right: 60px;padding: 8px;width: auto;word-spacing:nowrap; overflow:visible;min-width: 80px;text-align: center;}
|
||||
#login-panel .panel-content{padding-left: 150px;background:url('theme/default/images/main/zt-logo.png') 50px top no-repeat;}
|
||||
#login-panel .panel-content table{border: none;width: 300px;margin: 20px auto;}
|
||||
#login-panel .panel-content table td{padding: 6px;}
|
||||
#login-panel .panel-content table td.attr{font-weight: bold;text-align: right;vertical-align: middle;}
|
||||
#login-panel .panel-content input.text-2{width: 212px;}
|
||||
#login-panel .panel-content .button-s{width: 120px;}
|
||||
#login-panel .panel-content .button-s{width: 80px;}
|
||||
#login-panel .panel-content .button-c{width: 88px;margin-right: 0;}
|
||||
#login-panel .panel-foot{text-align: center;padding: 15px;line-height: 2em;background-color: #e5e5e5;border-top: 1px solid #dfdfdf;}
|
||||
.droppanel{display: none;margin: 0;padding: 4px 0;position: absolute;left: 0;top: 55px;background-color: #fff;-moz-box-shadow:0px 2px 6px rgba(0,0,0,0.5); -webkit-box-shadow:0px 2px 6px rgba(0,0,0,0.5); box-shadow:0px 2px 6px rgba(0,0,0,0.5);z-index: 9999;}
|
||||
|
||||
@@ -54,7 +54,7 @@ $lang->user->update = "Upgrade";
|
||||
$lang->user->delete = "Delete";
|
||||
$lang->user->browse = "Browse";
|
||||
$lang->user->login = "Login";
|
||||
$lang->user->mobileLogin = "Mobile Login";
|
||||
$lang->user->mobileLogin = "Mobile";
|
||||
$lang->user->userView = "User view";
|
||||
$lang->user->editProfile = "Edit profile";
|
||||
$lang->user->editPassword = "Change password";
|
||||
@@ -69,7 +69,7 @@ $lang->user->asGuest = "Guest";
|
||||
$lang->user->goback = "Back";
|
||||
$lang->user->allUsers = 'All users';
|
||||
$lang->user->deleted = '(deleted)';
|
||||
$lang->user->select = '--select user--';
|
||||
$lang->user->select = 'Select user';
|
||||
|
||||
$lang->user->profile = 'Profile';
|
||||
$lang->user->project = 'Project';
|
||||
|
||||
@@ -69,7 +69,7 @@ $lang->user->asGuest = "游客访问";
|
||||
$lang->user->goback = "返回前一页";
|
||||
$lang->user->allUsers = '全部用户';
|
||||
$lang->user->deleted = '(已删除)';
|
||||
$lang->user->select = '--请选择用户--';
|
||||
$lang->user->select = '请选择用户';
|
||||
|
||||
$lang->user->profile = '档案';
|
||||
$lang->user->project = '项目';
|
||||
|
||||
@@ -12,7 +12,6 @@ include '../../common/view/header.lite.html.php';
|
||||
?>
|
||||
|
||||
<div id="container">
|
||||
<div id="logo"></div>
|
||||
<div id="login-panel">
|
||||
<div class="panel-head">
|
||||
<h3><?php printf($lang->welcome, $app->company->name);?></h3>
|
||||
@@ -26,7 +25,13 @@ include '../../common/view/header.lite.html.php';
|
||||
</ul>
|
||||
<div class="droppanel" id="qrcode">
|
||||
<h4><i class="icon-mobile-phone icon-large"></i> <?php echo $lang->user->mobileLogin ?></h4>
|
||||
<img src="<?php commonModel::getQRCodeLink(); ?>" alt="">
|
||||
<?php if(extension_loaded('gd')):?>
|
||||
<img src='<?php echo $this->createLink('misc', 'qrcode');?>' />
|
||||
<?php else:?>
|
||||
<table width='300' class='mt-10px bd-none'>
|
||||
<tr><td><?php echo $noGDLib;?></td></tr>
|
||||
</table>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -46,7 +51,8 @@ include '../../common/view/header.lite.html.php';
|
||||
<td id="keeplogin"><?php echo html::checkBox('keepLogin', $lang->user->keepLogin, $keepLogin);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' align='center'>
|
||||
<td></td>
|
||||
<td>
|
||||
<?php
|
||||
echo html::submitButton($lang->login);
|
||||
if($app->company->guest) echo html::linkButton($lang->user->asGuest, $this->createLink($config->default->module));
|
||||
|
||||
@@ -12,8 +12,9 @@
|
||||
#webapps li {float:left; width:25%; list-style:none}
|
||||
#webapps li table {border:0px; width:95%; border:1px solid #ddd;}
|
||||
#webapps li table .webapp-name{font-size:14px; color:#039; padding-top:2px;}
|
||||
#webapps li table .webapp-icon{padding:5px;}
|
||||
#webapps li table .webapp-icon{padding:5px;vertical-align:middle;text-align:center}
|
||||
#webapps li table .webapp-info{color:#888; padding-top:2px; height:32px; white-space:pre-wrap;}
|
||||
#webapps li table .webapp-actions{padding-top:5px}
|
||||
|
||||
small{font-weight:normal}
|
||||
#webapps .button-c{min-width: 0;}
|
||||
#webapps .button-c{min-width: 0;}
|
||||
|
||||
@@ -26,7 +26,7 @@ function toggleShowapp(webappID, webappName)
|
||||
height = document.documentElement.clientHeight - 110;
|
||||
if(url[webappID] == undefined) url[webappID] = $('#useapp' + webappID).attr('href');
|
||||
$('#useapp' + webappID).attr('href', '#iframe' + webappID);
|
||||
var html = "<tr id='iframe" + webappID + "'><td><p>" + webappName + "<span class='f-right'><button class='button-c' onclick='toggleShowapp(" + webappID + ", \" " + webappName + "\")'>" + packup + "</button></sapn></p><iframe src='" + url[webappID] + "' height='" + height + "' width='100%' style='border:1px solid #999;'></iframe></td></tr>";
|
||||
var html = "<tr id='iframe" + webappID + "'><td><p>" + webappName + "<span class='f-right'><button class='button-c' onclick='toggleShowapp(" + webappID + ", \" " + webappName + "\")'>" + packup + "</button></span></p><iframe src='" + url[webappID] + "' height='" + height + "' width='100%' style='border:1px solid #999;'></iframe></td></tr>";
|
||||
$('#webapps').parent().parent().after(html);
|
||||
show[webappID] = true;
|
||||
}
|
||||
|
||||
@@ -223,6 +223,7 @@ class webappModel extends model
|
||||
$data = $this->getAppInfoByAPI($webappID);
|
||||
$webapp = $data->webapp;
|
||||
|
||||
$installWebapp = new stdclass();
|
||||
$installWebapp->appid = $webapp->id;
|
||||
$installWebapp->module = $this->post->module;
|
||||
$installWebapp->name = $webapp->name;
|
||||
|
||||
@@ -26,25 +26,27 @@
|
||||
<tr><td valign='top'><div class='webapp-info' title='<?php echo $webapp->abstract?>'><?php echo empty($webapp->abstract) ? ' ' : $webapp->abstract?></div></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php
|
||||
$url = $webapp->addType == 'custom' ? $webapp->url : $config->webapp->url . "/webapp-showapp-{$webapp->appid}.html";
|
||||
$method = '';
|
||||
$popup = '';
|
||||
$target = '_self';
|
||||
if($webapp->target == 'blank') $target = '_blank';
|
||||
if($webapp->target == 'iframe')$method = "toggleShowapp($webapp->id, \"$webapp->name\");";
|
||||
if($webapp->target == 'popup')
|
||||
{
|
||||
$width = 0;
|
||||
$height = 0;
|
||||
if($webapp->size) list($width, $height) = explode('x', $webapp->size);
|
||||
$method = "popup($width, $height);";
|
||||
$popup = 'popup';
|
||||
}
|
||||
echo html::a($url, $lang->webapp->useapp, $target, "id='useapp$webapp->id' class='button-c $popup' onclick='addView($webapp->id);$method'");
|
||||
common::printLink('webapp', 'view', "webappID=$webapp->id", $lang->webapp->view, '', "class='button-c webapp'");
|
||||
common::printLink('webapp', 'uninstall', "webapp=$webapp->id", $lang->webapp->uninstall, 'hiddenwin', "class='button-c'");
|
||||
?>
|
||||
<div class='webapp-actions'>
|
||||
<?php
|
||||
$url = $webapp->addType == 'custom' ? $webapp->url : $config->webapp->url . "/webapp-showapp-{$webapp->appid}.html";
|
||||
$method = '';
|
||||
$popup = '';
|
||||
$target = '_self';
|
||||
if($webapp->target == 'blank') $target = '_blank';
|
||||
if($webapp->target == 'iframe')$method = "toggleShowapp($webapp->id, \"$webapp->name\");";
|
||||
if($webapp->target == 'popup')
|
||||
{
|
||||
$width = 0;
|
||||
$height = 0;
|
||||
if($webapp->size) list($width, $height) = explode('x', $webapp->size);
|
||||
$method = "popup($width, $height);";
|
||||
$popup = 'popup';
|
||||
}
|
||||
echo html::a($url, $lang->webapp->useapp, $target, "id='useapp$webapp->id' class='button-c $popup' onclick='addView($webapp->id);$method'");
|
||||
common::printLink('webapp', 'view', "webappID=$webapp->id", $lang->webapp->view, '', "class='button-c webapp'");
|
||||
common::printLink('webapp', 'uninstall', "webapp=$webapp->id", $lang->webapp->uninstall, 'hiddenwin', "class='button-c'");
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -48,28 +48,30 @@
|
||||
<tr><td valign='top'><div class='webapp-info' title='<?php echo $webapp->abstract?>'><?php echo empty($webapp->abstract) ? ' ' : $webapp->abstract?></div></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php
|
||||
$url = $webapp->url;
|
||||
$method = '';
|
||||
$popup = '';
|
||||
$target = '_self';
|
||||
if($webapp->target == 'popup')
|
||||
{
|
||||
$width = 0;
|
||||
$height = 0;
|
||||
if($webapp->size) list($width, $height) = explode('x', $webapp->size);
|
||||
$method = "popup($width, $height);";
|
||||
$popup = 'popup';
|
||||
}
|
||||
else
|
||||
{
|
||||
$method = "popup(1024, 600);";
|
||||
$popup = 'popup';
|
||||
}
|
||||
echo isset($installeds[$webapp->id]) ? html::commonButton($lang->webapp->installed, "disabled='disabled' style='color:gray'") : html::a(inLink('install', "webappID={$webapp->id}"), $lang->webapp->install, '_self', "class='button-c iframe'");
|
||||
common::printLink('webapp', 'view', "webappID=$webapp->id&type=api", $lang->webapp->view, '', "class='button-c apiapp'");
|
||||
echo html::a($url, $lang->webapp->preview, '', "id='useapp$webapp->id' class='button-c $popup' onclick='$method'");
|
||||
?>
|
||||
<div class='webapp-actions'>
|
||||
<?php
|
||||
$url = $webapp->url;
|
||||
$method = '';
|
||||
$popup = '';
|
||||
$target = '_self';
|
||||
if($webapp->target == 'popup')
|
||||
{
|
||||
$width = 0;
|
||||
$height = 0;
|
||||
if($webapp->size) list($width, $height) = explode('x', $webapp->size);
|
||||
$method = "popup($width, $height);";
|
||||
$popup = 'popup';
|
||||
}
|
||||
else
|
||||
{
|
||||
$method = "popup(1024, 600);";
|
||||
$popup = 'popup';
|
||||
}
|
||||
echo isset($installeds[$webapp->id]) ? html::commonButton($lang->webapp->installed, "disabled='disabled' style='color:gray'") : html::a(inLink('install', "webappID={$webapp->id}"), $lang->webapp->install, '_self', "class='button-c iframe'");
|
||||
common::printLink('webapp', 'view', "webappID=$webapp->id&type=api", $lang->webapp->view, '', "class='button-c apiapp'");
|
||||
echo html::a($url, $lang->webapp->preview, '', "id='useapp$webapp->id' class='button-c $popup' onclick='$method'");
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ if(!isset($config->installed) or !$config->installed) die(header('location: inst
|
||||
|
||||
/* Detect mobile. */
|
||||
$mobile = $app->loadClass('mobile');
|
||||
if(!$mobile->isTablet())
|
||||
if(!$mobile->isTablet() and $mobile->isMobile())
|
||||
{
|
||||
$config->default->view = 'mhtml';
|
||||
helper::setViewType();
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -54,7 +54,7 @@ $.extend(
|
||||
var i = triggered.push(false);
|
||||
|
||||
/* Create the error message. */
|
||||
var errorMSG = '<div id="' + errorLabel + '" class="text-error">';
|
||||
var errorMSG = '<div id="' + errorLabel + '" class="text-error red">';
|
||||
errorMSG += $.type(value) == 'string' ? value : value.join(';');
|
||||
errorMSG += '</div>';
|
||||
|
||||
|
||||
+22
-10
@@ -515,19 +515,29 @@ function setFormAction(actionLink, hiddenwin)
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function setImageSize(image, maxWidth)
|
||||
function setImageSize(image, maxWidth, type)
|
||||
{
|
||||
/* If not set maxWidth, set it auto. */
|
||||
if(!maxWidth)
|
||||
{
|
||||
bodyWidth = $('body').width();
|
||||
maxWidth = bodyWidth - 450; // The side bar's width is 336, and add some margins.
|
||||
maxWidth = bodyWidth - 470; // The side bar's width is 336, and add some margins.
|
||||
}
|
||||
$('.content img').each(function()
|
||||
if(type == 'comment')
|
||||
{
|
||||
if($(this).width() > maxWidth) $(this).attr('width', maxWidth);
|
||||
});
|
||||
$(image).wrap('<a href="' + $(image).attr('src') + '" target="_blank"></a>')
|
||||
$('#actionbox img').each(function()
|
||||
{
|
||||
if($(this).width() > maxWidth) $(this).attr('width', maxWidth);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
$('.content img').each(function()
|
||||
{
|
||||
if($(this).width() > maxWidth) $(this).attr('width', maxWidth);
|
||||
});
|
||||
}
|
||||
$(image).wrap('<a href="' + $(image).attr('src') + '" target="_blank"></a>');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -820,12 +830,14 @@ function selectItem(SelectID)
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function setModal4List(colorboxClass, replaceID, callback)
|
||||
function setModal4List(colorboxClass, replaceID, callback, width, height)
|
||||
{
|
||||
if(typeof(width) == 'undefined') width = 900
|
||||
if(typeof(height) == 'undefined') height = 500
|
||||
$('.' + colorboxClass).colorbox(
|
||||
{
|
||||
width: 900,
|
||||
height: 500,
|
||||
width: width,
|
||||
height: height,
|
||||
iframe: true,
|
||||
transition: 'none',
|
||||
|
||||
@@ -840,7 +852,7 @@ function setModal4List(colorboxClass, replaceID, callback)
|
||||
$('#tmpDiv').load(link + ' #' + replaceID, function()
|
||||
{
|
||||
$('#tmpDiv').replaceWith($('#tmpDiv').html());
|
||||
setModal4List(colorboxClass, replaceID, callback);
|
||||
setModal4List(colorboxClass, replaceID, callback, width, height);
|
||||
|
||||
try{$('.colored').colorize();}catch(err){}
|
||||
$('tfoot td').css('background', 'white').unbind('click').unbind('hover');
|
||||
|
||||
@@ -7,13 +7,14 @@
|
||||
*display: inline;
|
||||
}
|
||||
.chzn-container .chzn-drop {
|
||||
background: #fff;
|
||||
background: #fafafa;
|
||||
border: 1px solid #aaa;
|
||||
border-top: 0;
|
||||
position: absolute;
|
||||
top: 29px;
|
||||
left: 0;
|
||||
z-index: 1010;
|
||||
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
/* @end */
|
||||
|
||||
@@ -23,19 +24,23 @@
|
||||
-moz-background-clip : padding;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip : padding-box;
|
||||
border: 1px solid #aaaaaa;
|
||||
border: 1px solid #ccc;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
position: relative;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
padding: 0 0 0 8px;
|
||||
padding:3px 4px;
|
||||
color: #444444;
|
||||
text-decoration: none;
|
||||
-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||
}
|
||||
.chzn-container-single .chzn-single.chzn-single-with-drop{border-color: #2564A3;}
|
||||
.chzn-container-single .chzn-single.chzn-single-with-drop{border-color: #aaa;background-color: #fafafa;box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);}
|
||||
|
||||
.chzn-container-single .chzn-single div {
|
||||
position: absolute;
|
||||
@@ -59,13 +64,7 @@
|
||||
z-index: 1010;
|
||||
}
|
||||
.chzn-container-single .chzn-search input {
|
||||
background: #fff url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px;
|
||||
background: url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
|
||||
background: url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: url('./images/chosen/chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
|
||||
background: #fff url('./images/chosen/chosen-sprite.png') no-repeat 100% -21px;
|
||||
margin: 1px 0;
|
||||
padding: 4px 20px 4px 5px;
|
||||
outline: 0;
|
||||
@@ -214,7 +213,6 @@
|
||||
/* @end */
|
||||
|
||||
/* Product and project seleteGroup. */
|
||||
.chzn-container-single .chzn-single div b {background: url('./images/chosen/chosen-sprite.png') no-repeat 0 -2px;}
|
||||
|
||||
#navbar ul .chzn-results li {margin:0; padding:0px 0px 0px 5px; float:none; text-align:left; list-style-type:none; font-size:14px}
|
||||
#navbar ul .chzn-results .active-result {padding:0px 0px 0px 25px;}
|
||||
@@ -224,4 +222,4 @@
|
||||
#productID_chzn .chzn-single, #projectID_chzn .chzn-single {background-color: #E5e5e5; border: none; text-align:left; padding:0}
|
||||
#productID_chzn, #projectID_chzn{border:1px solid #ccc; margin-top:3px; padding-left:5px}
|
||||
|
||||
#story_chzn .chzn-single, #task_chzn .chzn-single {border: 1px solid #ccc; height:24px; line-height:24px}
|
||||
/*#story_chzn .chzn-single, #task_chzn .chzn-single {border: 1px solid #ccc; height:24px; line-height:24px}*/
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 3.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 4.4 KiB |
+40
-28
@@ -22,7 +22,7 @@ a {text-decoration:none;}
|
||||
|
||||
/*-----------------------ICONS-----------------------------------*/
|
||||
/* icons use fontawesome */
|
||||
.link-icon{color: #036;display: inline-block;}
|
||||
.link-icon{color: #2E6DAD;display: inline-block;}
|
||||
.link-icon:hover{color:#000;text-shadow:1px 1px 3px rgba(0,0,0,0.25);}
|
||||
i[class^="icon-"],i[class*=" icon-"],.link-icon i[class^="icon-"],.link-icon i[class*=" icon-"]{display: inline-block;min-width: 13px;min-height: 13px;}
|
||||
.outer td i[class^="icon-"],.outer td i[class*=" icon-"]{font-size: 18px;margin-right: 4px;}
|
||||
@@ -130,16 +130,15 @@ i[class^="icon-"].disabled,i[class*=" icon-"].disabled,i[class^="icon-"].disable
|
||||
.diff-sort:before{content: "\f036";}
|
||||
|
||||
/*-----------------------BUTTONS -----------------------------------*/
|
||||
.btn,a.btn,.button-s,.button-c,.button-b,#reversechecker,#allchecker{padding: 4px 15px;background-color: #f8f8f8;-webkit-transition: border-color .3s;-moz-transition: border-color .3s;-o-transition: border-color .3s;transition: border-color .3s;-webkit-border-radius: 2px;-moz-border-radius: 2px;border-radius: 2px;border: 1px solid #dcdcdc;margin: 0 10px 0 0;position: relative;display: inline-block;*display: inline;*zoom: 1;cursor: pointer;text-shadow: 0 1px 0 #fff;text-decoration: none;line-height: 1.5;font-size: 14px;color: #444;transition-delay: 0,0;transition-duration: .5s,.5s;transition-property: all;}
|
||||
.button-s,.btn-primary,a.btn-primary {background-color: #114F8E;border: 1px solid #036;text-shadow: none;color: #fff;}
|
||||
.btn.mini {padding: 3px 12px;line-height: 1;}
|
||||
.btn,a.btn,.button-s,.button-c,.button-b,#reversechecker,#allchecker,#goto{padding: 4px 15px;background-color: #f8f8f8;-webkit-transition: border-color .3s;-moz-transition: border-color .3s;-o-transition: border-color .3s;transition: border-color .3s;-webkit-border-radius: 2px;-moz-border-radius: 2px;border-radius: 2px;border: 1px solid #dcdcdc;margin: 0 10px 0 0;position: relative;display: inline-block;*display: inline;*zoom: 1;cursor: pointer;text-shadow: 0 1px 0 #fff;text-decoration: none;line-height: 1.5;font-size: 14px;color: #444;transition-delay: 0,0;transition-duration: .5s,.5s;transition-property: all;}
|
||||
.btn-primary,a.btn-primary {background-color: #114F8E;border: 1px solid #036;text-shadow: none;color: #fff;}
|
||||
.btn.mini,#goto {padding: 3px 12px;line-height: 1;}
|
||||
.btn.large {padding: 7px 20px;line-height: 2;font-size: 14px;}
|
||||
.btn-danger{background-color: #d20b0b;border-color: transparent;text-shadow: none;color: #fff;}
|
||||
.btn:hover,.button-c:hover,.button-b:hover,#allchecker:hover,#reversechecker:hover,#moreAction:hover {background-color: #eee; border-color: #999;-webkit-box-shadow: 0 2px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 2px 1px rgba(0, 0, 0, 0.05);box-shadow: 0 2px 1px rgba(0, 0, 0, 0.05);text-decoration: none;}
|
||||
.btn:hover,.button-c:hover,.button-s:hover,.button-b:hover,#allchecker:hover,#reversechecker:hover,#moreAction:hover,#goto:hover {background-color: #eee; border-color: #999;-webkit-box-shadow: 0 2px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 2px 1px rgba(0, 0, 0, 0.05);box-shadow: 0 2px 1px rgba(0, 0, 0, 0.05);text-decoration: none;}
|
||||
.btn-danger:hover{background-color: #d92525;border-color: #ca0000;}
|
||||
.btn.btn-primary:hover,.button-s:hover {background-color: #2E6DAD;border-color: #114F8E;}
|
||||
.btn.btn-primary:hover {background-color: #2E6DAD;border-color: #114F8E;}
|
||||
.btn.disabled,.btn[disabled=disabled] {cursor: not-allowed;background: #eeeeee;color: #ccc; border: 1px solid #dfdfdf;text-shadow: 0 1px 0 #fff;}
|
||||
.button-s,.button-c{min-width: 80px;}
|
||||
.groupButton .button-c,.groupButton .button-s{margin-right: 0}
|
||||
.groupButton #allchecker{margin-right: 0;}
|
||||
.groupButton #moreAction{border: 1px solid #DCDCDC;}
|
||||
@@ -149,7 +148,7 @@ i[class^="icon-"].disabled,i[class*=" icon-"].disabled,i[class^="icon-"].disable
|
||||
/*---------------------------Form Controls---------------------------*/
|
||||
select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],
|
||||
input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],
|
||||
input[type="search"],input[type="tel"],input[type="color"] {display: inline-block;height: 18px;padding: 4px;font-size: 14px;line-height: 1.428571429;color: #333333;vertical-align: middle;background-color: #ffffff;border: 1px solid #ccc;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;}
|
||||
input[type="search"],input[type="tel"],input[type="color"] {display: inline-block;height: 18px;padding: 4px;font-size: 12px;line-height: 1.428571429;color: #333333;vertical-align: middle;background-color: #ffffff;border: 1px solid #ccc;-moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px;-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;}
|
||||
input[type="file"],select{height: 26px;}
|
||||
select:focus,textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,
|
||||
input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus {border-color: #2564A3;outline: 0;}
|
||||
@@ -164,6 +163,7 @@ input[type="month"][readonly],input[type="time"][readonly],input[type="week"][re
|
||||
input[type="number"][readonly],input[type="email"][readonly],input[type="url"][readonly],
|
||||
input[type="search"][readonly],input[type="tel"][readonly],input[type="color"][readonly]{cursor: not-allowed;background-color: #e9e9e9;}
|
||||
select[multiple],textarea{height: auto;}
|
||||
select{padding: 4px 1px;}
|
||||
|
||||
/*-----------------------LAYOUT SETTING ----------------------------*/
|
||||
#wrap{ padding:0 19px 20px 19px; background:#e5e5e5;}
|
||||
@@ -192,6 +192,7 @@ select[multiple],textarea{height: auto;}
|
||||
.c-right {clear:right;}
|
||||
.c-both {clear:both;}
|
||||
.a-center {text-align: center;}
|
||||
.v-middle{vertical-align: middle;}
|
||||
.a-right {text-align: right;}
|
||||
.a-left {text-align: left;}
|
||||
|
||||
@@ -233,6 +234,7 @@ select[multiple],textarea{height: auto;}
|
||||
|
||||
/*-----------------------FORM SETTING----------------------------*/
|
||||
.text-1 {width: 90%}
|
||||
td>.text-1{padding-left:2px;padding-right: 2px}
|
||||
.text-2 {width: 120px}
|
||||
.text-3 {width: 240px}
|
||||
select.text-3 {width: 250px}
|
||||
@@ -243,9 +245,10 @@ select.text-3 {width: 250px}
|
||||
select.select-1 {width: 90%}
|
||||
.select-2 {width: 125px}
|
||||
.select-3 {width: 245px}
|
||||
select.select-3{width: 255px;}
|
||||
select.select-3{width: 250px;}
|
||||
.select-4 {width: 360px}
|
||||
.select-5 {width: 480px}
|
||||
td>select{padding-left: 0;padding-right: 0}
|
||||
|
||||
.area-1{width: 90%;}
|
||||
.area-2{width: 120px}
|
||||
@@ -263,7 +266,7 @@ select.select-3{width: 255px;}
|
||||
/*-----------------------TABLE SETTING----------------------------*/
|
||||
table {border:1px solid #e4e4e4;border-collapse: collapse;border-spacing: 0;}
|
||||
td, tr, th {border:none;}
|
||||
td,th{padding: 8px; line-height: 1.428571429;vertical-align: top;}
|
||||
td,th{padding: 6px; line-height: 1.428571429;vertical-align: top;}
|
||||
th{vertical-align: middle;}
|
||||
tfoot {border-top:1px solid #e4e4e4}
|
||||
tfoot .f-left{ color:gray}
|
||||
@@ -281,8 +284,9 @@ caption {border:1px solid #e4e4e4; background:#edf3fe; margin:0; padding:6px 2p
|
||||
.table-5 {width:600px;margin-bottom:10px}
|
||||
.table-6 {width:800px;margin-bottom:10px}
|
||||
|
||||
.table-1 td, .table-2 td, .table-3 td, .table-4 td, .table-5 td {padding:8px 4px}
|
||||
.table-1 th, .table-2 th, .table-3 th, .table-4 th, .table-5 th {padding:8px 4px}
|
||||
.table-1 td, .table-2 td, .table-3 td, .table-4 td, .table-5 td {padding:6px 3px}
|
||||
.table-1 th, .table-2 th, .table-3 th, .table-4 th, .table-5 th {padding:6px 3px}
|
||||
form>.table-1 td,form>.table-2 td,form>.table-3 td,form>.table-4 td{padding:4px 3px;}
|
||||
.side table td,.side table th{padding: 2px 4px;}
|
||||
|
||||
.colhead td {text-align:center; background-color:#efefef;}
|
||||
@@ -363,6 +367,8 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
.w-p80 {width: 80%}
|
||||
.w-p85 {width: 85%}
|
||||
.w-p90 {width: 90%}
|
||||
.w-p94 {width: 94%}
|
||||
.w-p95 {width: 95%}
|
||||
.w-p100{width: 100%}
|
||||
.w-p98 {width: 98%}
|
||||
.w-p99 {width: 99%}
|
||||
@@ -438,7 +444,7 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
|
||||
/* Top bar. */
|
||||
#topbar, #topbar a {color:#ACCADF}
|
||||
#topbar {margin:5px 5px 15px 5px}
|
||||
#topbar {margin:5px 5px 6px 5px}
|
||||
#topbar select {border:none; color:#ACCADF; background:#003366}
|
||||
#topbar a {color:#d1e4f2;text-decoration:none;}
|
||||
#topbar a:hover {color: #fff;}
|
||||
@@ -460,9 +466,9 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
#mainmenu li>a#objectSwitcher{background: #e5e5e5;color: gray;padding: 0 3px;-webkit-box-shadow: none;box-shadow:none;}
|
||||
|
||||
/* Module menu. */
|
||||
#modulemenu {padding: 0 20px;height: 50px;font-size:14px;background-color: #e5e5e5;}
|
||||
#modulemenu li {color:#003366;padding:8px 4px 8px 0;line-height: 30px;}
|
||||
#modulemenu li a{display: inline-block; padding: 2px 8px; font-weight:normal; font-size:14px; color:#003366}
|
||||
#modulemenu {padding: 0 20px;height: 42px;font-size:14px;background-color: #e5e5e5;}
|
||||
#modulemenu li {color:#003366;padding:4px 0px;line-height: 30px;}
|
||||
#modulemenu li a{display: inline-block; padding: 2px 7px; font-weight:normal; font-size:14px; color:#003366}
|
||||
#modulemenu li>a:hover{background: #d1d1d1;color: #000;}
|
||||
#modulemenu li.active>a,#modulemenu li.active>a:hover {color:#21841d; font-weight:bold; }
|
||||
#modulemenu li.right {float:right; font-weight:bold;}
|
||||
@@ -491,10 +497,10 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
#projectID {background:#e5e5e5; border:1px solid #e5e5e5}
|
||||
|
||||
/* Feature bar. */
|
||||
#featurebar,#wrap .outer>table.table-1>caption,#wrap .outer>form>table.table-1>caption{height:34px; line-height:34px;background-color: #f8fafe; padding:8px 10px;}
|
||||
#featurebar,#wrap .outer>table.table-1>caption,#wrap .outer>form>table.table-1>caption{height:30px; line-height:30px;background-color: #f8fafe; padding:8px 10px;}
|
||||
#featurebar,#wrap .outer>table.table-1>caption {border-bottom: 1px solid #e7edf7;margin: -20px -20px 20px -20px;}
|
||||
#featurebar span {font-size:14px;}
|
||||
#featurebar a,.outer>table.table-1>caption a{text-decoration:none; display: inline-block;padding: 0px 7px; line-height: 34px;height: 34px; font-size:14px;-webkit-transition: all .2s;-o-transition: all .2s;-moz-transition: all .2s;transition: all .2s;}
|
||||
#featurebar a,.outer>table.table-1>caption a{text-decoration:none; display: inline-block;padding: 0px 5px; line-height: 30px;height: 30px; font-size:14px;-webkit-transition: all .2s;-o-transition: all .2s;-moz-transition: all .2s;transition: all .2s;}
|
||||
#featurebar a:hover,.outer>table.table-1>caption a:hover{color:#000;background-color: #e5e5e5;}
|
||||
#featurebar #bysearchTab a {border:none;}
|
||||
#featurebar select {font-size:12px; height:30px;}
|
||||
@@ -509,13 +515,12 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
#querybox table{border: none;border-bottom: 1px solid #e5e5e5;}
|
||||
#querybox td{vertical-align: middle;}
|
||||
#querybox select,#querybox input[type="text"]{min-width: 95px;max-width: 140px;}
|
||||
@media(max-width:1610px){
|
||||
#querybox input[type="text"],#querybox select[name='value3'],#querybox select[name='value5']{min-width: 80px;width: 80px;}
|
||||
#querybox .button-c,#querybox .button-s{width: auto;min-width: 42px;}
|
||||
#querybox select[name='operator6'],#querybox select[name='operator5'], #querybox select[name='operator4'],#querybox select[name='operator3'], #querybox select[name='operator2'],#querybox select[name='operator1'], #querybox select[name='groupAndOr'],#querybox select[name='andOr1'],#querybox select[name='andOr2'],#querybox select[name='andOr3'],#querybox select[name='andOr4']{width: 65px;min-width: 65px;}
|
||||
#querybox select[name='queryID'], #querybox select[name='field4'],#querybox select[name='field3'],
|
||||
#querybox select[name='field2'],#querybox select[name='field1']{width: 95px;}
|
||||
}
|
||||
#querybox input[type="text"]{min-width: 80px;width: 130px;}
|
||||
#querybox select[name='value1'],#querybox select[name='value2'],#querybox select[name='value3'],#querybox select[name='value4'],#querybox select[name='value5'],#querybox select[name='value6']{min-width: 80px;width: 140px}
|
||||
#querybox .button-c,#querybox .button-s{width: auto;min-width: 42px; margin-right:5px;}
|
||||
#querybox select[name='operator6'],#querybox select[name='operator5'], #querybox select[name='operator4'],#querybox select[name='operator3'], #querybox select[name='operator2'],#querybox select[name='operator1'], #querybox select[name='groupAndOr'],#querybox select[name='andOr1'],#querybox select[name='andOr2'],#querybox select[name='andOr3'],#querybox select[name='andOr4'],#querybox select[name='andOr5'],#querybox select[name='andOr6']{width: 65px;min-width: 65px;}
|
||||
#querybox select[name='queryID'], #querybox select[name='field4'],#querybox select[name='field3'],#querybox select[name='field5'],#querybox select[name='field6'],
|
||||
#querybox select[name='field2'],#querybox select[name='field1']{width: 95px;}
|
||||
@media(max-width:1220px){
|
||||
#querybox input[type="text"],#querybox select[name='value3'],#querybox select[name='value5']{min-width: 70px;width: 70px;}
|
||||
}
|
||||
@@ -583,7 +588,10 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
.debugwin {display:none; width:50px; height:20px; bottom:50px; position:fixed;}
|
||||
|
||||
/* Pager. */
|
||||
.pager {margin-bottom:0}
|
||||
.pager {margin-bottom:0;line-height: 26px;}
|
||||
#_recPerPage{height: 22px;}
|
||||
#_pageID,#_recPerPage{padding: 1px}
|
||||
#goto{padding-left: 2px;padding-right: 2px;}
|
||||
|
||||
/* Search. */
|
||||
#searchform .searchSelect, #searchform .searchInput, #searchform #queryID{background:#f9f9f9;}
|
||||
@@ -609,7 +617,9 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
/*-----------------------ICONS --------------------*/
|
||||
/* Common icons. */
|
||||
#featurebar .f-right .icon-goback {padding:0px 9px}
|
||||
.pri1,.pri2,.pri3,.pri4,.pri5,.pri6{display:inline-block;width: 14px;height: 14px;font-size: 12px;line-height: 14px;font-weight: bold; text-align: center; color: #272d68; -moz-border-radius:50%; -webkit-border-radius:50%; border-radius:50%;border: 2px solid #272d68;}
|
||||
.pri1,.pri0,.pri2,.pri3,.pri4,.pri5,.pri6,.pri{display:inline-block;width: 14px;height: 14px;font-size: 12px;line-height: 14px;font-weight: bold; text-align: center; color: #272d68; -moz-border-radius:50%; -webkit-border-radius:50%; border-radius:50%;border: 2px solid #272d68;}
|
||||
.pri,.pri0{border-color: #ccc;color: #ccc;}
|
||||
.pri:before{content: '?'}
|
||||
.pri2{border-color: #25367e;color: #25367e}
|
||||
.pri3{border-color: #2c4a9b;color: #2c4a9b}
|
||||
.pri4{border-color: #475da8;color: #475da8}
|
||||
@@ -617,7 +627,9 @@ table.data-table td:last-child{padding-right: 20px;}
|
||||
.pri6{border-color: #9ebee5;color: #9ebee5}
|
||||
|
||||
/* Bug icons. */
|
||||
.severity1,.severity2,.severity3,.severity4,.severity5,.severity6{display:inline-block;width: 16px;height: 16px;line-height: 16px;font-weight: bold; text-align: center; font-size: 12px; color: #fff; -moz-border-radius:50%; -webkit-border-radius:50%; border-radius:50%;}
|
||||
.severity,.severity1,.severity2,.severity3,.severity4,.severity5,.severity6{display:inline-block;width: 16px;height: 16px;line-height: 16px;font-weight: bold; text-align: center; font-size: 12px; color: #fff; -moz-border-radius:50%; -webkit-border-radius:50%; border-radius:50%;}
|
||||
.severity{background-color: #ccc;}
|
||||
.severity:before{content: '?'}
|
||||
.severity1 {background-color: #d71319;}
|
||||
.severity2 {background-color: #d83615;}
|
||||
.severity3 {background-color: #db7c12;}
|
||||
|
||||
Reference in New Issue
Block a user