Skip to content

Commit

Permalink
"Unified tasks list" tool window to show tasks (#99)
Browse files Browse the repository at this point in the history
* MAK-52 Added: API client for listing tasks

* MAK-52 IJ: Show tasks in tool window

Added a tool window for IntelliJ plugin to show pending tasks

* MAK-52 IJ: Show tasks in tool window

Added a tool window for IntelliJ plugin to show pending tasks
  • Loading branch information
bcosynot committed Jun 23, 2023
1 parent fc2839f commit 5de468c
Show file tree
Hide file tree
Showing 15 changed files with 513 additions and 76 deletions.
38 changes: 38 additions & 0 deletions .run/Run Plugin.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Plugin" type="GradleRunConfiguration" factoryName="Gradle">
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/intellij-plugin" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="runIde" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
<extension name="net.ashald.envfile">
<option name="IS_ENABLED" value="true" />
<option name="IS_SUBST" value="true" />
<option name="IS_PATH_MACRO_SUPPORTED" value="true" />
<option name="IS_IGNORE_MISSING_FILES" value="false" />
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="true" />
<ENTRIES>
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
<ENTRY IS_ENABLED="true" PARSER="env" IS_EXECUTABLE="false" PATH="intellij-plugin/dev.env" />
</ENTRIES>
</extension>
</EXTENSION>
<DebugAllEnabled>false</DebugAllEnabled>
<ForceTestExec>false</ForceTestExec>
<method v="2" />
</configuration>
</component>
12 changes: 11 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,20 @@ This plugin requires an existing Makerflow account and an <a href="https://app.m
Use it along with the Makerflow browser extension to automatically block distracting websites, and the webapp to keep
track of all your notifications.

## [Unreleased]
## Unreleased

### Added

- Initial release!
- Added a status bar widget and action to toggle Flow Mode
- Block distracting websites with the Makerflow browser extension
- Turn on Do-Not-Disturb mode on macOS
- Update your status on Slack to let your team know you're in Flow Mode
- Start a timer to track your flow time
- Close distracting apps with the Makerflow desktop app
- Added a tool window to see items in Unified Task List
- See all your notifications from GitHub/Bitbucket in your IDE

### Changed

### Deprecated
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ track of all your notifications.
)
itemPrefix.set("-")
keepUnreleasedSection.set(true)
unreleasedTerm.set("[Unreleased]")
unreleasedTerm.set("Unreleased")
groups.set(listOf("Added", "Changed", "Deprecated", "Removed", "Fixed", "Security"))
lineSeparator.set("\n")
combinePreReleases.set(true)
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/co/makerflow/client/apis/TasksApi.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
package co.makerflow.client.apis

import co.makerflow.client.models.CalendarEvent
import co.makerflow.client.models.GetTodos200ResponseInner
import co.makerflow.client.models.MarkDone200Response
import co.makerflow.client.models.MarkDoneRequest
import co.makerflow.client.models.TypedTodo

import co.makerflow.client.infrastructure.*
import io.ktor.client.HttpClientConfig
Expand All @@ -38,10 +38,10 @@ import com.fasterxml.jackson.databind.ObjectMapper
*
*
* @param source To specify source of request (optional)
* @return kotlin.collections.List<GetTodos200ResponseInner>
* @return kotlin.collections.List<TypedTodo>
*/
@Suppress("UNCHECKED_CAST")
open suspend fun getTodos(source: kotlin.String?): HttpResponse<kotlin.collections.List<GetTodos200ResponseInner>> {
open suspend fun getTodos(source: kotlin.String?): HttpResponse<kotlin.collections.List<TypedTodo>> {

val localVariableAuthNames = listOf<String>("api_token")

Expand Down
19 changes: 4 additions & 15 deletions src/main/kotlin/co/makerflow/client/models/CustomTaskTodo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
/**
* A custom task todo
*
* @param task
* @param sourceType The type of source that the todo is from
* @param type The type of todo
* @param createdAt Timestamp for when the todo was created
Expand All @@ -31,21 +32,9 @@ import com.fasterxml.jackson.annotation.JsonProperty

data class CustomTaskTodo (

/* The type of source that the todo is from */
@field:JsonProperty("sourceType")
val sourceType: kotlin.String? = null,
@field:JsonProperty("task")
val task: CustomTask,

/* The type of todo */
@field:JsonProperty("type")
val type: kotlin.String? = null,

/* Timestamp for when the todo was created */
@field:JsonProperty("createdAt")
val createdAt: kotlin.String? = null,

/* Whether the todo has been completed */
@field:JsonProperty("done")
val done: kotlin.Boolean? = null

)
): TypedTodo()

4 changes: 2 additions & 2 deletions src/main/kotlin/co/makerflow/client/models/FlowMode.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

package co.makerflow.client.models

import co.makerflow.client.models.FlowModeTodo
import co.makerflow.client.models.TypedTodo

import com.fasterxml.jackson.annotation.JsonProperty

