model

package module
v0.0.124 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2024 License: MIT Imports: 2 Imported by: 42

README

Estructuras que utilizo con frecuencia en proyectos escritos en Go

ejemplo de uso en un objeto

func MedicalHistory() model.Object {
	return model.Object{
		Name:           "medicalhistory",
		PrincipalFieldsName: []string{"service_name"},
		Fields: []model.Field{
			{Name: "id_medicalhistory", Legend: "id", Input: unixid.InputPK()},
			{Name: "id_patient", Legend: "paciente", Input: unixid.InputPK()},

			{Name: "staff_id", Legend: "Id", Input: unixid.InputPK()},
			{Name: "staff_name", Legend: "Atendido por", Input: input.Text()},
			{Name: "staff_ocupation", Legend: "Especialidad", Input: input.Text()},
			{Name: "staff_area", Legend: "Area", Input: input.Check(Area{})},

			{Name: "service_id", Legend: "Prestación", Input: unixid.InputPK()},

			{Name: "day_attention", Legend: "Dia Atención", Input: input.Date()},
			{Name: "hour_attention", Legend: "Hora", Input: input.Hour(`min="08:15"`, `max="20:15"`)},

			{Name: "reason", Legend: "Motivo Consulta, Servicio o Procedimiento", Input: input.TextArea()},
			{Name: "diagnostic", Legend: "Diagnostico (Descripción)", Input: input.TextArea()},
			{Name: "prescription", Legend: "Prescripción (Conclusion)", Input: input.TextArea()},

			{Name: "last_print_file", Legend: "Ultima Impresión en Archivo", Input: input.Text()},
		},
	}
}

Documentation

Index

Constants

View Source
const INPUT_PATTERN = `input\.(\w+)\([^)]*\)`
View Source
const PREFIX_ID_NAME = "id_"

Variables

This section is empty.

Functions

This section is empty.

Types

type AfterClickNotify added in v0.0.120

type AfterClickNotify interface {
	// data del objeto que fue cliqueado por el usuario
	NotifyUserHasClickedObject()
}

type AfterCreate added in v0.0.46

type AfterCreate interface {
	SetObjectInDomAfterCreate(data ...map[string]string) (err string)
}

type AfterDelete added in v0.0.46

type AfterDelete interface {
	SetObjectInDomAfterDelete(data ...map[string]string) (err string)
}

type AfterRead added in v0.0.49

type AfterRead interface {
	SetObjectInDomAfterRead(data ...map[string]string) (err string)
}

type AfterUpdate added in v0.0.46

type AfterUpdate interface {
	SetObjectInDomAfterUpdate(data ...map[string]string) (err string)
}

type AlternativeValidateAdapter added in v0.0.69

type AlternativeValidateAdapter interface {
	ValidateData(its_new, its_update_or_delete bool, all_data ...map[string]string) (err string)
}

type AppInfo added in v0.0.67

type AppInfo struct {
	App_name         string
	Business_name    string
	Business_address string
	Business_phone   string
}

func (AppInfo) AppVersion added in v0.0.78

func (AppInfo) AppVersion() string

func (AppInfo) GoVersion added in v0.0.78

func (AppInfo) GoVersion() string

func (AppInfo) TinyGoVersion added in v0.0.78

func (AppInfo) TinyGoVersion() string

type BackendBootDataUser added in v0.0.76

type BackendBootDataUser interface {
	BackendLoadBootData(u *User) BootPageData
}

type BackendHandler added in v0.0.46

type BackendHandler struct {
	BootResponse

	CreateApi
	ReadApi
	UpdateApi
	DeleteApi
}

type BackupHandlerAdapter added in v0.0.112

type BackupHandlerAdapter interface {
	//backup_type ej: "create","delete","update"
	BackupOneObjectType(backup_type, table_name string, data any)
}

type BeforeAction added in v0.0.78

type BeforeAction interface {
	ExecuteBeforeAction(h *MainHandler)
}

type BootPageData added in v0.0.74

type BootPageData struct {
	JsonBootActions string
}

type BootResponse added in v0.0.45

type BootResponse interface {
	AddBootResponse(u *User) (r []Response, err string)
}

type ButtonForm added in v0.0.109

