TG-185 Изменения интерфейса приложения

* Изменен порядок нижних кнопок на гл.странице
* В пользовательской истории убраны выбор Сприна и Классификации
master
parent 89a16c9201
commit 8edd90cd98

@ -96,7 +96,7 @@ fun LazyListScope.CommonTaskHeader(
isLoading = editActions.editStatus.isLoading
)
// sprint
/*// sprint
if (commonTask.taskType != CommonTaskType.Epic) {
ClickableBadge(
text = commonTask.sprint?.name ?: stringResource(R.string.no_sprint),
@ -107,8 +107,9 @@ fun LazyListScope.CommonTaskHeader(
isClickable = commonTask.taskType != CommonTaskType.Task
)
}
*/
// swimlane
/*// swimlane
if (commonTask.taskType == CommonTaskType.UserStory) {
ClickableBadge(
text = commonTask.swimlane?.name ?: stringResource(R.string.unclassifed),
@ -118,6 +119,7 @@ fun LazyListScope.CommonTaskHeader(
onClick = { showSwimlaneSelector() }
)
}
*/
if (commonTask.taskType == CommonTaskType.Issue) {
// type

@ -53,6 +53,7 @@ fun KanbanBoard(
val cellWidth = 280.dp
val backgroundCellColor = MaterialTheme.colorScheme.surfaceColorAtElevation(kanbanBoardTonalElevation)
/*
swimlanes.takeIf { it.isNotEmpty() }?.let {
Row(
verticalAlignment = Alignment.CenterVertically,
@ -86,6 +87,8 @@ fun KanbanBoard(
)
}
}
*/
val storiesToDisplay = stories.filter { it.swimlane?.id == selectedSwimlane?.id }
@ -280,25 +283,25 @@ fun KanbanBoardPreview() = TaigaMobileTheme {
statuses = listOf(
Status(
id = 0,
name = "New",
name = stringResource(R.string. status_new),
color = "#70728F",
type = StatusType.Status
),
Status(
id = 1,
name = "In progress",
name = stringResource(R.string.status_in_progress),
color = "#E47C40",
type = StatusType.Status
),
Status(
id = 1,
name = "Done",
name = stringResource(R.string.status_done),
color = "#A8E440",
type = StatusType.Status
),
Status(
id = 1,
name = "Archived",
name = stringResource(R.string.status_ready_for_test),
color = "#A9AABC",
type = StatusType.Status
),

@ -186,11 +186,15 @@ class MainActivity : AppCompatActivity() {
}
}
// Кнопки на главном экране
enum class Screens(val route: String, @StringRes val resourceId: Int, @DrawableRes val iconId: Int) {
Dashboard(Routes.dashboard, R.string.dashboard_short, R.drawable.ic_dashboard),
Scrum(Routes.scrum, R.string.scrum, R.drawable.ic_scrum),
Epics(Routes.epics, R.string.epics, R.drawable.ic_epics),
Issues(Routes.issues, R.string.issues, R.drawable.ic_issues),
Kanban(Routes.kanban, R.string.kanban, R.drawable.ic_kanban),
Team(Routes.team, R.string.team, R.drawable.ic_team),
//Settings(Routes.settings, R.string.settings, R.drawable.ic_settings)
//Scrum(Routes.scrum, R.string.scrum, R.drawable.ic_scrum),
//Issues(Routes.issues, R.string.issues, R.drawable.ic_issues),
More(Routes.more, R.string.more, R.drawable.ic_more)
}
@ -464,13 +468,13 @@ fun MoreScreen(
}
}
val space = 2.dp
//val space = 2.dp
Item(R.drawable.ic_team, R.string.team, Routes.team)
Spacer(Modifier.height(space))
Item(R.drawable.ic_kanban, R.string.kanban, Routes.kanban)
Spacer(Modifier.height(space))
Item(R.drawable.ic_wiki, R.string.wiki, Routes.wiki_selector)
Spacer(Modifier.height(space))
//Item(R.drawable.ic_team, R.string.team, Routes.team)
//Spacer(Modifier.height(space))
//Item(R.drawable.ic_kanban, R.string.kanban, Routes.kanban)
//Spacer(Modifier.height(space))
//Item(R.drawable.ic_wiki, R.string.wiki, Routes.wiki_selector)
//Spacer(Modifier.height(space))
Item(R.drawable.ic_settings, R.string.settings, Routes.settings)
}

@ -1,11 +1,15 @@
package org.calculate.taigamobile.ui.screens.projectselector
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyItemScope
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@ -23,6 +27,7 @@ import org.calculate.taigamobile.ui.components.containers.ContainerBox
import org.calculate.taigamobile.ui.utils.subscribeOnError
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import retrofit2.http.Header
@Composable
fun ProjectSelectorScreen(
@ -64,6 +69,7 @@ fun ProjectSelectorScreen(
}
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun ProjectSelectorScreenContent(
projects: LazyPagingItems<Project>? = null,
@ -95,6 +101,7 @@ fun ProjectSelectorScreenContent(
}
}
@OptIn(ExperimentalFoundationApi::class)
@Composable
private fun ItemProject(
project: Project,
@ -110,29 +117,31 @@ private fun ItemProject(
verticalAlignment = Alignment.CenterVertically
) {
Column(Modifier.weight(0.8f)) {
project.takeIf { it.isMember || it.isAdmin || it.isOwner }?.let {
Column(Modifier.weight(0.8f)) {
project.takeIf { it.isMember || it.isAdmin || it.isOwner }?.let {
Text(
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.primary,
text = stringResource(
when {
project.isOwner -> R.string.project_owner
project.isAdmin -> R.string.project_admin
project.isMember -> R.string.project_member
else -> 0
}
)
)
}
Text(
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.primary,
text = stringResource(
when {
project.isOwner -> R.string.project_owner
project.isAdmin -> R.string.project_admin
project.isMember -> R.string.project_member
else -> 0
}
text = stringResource(R.string.project_name_template).format(
project.name,
project.slug
)
)
}
Text(
text = stringResource(R.string.project_name_template).format(
project.name,
project.slug
)
)
}
if (project.id == currentProjectId) {
Image(

@ -413,25 +413,29 @@ fun SprintKanbanPreview() = TaigaMobileTheme {
statuses = listOf(
Status(
id = 0,
name = "New",
//name = "New",
name = stringResource(R.string.status_new),
color = "#70728F",
type = StatusType.Status
),
Status(
id = 1,
name = "In progress",
//name = "In progress",
name = stringResource(R.string.status_in_progress),
color = "#E47C40",
type = StatusType.Status
),
Status(
id = 1,
name = "Done",
//name = "Done",
name = stringResource(R.string.status_done),
color = "#A8E440",
type = StatusType.Status
),
Status(
id = 1,
name = "Archived",
//name = "Archived",
name = stringResource(R.string.status_ready_for_test),
color = "#A9AABC",
type = StatusType.Status
),
@ -444,7 +448,8 @@ fun SprintKanbanPreview() = TaigaMobileTheme {
ref = 100,
status = Status(
id = 1,
name = "In progress",
//name = "In progress",
name = stringResource(R.string.status_in_progress),
color = "#E47C40",
type = StatusType.Status
),
@ -466,7 +471,8 @@ fun SprintKanbanPreview() = TaigaMobileTheme {
ref = 100,
status = Status(
id = 1,
name = "In progress",
//name = "In progress",
name = stringResource(R.string.status_in_progress),
color = "#E47C40",
type = StatusType.Status
),
@ -488,7 +494,7 @@ fun SprintKanbanPreview() = TaigaMobileTheme {
ref = 100,
status = Status(
id = 1,
name = "In progress",
name = stringResource(R.string.status_in_progress),
color = "#E47C40",
type = StatusType.Status
),
@ -510,7 +516,8 @@ fun SprintKanbanPreview() = TaigaMobileTheme {
ref = 100,
status = Status(
id = 0,
name = "New",
//name = "New",
name = stringResource(R.string.status_new),
color = "#70728F",
type = StatusType.Status
),
@ -535,7 +542,8 @@ fun SprintKanbanPreview() = TaigaMobileTheme {
ref = 100,
status = Status(
id = 0,
name = "New",
//name = "New",
name = stringResource(R.string.status_new),
color = "#70728F",
type = StatusType.Status
),

@ -7,6 +7,11 @@
<string name="ok">OK</string>
<string name="cancel">Annuler</string>
<string name="status_new">Nouveau</string>
<string name="status_in_progress">Dans le processus</string>
<string name="status_ready_for_test">Peut être vérifié</string>
<string name="status_done">Complété</string>
<string name="common_error_message">Un problème est survenu. Vérifiez votre connexion.</string>
<string name="permission_error">Erreur, vous n\'avez pas les autorisations suffisantes</string>

@ -9,6 +9,11 @@
<string name="ok">ОК</string>
<string name="cancel">Отмена</string>
<string name="status_new">Новая</string>
<string name="status_in_progress">В процессе</string>
<string name="status_ready_for_test">Можно проверять</string>
<string name="status_done">Завершена</string>
<string name="common_error_message">Произошла ошибка. Проверьте ваше подключение</string>
<string name="permission_error">Ошибка, возможно у вас недостаточно прав</string>

@ -7,6 +7,11 @@
<string name="ok">ОК</string>
<string name="cancel">Скасувати</string>
<string name="status_new">Нова</string>
<string name="status_in_progress">В процесі</string>
<string name="status_ready_for_test">Можна перевіряти</string>
<string name="status_done">Завершено</string>
<string name="common_error_message">Виникла помилка. Перевірте з\'єднання</string>
<string name="permission_error">Помилка, у вас можливо недостатньо доступів</string>

@ -9,6 +9,11 @@
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<string name="status_new">New</string>
<string name="status_in_progress">In progress</string>
<string name="status_ready_for_test">Ready for test</string>
<string name="status_done">Done</string>
<string name="common_error_message">An error has occurred. Check your connection</string>
<string name="permission_error">Error, you may not have sufficient permissions</string>

Loading…
Cancel
Save