Expand Down Expand Up @@ -70,7 +70,7 @@ data class FlowMode (
val taskType: kotlin.String? = null,

@field:JsonProperty("todo")
val todo: FlowModeTodo? = null,
val todo: TypedTodo? = null,

/* The source of the request that started flow mode */
@field:JsonProperty("start_source")
Expand Down
43 changes: 8 additions & 35 deletions src/main/kotlin/co/makerflow/client/models/OnboardingTask.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,53 +19,26 @@ package co.makerflow.client.models
import com.fasterxml.jackson.annotation.JsonProperty

/**
*
*
* @param type
* @param sourceType
* @param createdAt
* @param step
* @param done
*
* @param sourceType
* @param type
* @param createdAt
* @param done
* @param step
*/


data class OnboardingTask (

@field:JsonProperty("type")
val type: OnboardingTask.Type? = null,

@field:JsonProperty("sourceType")
val sourceType: OnboardingTask.SourceType? = null,

@field:JsonProperty("createdAt")
val createdAt: kotlin.String? = null,

@field:JsonProperty("step")
val step: OnboardingTask.Step? = null,
val step: OnboardingTask.Step? = null

@field:JsonProperty("done")
val done: kotlin.Boolean? = null

) {
): TypedTodo() {

/**
*
*
* Values: onboarding
*/
enum class Type(val value: kotlin.String) {
@JsonProperty(value = "onboarding") onboarding("onboarding");
}
/**
*
*
* Values: makerflow
*/
enum class SourceType(val value: kotlin.String) {
@JsonProperty(value = "makerflow") makerflow("makerflow");
}
/**
*
*
* Values: chatMinusIntegration,repoMinusIntegration,calendarMinusIntegration,cliMinusDownload,editorMinusIntegration,browserMinusExtension
*/
Expand Down
26 changes: 9 additions & 17 deletions src/main/kotlin/co/makerflow/client/models/PullRequestTodo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,29 +24,21 @@ import com.fasterxml.jackson.annotation.JsonProperty
* A pull request that needs to be reviewed by the user
*
* @param sourceType The type of source that the todo is from
* @param type The type of todo
* @param type
* @param createdAt Timestamp for when the todo was created
* @param done Whether the todo has been completed
* @param pr
* @param meta
*/


data class PullRequestTodo (
data class PullRequestTodo(

/* The type of source that the todo is from */
@field:JsonProperty("sourceType")
val sourceType: kotlin.String? = null,
@field:JsonProperty("pr")
val pr: PullRequest? = null,

/* The type of todo */
@field:JsonProperty("type")
val type: kotlin.String? = null,
@field:JsonProperty("meta")
val meta: PullRequestTodoMeta? = null

/* Timestamp for when the todo was created */
@field:JsonProperty("createdAt")
val createdAt: kotlin.String? = null,

/* Whether the todo has been completed */
@field:JsonProperty("done")
val done: kotlin.Boolean? = null

)
): TypedTodo()

17 changes: 15 additions & 2 deletions src/main/kotlin/co/makerflow/client/models/Todo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ data class Todo (

/* The type of source that the todo is from */
@field:JsonProperty("sourceType")
val sourceType: kotlin.String? = null,
val sourceType: Todo.SourceType? = null,

/* The type of todo */
@field:JsonProperty("type")
Expand All @@ -46,5 +46,18 @@ data class Todo (
@field:JsonProperty("done")
val done: kotlin.Boolean? = null

)
) {

/**
* The type of source that the todo is from
*
* Values: slack,github,bitbucket,makerflow
*/
enum class SourceType(val value: kotlin.String) {
@JsonProperty(value = "slack") slack("slack"),
@JsonProperty(value = "github") github("github"),
@JsonProperty(value = "bitbucket") bitbucket("bitbucket"),
@JsonProperty(value = "makerflow") makerflow("makerflow");
}
}

78 changes: 78 additions & 0 deletions src/main/kotlin/co/makerflow/client/models/TypedTodo.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/**
*
* Please note:
* This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* Do not edit this file manually.
*
*/

@file:Suppress(
"ArrayInDataClass",
"EnumEntryName",
"RemoveRedundantQualifierName",
"UnusedImport"
)

package co.makerflow.client.models

import co.makerflow.client.models.CustomTask
import co.makerflow.client.models.CustomTaskTodo
import co.makerflow.client.models.OnboardingTask
import co.makerflow.client.models.PullRequest
import co.makerflow.client.models.PullRequestTodo
import co.makerflow.client.models.PullRequestTodoMeta

import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo

/**
*
*
* @param task
* @param sourceType The type of source that the todo is from
* @param type The type of todo
* @param createdAt Timestamp for when the todo was created
* @param done Whether the todo has been completed
* @param step
* @param pr
* @param meta
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", visible = true)
@JsonSubTypes(
JsonSubTypes.Type(value = PullRequestTodo::class, name = "bitbucket"),
JsonSubTypes.Type(value = PullRequestTodo::class, name = "github"),
JsonSubTypes.Type(value = CustomTaskTodo::class, name = "makerflow"),
JsonSubTypes.Type(value = OnboardingTask::class, name = "onboarding")
)

open class TypedTodo() {

/* The type of source that the todo is from */
@get:JsonProperty("sourceType")
val sourceType: TypedTodo.SourceType? = null
/* The type of todo */
@get:JsonProperty("type")
val type: kotlin.String? = null
/* Timestamp for when the todo was created */
@get:JsonProperty("createdAt")
val createdAt: kotlin.String? = null
/* Whether the todo has been completed */
@get:JsonProperty("done")
val done: kotlin.Boolean? = null

/**
* The type of source that the todo is from
*
* Values: slack,github,bitbucket,makerflow
*/
@Suppress("EnumNaming")
enum class SourceType(val value: kotlin.String) {
@JsonProperty(value = "slack") slack("slack"),
@JsonProperty(value = "github") github("github"),
@JsonProperty(value = "bitbucket") bitbucket("bitbucket"),
@JsonProperty(value = "makerflow") makerflow("makerflow");
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package co.makerflow.intellijplugin.panels
Loading

0 comments on commit 5de468c

Please sign in to comment.