type ButtonForm struct {
	ModuleName string // ej:c.Module
	ObjectName string // ej: c.Form.ObjectName
	ButtonName string // ej: btn_printer
	Title      string // ej: Imprimir
	IconID     string // ej: icon-printer
	OnclickFun string // ej: printForm(this)
	Disabled   bool   // activado por defecto
}

type CipherAdapter added in v0.0.76

type CipherAdapter interface {
	Encrypt(content []byte) (out, err string)
	Decrypt(content string) (out, err string)
}

type ClickedModuleEventAdapter added in v0.0.107

type ClickedModuleEventAdapter interface {
	ClickedModuleEvent()
}

type ContainerViewAdapter added in v0.0.70

type ContainerViewAdapter interface {
	BuildContainerView(id, field_name string, allow_skip_completed bool) string
}

todo el contenido html por defecto del objeto

type CookieExpiration added in v0.0.78

type CookieExpiration struct {
	OneHour bool
	OneDay  bool
	Forever bool
}

default 2 minutes

type CreateApi added in v0.0.31

type CreateApi interface {
	Create(u *User, data ...map[string]string) (err string)
}

type CutData added in v0.0.19

type CutData struct {

	// ej Modelo Objeto: usuario := Object{Name: "Usuario",Fields: []Field{
	// 		{Name: "name"}, //0
	// 		{Name: "email"},//1
	// 		{Name: "phone"},//2
	// 	},}
	// ej data normal con todos los campos: {"name":"John Doe","email":"johndoe@example.com","phone":"555"}
	// version recortada Data: {"John Doe","johndoe@example.com","555"}
	// Index Objeto al codificar = {"0:0","1:1","2:2"}
	// ej no mail: {"marcel", "777"}
	// Index al codificar = {"0:0","1:2"}
	Index map[int8]int8 `json:"i"`
	//Data ej en mapa: "Data":[{"id":"222","name":"manzana","valor":"1200"}]
	// ahora: "Data":["222","manzana","1200"]
	Data []string `json:"d"`
}

type CutResponse added in v0.0.19

type CutResponse struct {
	//Action,Object,Module,Message
	//ej: ["create","user","ModuleUsers","ok"]
	CutOptions []string  `json:"o,omitempty"`
	CutData    []CutData `json:"d,omitempty"`
}

func (*CutResponse) CutResponseDecode added in v0.0.21

func (cr *CutResponse) CutResponseDecode(data []map[string]string) (out Response)

type DataBaseAdapter added in v0.0.35

type DataBaseAdapter interface {
	RunDBOnClient() bool //verdadero corren en el cliente ej browser. por defecto falso corre en el servidor
	// items support in server db: []map[string]string, map[string]string
	CreateObjectsInDB(table_name string, on_server_too bool, items any) (err string)

	ReadDataDB(p struct {
		FROM_TABLE    string              //ej: "users,products" or: public.reservation, public.patient"
		SELECT        string              // "name, phone, address" default *
		WHERE         []map[string]string //ej: "patient.id_patient=reservation.id_patient, (OR) reservation.id_staff = '2'"
		AND_CONDITION bool                // OR default se agrega AND si es true
		ID            string              // unique search (usado en indexdb)
		ORDER_BY      string              // name,phone,address
		SORT_DESC     bool                //default ASC
		LIMIT         int                 // 10, 5, 100. note: Postgres y MySQL: "LIMIT 10", SQLite: "LIMIT 10 OFFSET 0" OR "" no limit
		RETURN_ANY    bool                // default string return []map[string]string, any = []map[string]interface{}
	}, async_results func(r struct {
		String []map[string]string
		Any    []map[string]any
	}, err string)) (sync_results []map[string]string, err string)

	UpdateObjectsInDB(table_name string, on_server_too bool, data ...map[string]string) (err string)
	DeleteObjectsInDB(table_name string, on_server_too bool, data ...map[string]string) (err string)

	CreateTablesInDB(objects []*Object, result func(err string))

	ClearAllTableDataInDB(tables ...string) (err string)
}

on_server_too ej si se esta en frontend se envía también al backend la solicitud async_results optional (nil) usado en indexdb

type DataConverter added in v0.0.68

type DataConverter interface {
	EncodeStruct(in any) (result []byte, err string)
	// &out is a pointer
	DecodeStruct(in []byte, out any) (err string)
	//map_in ej []map[string]string or map[string]string
	EncodeMaps(map_in any, object_name ...string) (out []byte, err string)
	DecodeMaps(in []byte, object_name ...string) (out []map[string]string, err string)

	EncodeResponses(requests ...Response) (out []byte, err string)
	DecodeResponses(data []byte) (out []Response, err string)
}

