Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status
colourYellow
titleIn Progress

Jira
serverFOLIO Issue Tracker
serverId6ccf3fe4-3301-368a-983e-20c466b11a49
keyMODNOTES-164

Participants:

RoleNameApproval
Solution Architect
Java Lead
Product Owner


Spike objective: show note pop-up on the Users/Check out app based on the flags 

Spike goal: define a way to inform applications about showing a note pop-up

Proposed solution:

Extend an existing note schema by adding an already existing tags schemaallowing users to set up an additional properties. As a result we will have a note with assigned tags listproperties for applications. Once Users/Check out application gets note with specific tagproperty, it decides to show a note to user.

Expand


Code Block
{
	"$schema":"http://json-schema.org/draft-04/schema#",
	"type":"object",
	"description":"Notes about all kind of objects",
	"additionalProperties":falsetrue,
	"properties":{
		"id":{
		"type":"string",
		"description":"Unique generated identifier for the note",
		"$ref":"../../raml-util/schemas/uuid.schema",
		"example":"62d00c36-a94f-434d-9cd2-c7ea159303da"
	},
	"typeId":{
		"type":"string",
		"description":"Type id of note",
		"$ref":"../../raml-util/schemas/uuid.schema",
		"example":"13d00c36-a94f-434d-9cd2-c7ea159303da"
	},
	"type":{
		"type":"string",
		"description":"Type of note (configured in settings)",
		"example":"Access issues",
		"readonly":true
	},
	"domain":{
		"type":"string",
		"description":"Domain associated with this note",
		"example":"eholdings"
	},
	"title":{
		"type":"string",
		"maxLength":255,
		"description":"Note title",
		"example":"BU Campus only issues"
	},
	"content":{
		"type":"string",
		"description":"Content of the note",
		"example":"There are access issues at BU campus"
	},
	"status":{
		"type":"string",
		"description":"Status of note - applies when searching by link.id and status",
		"enum":["ASSIGNED","UNASSIGNED"],
		"example":"ASSIGNED",
		"readonly":true
	},
	"creator":{
		"type":"object",
		"description":"User display info for creator of the note",
		"$ref":"userDisplayInfo.json",
		"readonly":true
	},
	"updater":{
		"type":"object",
		"description":"User display info for updater of the note",
		"$ref":"userDisplayInfo.json",
		"readonly":true
	},
	"metadata":{
		"type":"object",
		"$ref":"../../raml-util/schemas/metadata.schema",
		"readonly":true
	},
	"links":{
		"description":"Collection of links to associated objects",
		"type":"array",
		"items":{
			"type":"object",
			"$ref":"link.json"
		}
	},
	"tags":{
		"type":"object",
		"$ref":"../../raml-util/schemas/tags.schema"
	}
},
"required":[
	"typeId",
	"title",
	"domain",
	"links"
	]
}


Proposed property values for tags by app:

  • Users app - popUpOnUser
  • Check out app - popUpOnCheckOut


Code Block
languageyml
themeConfluence
titleExample for note in mod-notes
{
	"id" : "11111111-1111-1111-1111-111111111111",
	"typeId" : "22222222-2222-2222-2222-222222222222",
	"domain" : "users",
	"title" : "test_title ",
	"content" : "test_content",
	"creator" : {
		"lastName" : "TEST_LAST_NAME",
		"firstName" : "TEST_FIRST_NAME"
	},
	"metadata" : {
		"createdDate" : "2019-12-03T09:21:57.793+00:00",
		"createdByUserId" : "00000000-0000-0000-0000-000000000000",
		"createdByUsername" : "test_user",
		"updatedDate" : "2019-12-03T09:21:57.793+00:00",
		"updatedByUserId" : "00000000-0000-0000-0000-000000000000"
	},
	"links" : [ {
		"id" : "55555555-5555-5555-5555-555555555555",
		"type" : "user"
	} ],
	"tagspopUpOnUser" : [{true,
		"tagListpopUpOnCheckOut" : ["popUpOnUser", "important"]
	}]true
}


Pros:

  • Simple solution with not much changes needed.
  • Filtering: getting notes with pop-up tags will be supported without any additional effort from the back-end teamshould be investigated

Cons:

  • "popUpOnUser", "popUpOnCheckOut" tags considered as a specific case for marking notes and will not be stored to the "tags" table from the mod-tags. It means that on

    Code Block
    GET .../tags 

    request, user will receive set of tags shared across FOLIO and they will not include pop-up tags for Users/Check out app.

  • Tags proposed for this solution will be known only for UI.

Questions & Answers:

1Will it be needed to search on those apps to find pop-up notes ? 



Implementation Stories:

  • Extend existing note schema to add tags (Back-end mod-notes) -
    Jira
    serverFOLIO Issue Tracker
    serverId6ccf3fe4-3301-368a-983e-20c466b11a49
    keyMODNOTES-165
  • Update Note pop-up by adding checkboxes for Users/Check out app (Front-end) -
    Jira
    serverFOLIO Issue Tracker
    serverId6ccf3fe4-3301-368a-983e-20c466b11a49
    keyUINOTES-97
  • Support note pop-up for Users app by tag (Front-end) -
    Jira
    serverFOLIO Issue Tracker
    serverId6ccf3fe4-3301-368a-983e-20c466b11a49
    keyUIU-2008
  • Support note pop-up for Check out app by tag (Front-end) -