diff --git a/module/user/css/batchcreate.css b/module/user/css/batchcreate.css index 6a5695e048..f3edda60aa 100644 --- a/module/user/css/batchcreate.css +++ b/module/user/css/batchcreate.css @@ -4,3 +4,6 @@ td .passwordBox {border-left-width: 0px!important;} .c-id {width: 40px;} .c-realname, .c-visions {width: 130px;} .c-dept, .c-role, .c-group, .c-commiter, .c-join, .c-contact {width: 120px;} +.c-company {width: 210px;} + +.user-type{margin: 8px 0px 0px 8px; float: left;} diff --git a/module/user/js/batchcreate.js b/module/user/js/batchcreate.js index 600d327709..ac36a2a3d3 100644 --- a/module/user/js/batchcreate.js +++ b/module/user/js/batchcreate.js @@ -186,3 +186,55 @@ $(document).on('change', "select[id^='visions']", function() }(n))); } }); + +/** + * Show or hide companies based on user type. + * + * @param type $type + * @access public + * @return void + */ +function changeType(type) +{ + if(type == 'inside') + { + $('#companyBox').addClass('hide'); + $('select[id^=dept], input[id^=join]').closest('td').removeClass('hide'); + $('select[id^=company]').closest('td').addClass('hide'); + $('th.c-dept, th.c-join').removeClass('hide'); + $('th.c-company').addClass('hide'); + } + else + { + $('#companyBox').removeClass('hide'); + $('select[id^=dept], input[id^=join]').closest('td').addClass('hide'); + $('select[id^=company]').closest('td').removeClass('hide'); + $('th.c-dept, th.c-join').addClass('hide'); + $('th.c-company').removeClass('hide'); + } + $('#userType').val(type); +} + +$(function() +{ + $(":checkbox[name^='new']").change(function() + { + var companyNode = $(this).prop('checked') ? $(this).closest('span').prevAll('select') : $(this).closest('span').prevAll('input'); + var companyNodeID = $(companyNode).attr('id'); + var companyNodeName = $(companyNode).attr('name'); + + if($(this).prop('checked')) + { + $(companyNode).replaceWith(""); + $('#' + companyNodeID + '_chosen').remove(); + } + else + { + var i = companyNodeID.replace(/[^0-9]/ig, ''); + var dataHtml = $(companies).attr('id', companyNodeID).attr('name', companyNodeName).prop('outerHTML'); + $('#' + companyNodeID).replaceWith(dataHtml); + if(i == 1) $('#' + companyNodeID).find('option[value="ditto"]').remove(); + $('#' + companyNodeID).chosen(); + } + }) +}); diff --git a/module/user/model.php b/module/user/model.php index 0f6acebe7c..12626b46c3 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -425,9 +425,19 @@ class userModel extends model } $data[$i] = new stdclass(); - $data[$i]->dept = $users->dept[$i] == 'ditto' ? (isset($prev['dept']) ? $prev['dept'] : 0) : $users->dept[$i]; + if($users->userType == 'outside') + { + $data[$i]->company = $users->company[$i] == 'ditto' ? (isset($prev['company']) ? $prev['company'] : 0) : $users->company[$i]; + $data[$i]->newCompany = isset($users->new[$i]) ? true : false; + $data[$i]->type = 'outside'; + } + else + { + $data[$i]->dept = $users->dept[$i] == 'ditto' ? (isset($prev['dept']) ? $prev['dept'] : 0) : $users->dept[$i]; + $data[$i]->join = empty($users->join[$i]) ? '0000-00-00' : ($users->join[$i]); + $data[$i]->type = 'inside'; + } $data[$i]->account = $users->account[$i]; - $data[$i]->type = 'inside'; $data[$i]->realname = $users->realname[$i]; $data[$i]->role = $role; $data[$i]->group = in_array('ditto', isset($users->group[$i]) ? $users->group[$i] : array()) ? (isset($prev['group']) ? $prev['group'] : '') : $users->group[$i]; @@ -435,7 +445,6 @@ class userModel extends model $data[$i]->gender = $users->gender[$i]; $data[$i]->password = md5(trim($users->password[$i])); $data[$i]->commiter = $users->commiter[$i]; - $data[$i]->join = empty($users->join[$i]) ? '0000-00-00' : ($users->join[$i]); $data[$i]->skype = $users->skype[$i]; $data[$i]->qq = $users->qq[$i]; $data[$i]->dingding = $users->dingding[$i]; @@ -474,6 +483,7 @@ class userModel extends model } $accounts[$i] = $data[$i]->account; + $prev['company'] = $data[$i]->company; $prev['dept'] = $data[$i]->dept; $prev['role'] = $data[$i]->role; $prev['group'] = $data[$i]->group; @@ -486,6 +496,16 @@ class userModel extends model $userIDList = array(); foreach($data as $user) { + if($user->type == 'outside' and $user->newCompany) + { + $company = new stdClass(); + $company->name = $user->company; + $this->dao->insert(TABLE_COMPANY)->data($company)->exec(); + + $user->company = $this->dao->lastInsertID(); + } + unset($user->newCompany); + if(is_array($user->group)) { foreach($user->group as $group) diff --git a/module/user/view/batchcreate.html.php b/module/user/view/batchcreate.html.php index 422d385075..2eb957bc8b 100644 --- a/module/user/view/batchcreate.html.php +++ b/module/user/view/batchcreate.html.php @@ -13,9 +13,11 @@ +