si nombre del objeto no se ingresa se codifica a json de forma normal

type DeleteApi added in v0.0.31

type DeleteApi interface {
	Delete(u *User, data ...map[string]string) (err string)
}

type DevicePeripherals added in v0.0.107

type DevicePeripherals struct {
	KeyboardClientAdapter
	GamepadClientAdapter
}

type DomAdapter added in v0.0.47

type DomAdapter interface {
	BuildFrontendUI() (err string)
	InnerHTML(querySelector, html_content string) (err string)
	InsertAfterBegin(querySelector, html_content string) (err string)
	InsertBeforeEnd(querySelector, html_content string) (err string)
	// querySelector ej: "a[name='xxx']"
	ElementClicking(querySelector string) (err string)
	ElementFocus(querySelector string) (err string)
	ElementsDelete(object_name string, on_server_too bool, objects_ids ...map[string]string) (err string)

	SelectContent(SelectDomOptions struct {
		QuerySelector string // ej: querySelector "meta[name='JsonBootTests']"
		GetContent    string //ej: GetContent: "content"
		SetAfter      bool   // SetAfter ej: true = element.Set("content", "")
		StringReturn  bool   //return_as_string retornar como string de lo contrario sera un jsValue
	}) (jsValue any, err string)

	CallFunction(NameJsFunc string, Options struct {
		Params       map[string]any // Objecto como parámetro
		ResultInt    bool           // resultado en formato int
		ResultString bool           // resultado en string
	}) (result any, err string)
}

type FetchAdapter added in v0.0.68

type FetchAdapter interface {
	//method ej: GET,POST
	// endpoint ej: http://localhost/upload
	// object ej: imagen
	// body_rq any ej: []map[string]string, map[string]string
	SendOneRequest(method, endpoint, object string, body_rq any, response func(result []map[string]string, err string))
	// only POST method
	SendAllRequests(endpoint string, body_rq []Response, response func(result []Response, err string))
}

type Field

type Field struct {
	// si el campo comienza com id_ se considera como único y perteneciente a una tabla específica ej: id_user su tabla es user
	// otros ej: id_usuario, apellido, address, city etc
	Name          string
	Legend        string //como se mostrara al usuario el campo en el encabezado ej: "name" por "Nombre Usuario"
	SourceTable   string // tabla origen ej: patient,user,product
	NotRenderHtml bool   // si no se necesita en formulario html

	*Input

	NotClearValueOnFormReset bool
	SkipCompletionAllowed    bool //se permite que el campo no este completado. por defecto siempre sera requerido

	Unique          bool //campo único e inalterable en db
	NotRequiredInDB bool // campo no requerido en base de datos al crear tabla
	Encrypted       bool // si estará encriptado su almacenamiento o no
}

func (Field) IsPrimaryKey added in v0.0.35

func (f Field) IsPrimaryKey(o *Object) bool

type FileApi added in v0.0.33

type FileApi interface {
	// FileAddUploadApi(h *MainHandler, source *Object, file_settings any) error
	//backend file_request ej: r *http.Request, w http.ResponseWriter
	//frontend file_request ej: blob file js.Value
	FileUpload(object_name, area_file string, file_request ...any) (out []map[string]string, err string)
	//params ej: id:123
	FilePath(params map[string]string) (file_path, area string, err string)
}

type FileDiskRW added in v0.0.68

type FileDiskRW interface {
	FileGet(path string) (item any, err string)

	FileDelete(path string) (err string)
}

type FormAdapter added in v0.0.66

type FormAdapter interface {
	// limpia los valores del formulario y campos en el map del objeto
	// nombre de objeto opcional de lo contrario se usara el actual
	FormClean(object_name ...string) (err string)
	//validate valida después de completar,auto_grow hacer crecer los campos según el contenido
	FormComplete(object_name string, data map[string]string, validate, auto_grow bool) (err string)
	// si no se envía el nombre el campo se realiza foco en el primer elemento
	FormInputFocus(object_name string, focus_field_name ...string) (err string)
}

type FormNotify added in v0.0.107

