Bug fixes
This commit is contained in:
parent
0dcea80845
commit
a069e1f79d
3640
components-old.js
3640
components-old.js
File diff suppressed because it is too large
Load Diff
25
css/main.css
25
css/main.css
@ -1162,20 +1162,23 @@ ul {
|
|||||||
right: 0;
|
right: 0;
|
||||||
margin: -1rem 1rem 0 1rem;
|
margin: -1rem 1rem 0 1rem;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 0.5rem 0;
|
width: -webkit-fit-content;
|
||||||
width: -webkit-max-content;
|
width: -moz-fit-content;
|
||||||
width: -moz-max-content;
|
width: fit-content;
|
||||||
width: max-content;
|
border-radius: 0.5rem;
|
||||||
border-radius: 0.3rem;
|
transition: 0.3s opacity;
|
||||||
transition: 0.3s opacity ease;
|
|
||||||
background-color: rgba(var(--foreground-color), 1);
|
background-color: rgba(var(--foreground-color), 1);
|
||||||
box-shadow: 0 0.5rem 1rem -0.3rem rgba(0, 0, 0, 0.3);
|
box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.16);
|
||||||
|
transform-origin: top right;
|
||||||
|
border: solid thin rgba(var(--text-color), 0.16);
|
||||||
}
|
}
|
||||||
#task_context li {
|
#task_context li {
|
||||||
padding: 0.8rem 1.5rem;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
|
margin: 0.2rem;
|
||||||
|
padding: 0.6rem 0.8rem;
|
||||||
|
border-radius: 0.3rem;
|
||||||
}
|
}
|
||||||
#task_context li .icon {
|
#task_context li .icon {
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
@ -1326,7 +1329,7 @@ ul {
|
|||||||
transform: translateY(1.5rem);
|
transform: translateY(1.5rem);
|
||||||
background-color: rgba(var(--foreground-color), 1);
|
background-color: rgba(var(--foreground-color), 1);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s;
|
transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.2s;
|
||||||
box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
|
box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
@ -1336,10 +1339,10 @@ ul {
|
|||||||
transform: scale(0.9);
|
transform: scale(0.9);
|
||||||
}
|
}
|
||||||
.fab-actions__item:nth-of-type(1) {
|
.fab-actions__item:nth-of-type(1) {
|
||||||
transition-delay: 0.2s;
|
transition-delay: 0.1s;
|
||||||
}
|
}
|
||||||
.fab-actions__item:nth-of-type(2) {
|
.fab-actions__item:nth-of-type(2) {
|
||||||
transition-delay: 0.1s;
|
transition-delay: 0.05s;
|
||||||
}
|
}
|
||||||
.fab-actions__item .icon {
|
.fab-actions__item .icon {
|
||||||
fill: var(--accent-color);
|
fill: var(--accent-color);
|
||||||
|
|||||||
2
css/main.min.css
vendored
2
css/main.min.css
vendored
File diff suppressed because one or more lines are too long
@ -1166,18 +1166,21 @@ ul {
|
|||||||
right: 0;
|
right: 0;
|
||||||
margin: -1rem 1rem 0 1rem;
|
margin: -1rem 1rem 0 1rem;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 0.5rem 0;
|
width: fit-content;
|
||||||
width: max-content;
|
border-radius: 0.5rem;
|
||||||
border-radius: 0.3rem;
|
transition: 0.3s opacity;
|
||||||
transition: 0.3s opacity ease;
|
|
||||||
background-color: rgba(var(--foreground-color), 1);
|
background-color: rgba(var(--foreground-color), 1);
|
||||||
box-shadow: 0 0.5rem 1rem -0.3rem rgba(0, 0, 0, 0.3);
|
box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.16);
|
||||||
|
transform-origin: top right;
|
||||||
|
border: solid thin rgba(var(--text-color), 0.16);
|
||||||
|
|
||||||
li {
|
li {
|
||||||
padding: 0.8rem 1.5rem;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
|
margin: 0.2rem;
|
||||||
|
padding: 0.6rem 0.8rem;
|
||||||
|
border-radius: 0.3rem;
|
||||||
.icon {
|
.icon {
|
||||||
margin-right: 0.5rem;
|
margin-right: 0.5rem;
|
||||||
}
|
}
|
||||||
@ -1328,8 +1331,8 @@ ul {
|
|||||||
transform: translateY(1.5rem);
|
transform: translateY(1.5rem);
|
||||||
background-color: rgba(var(--foreground-color), 1);
|
background-color: rgba(var(--foreground-color), 1);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275),
|
transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275),
|
||||||
opacity 0.3s;
|
opacity 0.2s;
|
||||||
box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
|
box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
|
||||||
user-select: none;
|
user-select: none;
|
||||||
&:hover,
|
&:hover,
|
||||||
@ -1337,10 +1340,10 @@ ul {
|
|||||||
transform: scale(0.9);
|
transform: scale(0.9);
|
||||||
}
|
}
|
||||||
&:nth-of-type(1) {
|
&:nth-of-type(1) {
|
||||||
transition-delay: 0.2s;
|
transition-delay: 0.1s;
|
||||||
}
|
}
|
||||||
&:nth-of-type(2) {
|
&:nth-of-type(2) {
|
||||||
transition-delay: 0.1s;
|
transition-delay: 0.05s;
|
||||||
}
|
}
|
||||||
.icon {
|
.icon {
|
||||||
fill: var(--accent-color);
|
fill: var(--accent-color);
|
||||||
|
|||||||
20
index.html
20
index.html
@ -1320,7 +1320,7 @@
|
|||||||
const { time, internName, topic, description } = update
|
const { time, internName, topic, description } = update
|
||||||
const card = getRef('update_card_template').content.cloneNode(true)
|
const card = getRef('update_card_template').content.cloneNode(true)
|
||||||
card.querySelector('.update__sender').textContent = internName
|
card.querySelector('.update__sender').textContent = internName
|
||||||
card.querySelector('.update__time').textContent = getFormatedTime(time)
|
card.querySelector('.update__time').textContent = getFormattedTime(time)
|
||||||
card.querySelector('.update__topic').textContent = topic
|
card.querySelector('.update__topic').textContent = topic
|
||||||
card.querySelector('.update__message').textContent = description
|
card.querySelector('.update__message').textContent = description
|
||||||
return card;
|
return card;
|
||||||
@ -1720,7 +1720,7 @@
|
|||||||
getRef('task_context').classList.remove('hidden')
|
getRef('task_context').classList.remove('hidden')
|
||||||
getRef('task_context').animate([
|
getRef('task_context').animate([
|
||||||
{
|
{
|
||||||
transform: 'translate(0.5rem, -1rem)',
|
transform: 'scaleY(0.95) translateY(-0.5rem)',
|
||||||
opacity: '0'
|
opacity: '0'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1741,11 +1741,11 @@
|
|||||||
opacity: '1'
|
opacity: '1'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
transform: 'translate(0.5rem, -1rem)',
|
transform: 'scaleY(0.95) translateY(-0.5rem)',
|
||||||
opacity: '0'
|
opacity: '0'
|
||||||
},
|
},
|
||||||
], {
|
], {
|
||||||
duration: 200,
|
duration: 100,
|
||||||
easing: 'ease'
|
easing: 'ease'
|
||||||
}).onfinish = () => {
|
}).onfinish = () => {
|
||||||
getRef('task_context').classList.add('hidden')
|
getRef('task_context').classList.add('hidden')
|
||||||
@ -1780,11 +1780,11 @@
|
|||||||
notify('Please enter description of the task', 'error')
|
notify('Please enter description of the task', 'error')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const taskno = RIBC.admin.addTaskInMap(currentProject, currentBranch)
|
const taskNo = RIBC.admin.addTaskInMap(currentProject, currentBranch)
|
||||||
RIBC.admin.editTaskDetails({ taskTitle: titleContent, taskDescription: descriptionContent }, currentProject, currentBranch, taskno)
|
RIBC.admin.editTaskDetails({ taskTitle: titleContent, taskDescription: descriptionContent }, currentProject, currentBranch, taskNo)
|
||||||
RIBC.admin.putTaskStatus('incomplete', currentProject, currentBranch, taskno)
|
RIBC.admin.putTaskStatus('incomplete', currentProject, currentBranch, taskNo)
|
||||||
card.remove()
|
card.remove()
|
||||||
getRef('task_list').append(render.taskListItem(taskno))
|
getRef('task_list').append(render.taskListItem(taskNo))
|
||||||
getRef('add_task').disabled = false
|
getRef('add_task').disabled = false
|
||||||
notify('Task added to current branch', 'success')
|
notify('Task added to current branch', 'success')
|
||||||
}
|
}
|
||||||
@ -1799,7 +1799,7 @@
|
|||||||
getConfirmation("Do you want to commit to changes?").then((result) => {
|
getConfirmation("Do you want to commit to changes?").then((result) => {
|
||||||
if (result) {
|
if (result) {
|
||||||
RIBC.admin.updateObjects().then(res => {
|
RIBC.admin.updateObjects().then(res => {
|
||||||
notify('Changes commited.', 'success')
|
notify('Changes committed.', 'success')
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
})
|
})
|
||||||
@ -2127,7 +2127,7 @@
|
|||||||
getRef('admin_fab').removeAttribute('open')
|
getRef('admin_fab').removeAttribute('open')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
getRef('admin_fab__options').classList.add('hidden')
|
getRef('admin_fab__options').classList.add('hidden')
|
||||||
}, 300);
|
}, 200);
|
||||||
} else {
|
} else {
|
||||||
getRef('admin_fab__options').classList.remove('hidden')
|
getRef('admin_fab__options').classList.remove('hidden')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
(function() {
|
(function () {
|
||||||
const Ribc = window.RIBC = {};
|
const Ribc = window.RIBC = {};
|
||||||
const Admin = Ribc.admin = {};
|
const Admin = Ribc.admin = {};
|
||||||
|
|
||||||
Ribc.init = function(isSubAdmin = false) {
|
Ribc.init = function (isSubAdmin = false) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
Promise.all([refreshObjectData(), refreshGeneralData(isSubAdmin)])
|
Promise.all([refreshObjectData(), refreshGeneralData(isSubAdmin)])
|
||||||
.then(results => resolve(results))
|
.then(results => resolve(results))
|
||||||
@ -65,10 +65,10 @@
|
|||||||
.catch(error => reject(error))
|
.catch(error => reject(error))
|
||||||
});
|
});
|
||||||
|
|
||||||
Ribc.getInternUpdates = function(count = null) {
|
Ribc.getInternUpdates = function (count = null) {
|
||||||
var internUpdates = Object.values(floGlobals.generalDataset("InternUpdates")).map(data => {
|
let internUpdates = Object.values(floGlobals.generalDataset("InternUpdates")).map(data => {
|
||||||
return {
|
return {
|
||||||
floID: data.sender,
|
floID: data.senderID,
|
||||||
update: data.message,
|
update: data.message,
|
||||||
time: data.vectorClock.split('_')[0],
|
time: data.vectorClock.split('_')[0],
|
||||||
note: data.note
|
note: data.note
|
||||||
@ -117,7 +117,7 @@
|
|||||||
.catch(error => reject(error))
|
.catch(error => reject(error))
|
||||||
});
|
});
|
||||||
|
|
||||||
Admin.addProjectDetails = function(projectCode, details) {
|
Admin.addProjectDetails = function (projectCode, details) {
|
||||||
if (!(projectCode in _.projectMap))
|
if (!(projectCode in _.projectMap))
|
||||||
return "Project not Found!";
|
return "Project not Found!";
|
||||||
if (projectCode in _.projectDetails && typeof projectCode === 'object' && typeof details === 'object')
|
if (projectCode in _.projectDetails && typeof projectCode === 'object' && typeof details === 'object')
|
||||||
@ -128,7 +128,7 @@
|
|||||||
return "added project details for " + projectCode;
|
return "added project details for " + projectCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.getInternRequests = function(ignoreProcessed = true) {
|
Admin.getInternRequests = function (ignoreProcessed = true) {
|
||||||
var internRequests = Object.values(floGlobals.generalDataset("InternRequests")).map(data => {
|
var internRequests = Object.values(floGlobals.generalDataset("InternRequests")).map(data => {
|
||||||
return {
|
return {
|
||||||
floID: data.senderID,
|
floID: data.senderID,
|
||||||
@ -146,7 +146,7 @@
|
|||||||
return internRequests;
|
return internRequests;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.processInternRequest = function(vectorClock, accept = true) {
|
Admin.processInternRequest = function (vectorClock, accept = true) {
|
||||||
let request = floGlobals.generalDataset("InternRequests")[vectorClock];
|
let request = floGlobals.generalDataset("InternRequests")[vectorClock];
|
||||||
if (!request)
|
if (!request)
|
||||||
return "Request not found";
|
return "Request not found";
|
||||||
@ -159,7 +159,7 @@
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
const addIntern = Admin.addIntern = function(floID, internName) {
|
const addIntern = Admin.addIntern = function (floID, internName) {
|
||||||
if (floID in _.internList)
|
if (floID in _.internList)
|
||||||
return false
|
return false
|
||||||
_.internList[floID] = internName
|
_.internList[floID] = internName
|
||||||
@ -167,14 +167,14 @@
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.updateInternRating = function(floID, change = 0) {
|
Admin.updateInternRating = function (floID, change = 0) {
|
||||||
if (!(floID in _.internList))
|
if (!(floID in _.internList))
|
||||||
return "Intern not found!"
|
return "Intern not found!"
|
||||||
_.internRating[floID] += change
|
_.internRating[floID] += change
|
||||||
return "Intern rating Updated";
|
return "Intern rating Updated";
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.getTaskRequests = function(ignoreProcessed = true) {
|
Admin.getTaskRequests = function (ignoreProcessed = true) {
|
||||||
var taskRequests = Object.values(floGlobals.generalDataset("TaskRequests")).map(data => {
|
var taskRequests = Object.values(floGlobals.generalDataset("TaskRequests")).map(data => {
|
||||||
return {
|
return {
|
||||||
floID: data.senderID,
|
floID: data.senderID,
|
||||||
@ -194,7 +194,7 @@
|
|||||||
return taskRequests
|
return taskRequests
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.processTaskRequest = function(vectorClock, accept = true) {
|
Admin.processTaskRequest = function (vectorClock, accept = true) {
|
||||||
let request = floGlobals.generalDataset("TaskRequests")[vectorClock];
|
let request = floGlobals.generalDataset("TaskRequests")[vectorClock];
|
||||||
if (!request)
|
if (!request)
|
||||||
return "Request not found";
|
return "Request not found";
|
||||||
@ -207,7 +207,7 @@
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
const assignInternToTask = Admin.assignInternToTask = function(floID, projectCode, branch, taskNumber) {
|
const assignInternToTask = Admin.assignInternToTask = function (floID, projectCode, branch, taskNumber) {
|
||||||
var index = projectCode + "_" + branch + "_" + taskNumber
|
var index = projectCode + "_" + branch + "_" + taskNumber
|
||||||
if (!Array.isArray(_.internsAssigned[index]))
|
if (!Array.isArray(_.internsAssigned[index]))
|
||||||
_.internsAssigned[index] = []
|
_.internsAssigned[index] = []
|
||||||
@ -218,18 +218,18 @@
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.unassignInternFromTask = function(floID, projectCode, branch, taskNumber) {
|
Admin.unassignInternFromTask = function (floID, projectCode, branch, taskNumber) {
|
||||||
var index = projectCode + "_" + branch + "_" + taskNumber
|
var index = projectCode + "_" + branch + "_" + taskNumber
|
||||||
var pos = _.internsAssigned[index].indexOf(floID)
|
var pos = _.internsAssigned[index].indexOf(floID)
|
||||||
if (pos > -1)
|
if (pos > -1)
|
||||||
_.internsAssigned[index].splice(pos, 1)
|
_.internsAssigned[index].splice(pos, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.putTaskStatus = function(taskStatus, projectCode, branch, taskNumber) {
|
Admin.putTaskStatus = function (taskStatus, projectCode, branch, taskNumber) {
|
||||||
_.projectTaskStatus[projectCode + "_" + branch + "_" + taskNumber] = taskStatus;
|
_.projectTaskStatus[projectCode + "_" + branch + "_" + taskNumber] = taskStatus;
|
||||||
};
|
};
|
||||||
|
|
||||||
Admin.createProject = function(projectCode) {
|
Admin.createProject = function (projectCode) {
|
||||||
if (projectCode in _.projectMap) {
|
if (projectCode in _.projectMap) {
|
||||||
return "Project Name already exists";
|
return "Project Name already exists";
|
||||||
}
|
}
|
||||||
@ -237,7 +237,7 @@
|
|||||||
return "Project Create: " + projectCode
|
return "Project Create: " + projectCode
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.copyBranchtoNewProject = function(oldProjectCode, oldBranch, newProjectCode, newBranchConnection,
|
Admin.copyBranchtoNewProject = function (oldProjectCode, oldBranch, newProjectCode, newBranchConnection,
|
||||||
newStartPoint, newEndPoint) {
|
newStartPoint, newEndPoint) {
|
||||||
//Make sure new branch is a new text string that does not exist in new project
|
//Make sure new branch is a new text string that does not exist in new project
|
||||||
if (oldBranch == "mainLine") {
|
if (oldBranch == "mainLine") {
|
||||||
@ -285,7 +285,7 @@
|
|||||||
return _.projectMap[newProjectCode][newBranch];
|
return _.projectMap[newProjectCode][newBranch];
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.deleteTaskInMap = function(projectCode, branch, taskNumber) {
|
Admin.deleteTaskInMap = function (projectCode, branch, taskNumber) {
|
||||||
var arr = _.projectMap[projectCode][branch];
|
var arr = _.projectMap[projectCode][branch];
|
||||||
var currentIndex;
|
var currentIndex;
|
||||||
for (var i = 4; i < arr.length; i++) {
|
for (var i = 4; i < arr.length; i++) {
|
||||||
@ -359,7 +359,7 @@
|
|||||||
arr[1] = arr[1] - 1;
|
arr[1] = arr[1] - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.insertTaskInMap = function(projectCode, branchName, insertPoint) {
|
Admin.insertTaskInMap = function (projectCode, branchName, insertPoint) {
|
||||||
var lastTasks = [];
|
var lastTasks = [];
|
||||||
lastTasks = findLastTaskNumber(projectCode);
|
lastTasks = findLastTaskNumber(projectCode);
|
||||||
var lastNumber = lastTasks[branchName];
|
var lastNumber = lastTasks[branchName];
|
||||||
@ -391,7 +391,7 @@
|
|||||||
//The best error management I have done
|
//The best error management I have done
|
||||||
//Project changing is overdoing right now
|
//Project changing is overdoing right now
|
||||||
//newStartPoint,newEndPoint is optional
|
//newStartPoint,newEndPoint is optional
|
||||||
Admin.changeBranchLine = function(projectCode, branch, newConnection, newStartPoint, newEndPoint) {
|
Admin.changeBranchLine = function (projectCode, branch, newConnection, newStartPoint, newEndPoint) {
|
||||||
//find the task number on the original line where it was branched, and then close the line there
|
//find the task number on the original line where it was branched, and then close the line there
|
||||||
//Do some basic tests
|
//Do some basic tests
|
||||||
if (branch == "mainLine") {
|
if (branch == "mainLine") {
|
||||||
@ -423,7 +423,7 @@
|
|||||||
|
|
||||||
//startOrEndOrNewProject 1=>Start,2=>End .. projectCode and branch will remain same .. mainLines cannot be rerouted
|
//startOrEndOrNewProject 1=>Start,2=>End .. projectCode and branch will remain same .. mainLines cannot be rerouted
|
||||||
//One test is missing .. you cannot connect to a point after end of connected trunk .. do it later .. not critical
|
//One test is missing .. you cannot connect to a point after end of connected trunk .. do it later .. not critical
|
||||||
Admin.changeBranchPoint = function(projectCode, branch, newPoint, startOrEnd) {
|
Admin.changeBranchPoint = function (projectCode, branch, newPoint, startOrEnd) {
|
||||||
var message;
|
var message;
|
||||||
|
|
||||||
if (branch != "mainLine") {
|
if (branch != "mainLine") {
|
||||||
@ -450,7 +450,7 @@
|
|||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
const addBranch = Admin.addBranch = function(projectCode1, branch, startPoint, mergePoint) {
|
const addBranch = Admin.addBranch = function (projectCode1, branch, startPoint, mergePoint) {
|
||||||
var arr = findAllBranches(projectCode1);
|
var arr = findAllBranches(projectCode1);
|
||||||
var newBranchName;
|
var newBranchName;
|
||||||
|
|
||||||
@ -481,12 +481,12 @@
|
|||||||
return newBranchName;
|
return newBranchName;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.editTaskDetails = function(taskDetails, projectCode, branch, taskNumber) {
|
Admin.editTaskDetails = function (taskDetails, projectCode, branch, taskNumber) {
|
||||||
//add taskDetails
|
//add taskDetails
|
||||||
_.projectTaskDetails[projectCode + "_" + branch + "_" + taskNumber] = taskDetails;
|
_.projectTaskDetails[projectCode + "_" + branch + "_" + taskNumber] = taskDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
Admin.addTaskInMap = function(projectCode, branchName) {
|
Admin.addTaskInMap = function (projectCode, branchName) {
|
||||||
var lastTasks = [];
|
var lastTasks = [];
|
||||||
lastTasks = findLastTaskNumber(projectCode);
|
lastTasks = findLastTaskNumber(projectCode);
|
||||||
var lastNumber = lastTasks[branchName];
|
var lastNumber = lastTasks[branchName];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user