This commit is contained in:
tianshujie98
2021-01-19 10:21:37 +08:00
8 changed files with 79 additions and 44 deletions
+6 -2
View File
@@ -276,7 +276,9 @@ class commonModel extends model
$isGuest = $app->user->account == 'guest';
echo "<a class='dropdown-toggle' data-toggle='dropdown'>";
echo "<div class='avatar avatar bg-secondary avatar-circle'>" . strtoupper($app->user->account[0]) . "</div>\n";
echo "<div class='avatar avatar bg-secondary avatar-circle'>";
echo $app->user->avatar ? html::image($app->user->avatar) : strtoupper($app->user->account[0]);
echo "</div>\n";
echo '</a>';
echo "<ul class='dropdown-menu pull-right'>";
if(!$isGuest)
@@ -284,7 +286,9 @@ class commonModel extends model
$noRole = (!empty($app->user->role) && isset($lang->user->roleList[$app->user->role])) ? '' : ' no-role';
echo '<li class="user-profile-item">';
echo "<a href='" . helper::createLink('my', 'profile', '', '', true) . "' data-width='600' class='iframe $noRole'" . '>';
echo "<div class='avatar avatar bg-secondary avatar-circle'>" . strtoupper($app->user->account[0]) . "</div>\n";
echo "<div class='avatar avatar bg-secondary avatar-circle'>";
echo $app->user->avatar ? html::image($app->user->avatar) : strtoupper($app->user->account[0]);
echo "</div>\n";
echo '<div class="user-profile-name">' . (empty($app->user->realname) ? $app->user->account : $app->user->realname) . '</div>';
if(isset($lang->user->roleList[$app->user->role])) echo '<div class="user-profile-role">' . $lang->user->roleList[$app->user->role] . '</div>';
echo '</a></li><li class="divider"></li>';
+11 -1
View File
@@ -472,10 +472,20 @@ class my extends control
$this->app->loadClass('pager', $static = true);
$pager = new pager($recTotal, $recPerPage, $pageID);
/* Get PM id list. */
$accounts = array();
$projects = $this->user->getProjects($this->app->user->account, 'project', $status, $pager);
foreach($projects as $project)
{
if(!empty($project->PM) and !in_array($project->PM, $accounts)) $accounts[] = $project->PM;
}
$PMList = $this->user->getListByAccounts($accounts, 'account');
$this->view->title = $this->lang->my->common . $this->lang->colon . $this->lang->my->project;
$this->view->position[] = $this->lang->my->project;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->projects = $this->user->getProjects($this->app->user->account, 'project', $status, $pager);
$this->view->projects = $projects;
$this->view->PMList = $PMList;
$this->view->pager = $pager;
$this->view->status = $status;
$this->display();
+16 -1
View File
@@ -14,13 +14,26 @@
<div id='mainContent'>
<div class='cell'>
<div class='main-header text-center'>
<span class="avatar avatar bg-secondary avatar-circle">A</span>
<span class="avatar avatar bg-secondary avatar-circle">
<?php
if($user->avatar)
{
echo html::image($app->user->avatar);
}
else
{
echo strtoupper($app->user->account[0]);
}
?>
</span>
<span class='user-name'><strong><?php echo $user->realname;?></strong></span>
<span class='user-role'><?php echo zget($lang->user->roleList, $user->role);?></span>
<?php if(!isset($fromModule)):?>
<form method='post' action=<?php echo inlink('uploadAvatar');?> id='avatarForm' enctype='multipart/form-data'>
<input type="file" name="files" id="files" class="form-control hidden">
<?php echo html::a('javascript:void(0);', $lang->my->uploadAvatar, '', "class='btn btn-avatar' id='avatarUploadBtn' data-placement='right'");?>
</form>
<?php endif;?>
</div>
<div class='row'>
<div class='user-title'><?php echo $lang->user->basicInfo;?></div>
@@ -116,10 +129,12 @@
</div>
</div>
<div class='main-actions'>
<?php if(!isset($fromModule)):?>
<div class='btn-toolbar'>
<?php common::printLink('my', 'changepassword', "", $lang->changePassword, '', "title={$lang->changePassword} class='btn'");?>
<?php common::printLink('my', 'editprofile', "", $lang->user->editProfile, '', "title={$lang->user->editProfile} class='btn'");?>
</div>
<?php endif;?>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>
+4 -1
View File
@@ -61,7 +61,10 @@
<td class='text-left'><?php echo $project->begin;?></td>
<td class='text-left'><?php echo $project->end == '0000-00-00' ? '' : $project->end;?></td>
<td class='text-left'><?php echo $project->budget . ' ' . zget($lang->program->unitList, $project->budgetUnit);?></td>
<td><?php echo zget($users, $project->PM);?></td>
<td>
<?php $userID = isset($PMList[$project->PM]) ? $PMList[$project->PM]->id : ''?>
<?php if(!empty($project->PM)) echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), zget($users, $project->PM), '', "data-toggle='modal' data-type='iframe' data-width='600'");?>
</td>
<td class='c-actions'>
<?php if($project->status == 'wait' || $project->status == 'suspended') common::printIcon('program', 'PRJStart', "projectID=$project->id", $project, 'list', 'play', '', 'iframe', true);?>
<?php if($project->status == 'doing') common::printIcon('program', 'PRJClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
+1 -5
View File
@@ -377,11 +377,7 @@ class story extends control
$stories = array();
foreach($mails as $mail) $stories[] = $mail->storyID;
if($project)
{
$this->loadModel('project')->linkStory($project, $stories);
if($project != $this->session->PRJ) $this->loadModel('project')->linkStory($this->session->PRJ, $stories);
}
if($project) $this->loadModel('project')->linkStory($project, $stories);
/* If storyID not equal zero, subdivide this story to child stories and close it. */
if($storyID and !empty($mails))
+2 -6
View File
@@ -244,11 +244,7 @@ class storyModel extends model
$this->dao->insert(TABLE_STORYSPEC)->data($data)->exec();
/* Project or execution linked story. */
if($projectID != 0 and $story->status != 'draft')
{
$this->linkStory($projectID, $this->post->product, $storyID);
if($projectID != $this->session->PRJ) $this->linkStory($this->session->PRJ, $this->post->product, $storyID);
}
if($projectID != 0 and $story->status != 'draft') $this->linkStory($projectID, $this->post->product, $storyID);
if(is_array($this->post->URS))
{
@@ -325,7 +321,7 @@ class storyModel extends model
}
/**
* Create a batch stories.
* Batch create stories.
*
* @access public
* @return int|bool the id of the created story or false when error.
+2 -1
View File
@@ -518,7 +518,8 @@ class user extends control
$this->view->personalData = $this->user->getPersonalData($user->account);
$this->view->userList = $this->user->setUserList($users, $userID, $fromModule);
$this->display();
if(isonlybody()) $this->display('my', 'profile');
if(!isonlybody()) $this->display();
}
/**
+37 -27
View File
@@ -11,31 +11,41 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<table class='table table-form'>
<tr>
<td>
<div class="img-cutter fixed-ratio" id="imgCutter" style="max-width: 100%">
<div class="canvas">
<?php
if(empty($user->avatar))
{
echo html::image($image->webPath);
}
else
{
echo html::image($user->avatar);
}
?>
</div>
<div class="form-actions">
<h5 id='avatarCropTip'><?php echo $lang->user->cropAvatarTip;?></h5>
<div class="img-cutter-preview"></div>
<button type="button" class="btn btn-primary img-cutter-submit"><?php echo $lang->save;?></button> <?php echo html::a(inlink('profile'), $lang->goback, "class='btn loadInModal'");?>
</div>
</div>
</td>
</tr>
</table>
<script> /*! TangBin: image.ready.js http://www.planeart.cn/?p=1121 */ !function(n){"use strict";n.zui.imgReady=function(){var n=[],l=null,e=function(){for(var l=0;l<n.length;l++)n[l].end?n.splice(l--,1):n[l]();!n.length&&o()},o=function(){clearInterval(l),l=null};return function(o,r,t,u){var c,i,a,d,f,h=new Image;return h.src=o,h.complete?(r.call(h),void(t&&t.call(h))):(i=h.width,a=h.height,h.onerror=function(){u&&u.call(h),c.end=!0,h=h.onload=h.onerror=null},c=function(){d=h.width,f=h.height,(d!==i||f!==a||d*f>1024)&&(r.call(h),c.end=!0)},c(),h.onload=function(){!c.end&&c(),t&&t.call(h),h=h.onload=h.onerror=null},void(c.end||(n.push(c),null===l&&(l=setInterval(e,40)))))}}()}(jQuery); </script>
<?php js::import($this->app->getWebRoot() . 'js/zui/imgcutter/min.js');?>
<?php css::import($this->app->getWebRoot() . 'js/zui/imgcutter/min.css');?>
<div id='mainContent' class='main-content'>
<div class='center-block'>
<div class='main-header'>
<h2><?php echo $lang->user->cropAvatar;?></h2>
</div>
<table class='table table-form'>
<tr>
<td>
<div class="img-cutter fixed-ratio" id="imgCutter" style="max-width: 100%">
<div class="canvas">
<?php
if(empty($user->avatar))
{
echo html::image($image->webPath);
}
else
{
echo html::image($user->avatar);
}
?>
</div>
<div class="form-actions">
<h5 id='avatarCropTip'><?php echo $lang->user->cropAvatarTip;?></h5>
<div class="img-cutter-preview"></div>
<button type="button" class="btn btn-primary img-cutter-submit"><?php echo $lang->save;?></button>
</div>
</div>
</td>
</tr>
</table>
</div>
</div>
<script>
var $imgCutter = $("#imgCutter");
$imgCutter.imgCutter(
@@ -44,12 +54,12 @@ $imgCutter.imgCutter(
minWidth: 48,
minHeight: 48,
post: '<?php echo inlink('cropavatar', "image={$image->id}")?>',
ready: function() {$.zui.ajustModalPosition(); $imgCutter.css('width', $imgCutter.closest('.modal-dialog').width() - 50);},
ready: function() {$.zui.ajustModalPosition(); $imgCutter.css('width', $imgCutter.closest('#mainContent').width());},
done: function(response)
{
$('#start .avatar, #startMenu .avatar').html('<img src="<?php echo $user->avatar?>?v=' + $.zui.uuid() + '" />');
if($('#start .avatar, #startMenu .avatar').hasClass('with-text')) $('#start .avatar, #startMenu .avatar').toggleClass('with-text').css('background', 'none');
$('#ajaxModal').load(createLink('user', 'profile'), function(){$.zui.ajustModalPosition()});
location.href = createLink('my', 'profile');
},
onSizeError: function(size)
{