type FormNotify interface {
	NotifyFormIsOK()
	NotifyFormERR(err string)
}

type FrontendBootDataUser added in v0.0.76

type FrontendBootDataUser interface {
	FrontendLoadHtmlBootData(data string) (err string)
}

type FrontendModuleHandlers added in v0.0.107

type FrontendModuleHandlers struct {
	ClickedModuleEventAdapter
}

type GamepadClientAdapter added in v0.0.116

type GamepadClientAdapter interface {
	GamepadRegister(notifyConnection, pressAnyButton, pressSpecificButtons any)
}
type Header struct {
	Name    string // ej: Content-Type, Auth
	Content string
}

type HtmlAdapter added in v0.0.70

type HtmlAdapter interface {
	// retorna un elemento html del tipo js.Value
	GetHtmlModule(module_name string) (jsValue any, err string)
}

type Icon added in v0.0.28

type Icon struct {
	Id      string   //ej: icon-search, icon-btn-save, icon-btn-new
	ViewBox string   //ej: "0 0 16 16", "0 0 448 512"
	Paths   []string //ej: m11.51 11..,m7.051..,m3.267 15...
}

type Input added in v0.0.5

type Input struct {
	InputName string

	Tag
	ItemViewAdapter
	Validate

	ResetParameters *struct {
		ResetJsFuncName    string         // nombre la la función js a llamar para reset
		Enable             bool           //parámetro estado por defecto a enviar
		NotSendQueryObject bool           //no envía querySelector Objeto por defecto siempre se envía
		Params             map[string]any // parámetros adicionales
	}

	TestData
}

type ItemViewAdapter added in v0.0.70

type ItemViewAdapter interface {
	BuildItemsView(all_data ...map[string]string) (html string)
}

type KeyEnterAdapter added in v0.0.107

type KeyEnterAdapter interface {
	KeyEnter()
}

type KeyboardClientAdapter added in v0.0.107

type KeyboardClientAdapter interface {
	KeyboardClientDisable(disable bool)
}

type KeyboardHandlerObject added in v0.0.107

type KeyboardHandlerObject struct {
	KeyEnterAdapter
}

type Logger added in v0.0.60

type Logger interface {
	// pare usar Log en una lines en funciones de tipo syscall/js se usa interface{}
	Log(message ...any)
}

type MainHandler added in v0.0.103

func (*MainHandler) AddModules added in v0.0.103

func (h *MainHandler) AddModules(new_modules ...*Module)

func (*MainHandler) GetAllObjects added in v0.0.106

func (h *MainHandler) GetAllObjects(only_type_db_table bool) []*Object

only_type_db_table de tipo tabla en base de datos ej: user,patient

func (MainHandler) GetModules added in v0.0.103

func (h MainHandler) GetModules() []*Module

func (MainHandler) GetObjectBY added in v0.0.112

func (h MainHandler) GetObjectBY(object_name, table_name string) (obj *Object, err string)

optional object_name or table_name ej: file.user,"" or "","user"

type MessageAdapter added in v0.0.69

type MessageAdapter interface {
	UserMessage(message ...any)
}

type Module

type Module struct {
	//nombre modulo ej: chat,patient,user
	ModuleName string
	//Titulo que vera el usuario ej: "Modulo Fotografía"
	Title string
	// id icono para utilizar en sprite svg ej: icon-info
	IconID string
	//interfaz usuario modulo
	UI
	// ej: keyboard,focus
	FrontendModuleHandlers
	//areas soportadas por el modulo ej: 'a','t','x'
	Areas map[string]string

	*MainHandler
	// contains filtered or unexported fields
}

func (*Module) AddObjectsToModule added in v0.0.103

func (m *Module) AddObjectsToModule(new_objects ...*Object)

func (*Module) GetActualObject added in v0.0.115

func (m *Module) GetActualObject() (o *Object, err string)

obtener objeto en uso actualmente en el modulo

func (Module) GetObject added in v0.0.105

func (m Module) GetObject(object_name string) (o *Object, err string)

obtener todos los objetos del modulo

func (Module) GetObjects added in v0.0.105

func (m Module) GetObjects() []*Object

func (Module) ModuleSupports added in v0.0.74

func (m Module) ModuleSupports(area string) bool

func (Module) ResetFrontendStateObjects added in v0.0.86

func (m Module) ResetFrontendStateObjects()

func (*Module) SetActualObject added in v0.0.115

func (m *Module) SetActualObject(o *Object)

type ModuleFrontend added in v0.0.124

type ModuleFrontend interface {
}

type NotifyBootData added in v0.0.50

type NotifyBootData interface {
	NotifyBootDataIsLoaded()
}

type NotifyFileDelete added in v0.0.123

type NotifyFileDelete interface {
	NotifyFileDeletion()
}

type Object

type Object struct {
	// ej: module.client, client.search_footer,user.datalist
	ObjectName string
	Table      string //tabla origen db ej: users

	PrincipalFieldsName []string //campos mas representativos ej: name, address, phone
	NoAddObjectInDB     bool
	Fields              []Field //campos

	*Module // módulo origen

	BackHandler BackendHandler

	FrontHandler FrontendHandler

	KeyboardHandlerObject

	FormData map[string]string // data temporal formulario

	AlternativeValidateAdapter
}

func (*Object) AddViewHandlerObject added in v0.0.121

func (o *Object) AddViewHandlerObject(viewHandlerObject any)

func (Object) CheckModuleHtml added in v0.0.90

func (o Object) CheckModuleHtml() (module_html any, err string)

func (Object) ClickMenuModule added in v0.0.71

func (o Object) ClickMenuModule() (err string)

func (Object) ClickObjectElement added in v0.0.71

func (o Object) ClickObjectElement(query_element string) (err string)

func (Object) ClickingID added in v0.0.70

func (o Object) ClickingID(id_param ...string) (err string)

si no se proporciona id_param se buscara en el formulario actual del objeto

func (Object) Columns

func (o Object) Columns() (columns []string)

func (Object) CountViewElements added in v0.0.90

func (o Object) CountViewElements() (total int, err string)

func (Object) DataDecode added in v0.0.19

func (o Object) DataDecode(cut_data ...CutData) (decoded_data []map[string]string, err string)

func (Object) DataEncode added in v0.0.19

func (o Object) DataEncode(all_data ...map[string]string) (out []CutData, err string)

DataEncode quita los nombres de los campos de la data según modelo del objeto

func (*Object) DeleteFormData added in v0.0.107

func (o *Object) DeleteFormData()

func (Object) FieldExist added in v0.0.16

func (o Object) FieldExist(field_name string) (*Field, bool)

func (Object) FieldsToFormValidate added in v0.0.66

func (o Object) FieldsToFormValidate() (fiels_out []Field)

func (Object) FilterRemoveFields

func (o Object) FilterRemoveFields(namesToRemove ...string) (fiels_out []Field)

func (Object) FormCheck added in v0.0.103

func (o Object) FormCheck() (err string)

func (Object) GetFieldsByNames added in v0.0.50

func (o Object) GetFieldsByNames(required_names ...string) (fiels_out []Field, err string)

func (Object) GetHtmlModuleContent added in v0.0.107

func (o Object) GetHtmlModuleContent(select_items ...string) (jsValue any, err string)

select_items ej: div#user, `button[name="login"]`

func (Object) GetID

func (o Object) GetID() (id, err string)

func (Object) GetTablesNames added in v0.0.50

func (o Object) GetTablesNames() (out []string)

func (Object) JoinFieldNames added in v0.0.48

func (o Object) JoinFieldNames(add_prefix_table_name bool) (out string)

ej: id_patient,patient_name,patient_run - add_prefix_table_name: true = patient.id_patient,patient.patient_name,patient.patient_run

func (Object) MainName

func (o Object) MainName() string

func (Object) OnlyRequiredDbFieldsThisObject added in v0.0.63

func (o Object) OnlyRequiredDbFieldsThisObject() (db_field []Field)

solo campos requeridos en la base de datos. NOTA: puntero []*Field no funciona con slice

func (Object) PrimaryKeyName

func (o Object) PrimaryKeyName(options ...string) string

ej: "id_client", options: "add_prefix_table_name" = "client.id_client"

func (Object) RenderFields

func (o Object) RenderFields() (fiels_out []Field)

func (Object) RequiredFields

func (o Object) RequiredFields() (fiels_out []Field)

func (*Object) ResetInputsViewForm added in v0.0.107

func (o *Object) ResetInputsViewForm(form_jsValue any) (err string)

resetear la vista de los inputs del formulario

func (Object) Response added in v0.0.35

func (o Object) Response(data []map[string]string, options ...string) Response

options ej: update,delete,"mensaje a enviar" default action: create

func (*Object) SetActualObject added in v0.0.103

func (o *Object) SetActualObject()

actualizar objeto en uso actualmente en el modulo

func (Object) TestData added in v0.0.39

func (o Object) TestData(required_objects int, skip_id, wrong_data bool) (out []map[string]string, err string)

func (Object) ValidateData added in v0.0.16

func (o Object) ValidateData(its_new, its_update_or_delete bool, all_data ...map[string]string) (err string)

validar data objeto

type ObjectsHandlerAdapter added in v0.0.106

type ObjectsHandlerAdapter interface {
	// optional object_name or table_name ej: file.user,"" or "","user"
	GetObjectBY(object_name, table_name string) (o *Object, err string)
	GetAllObjects(only_type_db_table bool) (objects []*Object)
}

type Package added in v0.0.35

type Package struct {
	SkipMeInResponse bool     `json:"-"` //  saltarme al difundir
	Recipients       []string `json:"-"` // lista de ip, token o ids según app para el reenvió al finalizar solicitud
	TargetArea       bool     `json:"-"` // si es falso el destino por defecto es publico de lo contrario sera para todos quines tengan la misma area del usuario solicitante
	Response
}

type Page added in v0.0.33

type Page struct {
	StyleSheet string // url ej style.css

	AppName    string
	AppVersion string

	SpriteIcons string

	Menu string

	UserName string
	UserArea string
	Message  string

	Modules string

	Script string // ej main.js

	// JsonBootActions string //index ej <meta name="JsonBootActions" content="{{.JsonBootActions}}">
	// JsonBootTests   string
	BootPageData
}

index.html ej: {{.StyleSheet}} {{.AppName}} {{.AppVersion}} {{.SpriteIcons}} {{.Menu}} {{.Message}} {{.UserName}} {{.UserArea}} {{.Modules}} {{.Script}} {{.Data}}

type Permission

type Permission struct {
	Read  bool
	Write bool
}

type ReadApi added in v0.0.31

type ReadApi interface {
	Read(u *User, data ...map[string]string) (out []map[string]string, err string)
}

type ReadData added in v0.0.69

type ReadData interface {
	ReadByID(id string) (out []map[string]string, err string)
}

type Request

type Request struct {
	//usuario que ejecuta la solicitud
	*User
	// paquetes de solicitud y respuesta
	Packages []Package
}

type ResetFrontendObjectStateAdapter added in v0.0.85

type ResetFrontendObjectStateAdapter interface {
	ResetFrontendObjectState() (err string)
}

type ResetViewHandlerObjectAdapter added in v0.0.85

type ResetViewHandlerObjectAdapter interface {
	ResetViewHandlerObject() (err string)
}

type Response

type Response struct {
	Action  string              `json:"a,omitempty"` //acción a realizar con la solicitud: create, read, update, delete o error
	Object  string              `json:"o,omitempty"` //nombre de la tabla u objeto controlador hacia donde va la solicitud
	Message string              `json:"g,omitempty"` //mensaje para el usuario de la solicitud
	Data    []map[string]string `json:"d,omitempty"` //data entrada y respuesta json
}

type Responses added in v0.0.72

type Responses struct {
	NoCut []Response    `json:"n,omitempty"` // normal
	Cut   []CutResponse `json:"c,omitempty"` //re cortada
}

type SessionBackendAdapter added in v0.0.103

type SessionBackendAdapter interface {
	// params ej: r *http
	BackendCheckUser(r_http any) (u *User, err string)
	SessionHandlerAdapter
}

type SessionFrontendAdapter added in v0.0.103

type SessionFrontendAdapter interface {
	FrontendCheckUser(result func(u *User, err string))
	SessionHandlerAdapter
}

type SessionHandlerAdapter added in v0.0.103

type SessionHandlerAdapter interface {
	SessionHandlerName() string
	UserSessionNumber
}

type SourceData added in v0.0.44

type SourceData interface {
	SourceData() map[string]string
}

type Tag added in v0.0.26

type Tag interface {
	HtmlName() string
	ContainerViewAdapter
}

type TemplateModuleConfig added in v0.0.74

type TemplateModuleConfig struct {
	RenderAllSpaceCentered bool // ej para login
	Module                 *Module
	// ej:	`<div class="target-module">
	// 	<select name="select">
	// 		<option value="value1">Value 1</option>
	// 		<option value="value2" selected>Value 2</option>
	// 	</select>
	// </div>`
	HeaderInputTarget string

	Form        *Object
	FormButtons []*ButtonForm

	AsideList ContainerViewAdapter
}

type TestData added in v0.0.10

type TestData interface {
	GoodTestData() (out []string)
	WrongTestData() (out []string)
}

type ThemeAdapter added in v0.0.47

type ThemeAdapter interface {
	// MenuButtonTemplate ej: <li class="navbar-item"><a href="#` + module_name + `" tabindex="` + index + `" class="navbar-link" name="` + module_name + `">
	// <svg aria-hidden="true" focusable="false" class="fa-primary"><use xlink:href="#` + icon_id + `" /></svg>
	// <span class="link-text">` + title + `</span></a></li>
	MenuButtonTemplate(module_name, index, icon_id, title string) string
	MenuClassName() string     // ej: .menu-container
	MenuItemClass() string     // ej: navbar-item
	RouterJSFuncName() string  //ej:"menuRouter"
	ModuleClassName() string   //ej: slider_panel
	MenuClassSelected() string //ej: hash-selected

	ModuleTemplate(*TemplateModuleConfig) string

	FunctionMessageName() string // ej: ShowMessageToUser
	// ej query: "div#"+o.ModuleName+" [data-id='"+o.ObjectName+"']"
	QuerySelectorMenuModule(module_name string) string
	QuerySelectorModule(module_name string) string
	QuerySelectorObject(module_name, object_name string) string
	QuerySelectorUserName() string
	QuerySelectorUserArea() string
}

type TimeAdapter added in v0.0.47

type TimeAdapter interface {
	TimeNow
	TimeWeek
	UnixTimeHandler

	//esperar en milliseconds ej: 500, 2000 ..
	WaitFor(milliseconds int, callback func())

	// new_date ej: 2003-11-22 o "" para volver al estado normal
	SetDate(new_date string)
}

type TimeNow added in v0.0.52

type TimeNow interface {
	//ej true: "30-12-2001", default false: "2006-01-02"
	DateToDay(DateFormatStructPointer any) string
	//ej default: "2006-01-02", "15:04" WithSeconds true = 15:04:05
	DateToDayHour(DateFormatStructPointer any) (date, hour string)
}

DateFormatStructPointer ej type DateFormat struct { LeftDay bool //true ej: "30-12-2001", default false: "2006-01-02" WithSeconds bool //ej: 2006-01-02, 15:04, WithSeconds true = 15:04:05 }

type TimeWeek added in v0.0.52

type TimeWeek interface {
	//date ej: 2006-01-02,  0 para Domingo, 1 para Lunes, etc.
	WeekDayNumber(date_in string) (n int, err string)
}

type UI added in v0.0.26

type UI interface {
	UserInterface(u *User) string
}

type UnixTimeHandler added in v0.0.56

type UnixTimeHandler interface {
	UnixNano() int64
}

ej: time.Now()

type UpdateApi added in v0.0.31

type UpdateApi interface {
	Update(u *User, data ...map[string]string) (err string)
}

type User

type User struct {
	Token          string // token de sesión solicitante
	Id             string // id usuario
	Ip             string
	Name           string
	Area           string // valor de carácter ej: a,s,p... key "" sin area
	AreaName       string // nombre del area
	AccessLevel    string // aquí valor numérico 0 a 255
	LastConnection string //time.Time

	R any //r *http.Request.
	W any //w http.ResponseWriter
}

type UserSessionNumber added in v0.0.103

type UserSessionNumber interface {
	// ej: 1 or 2 or 34 or 400.....
	UserSessionNumber() (number string, err string)
}

type Validate added in v0.0.5

type Validate interface {
	//options html ej: data-option="ch_doc"
	ValidateField(data_in string, skip_validation bool, options ...string) (err string)
}

type ViewHandlerObject added in v0.0.115

type ViewHandlerObject interface {
	ViewHandlerName() string
	ContainerViewAdapter
	ItemViewAdapter
	ResetViewHandlerObjectAdapter
	NotifyStatusChangeAfterClicking()
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL