model

package module
v0.0.108 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2023 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 AfterClicked added in v0.0.52

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

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 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 CallJsOptions added in v0.0.90

type CallJsOptions struct {
	NameJsFunc         string
	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

	ResultInt    bool // resultado en formato int
	ResultString bool // resultado en string
}

func (CallJsOptions) CallWithEnableAndQueryParams added in v0.0.90

func (c CallJsOptions) CallWithEnableAndQueryParams(o *Object) (result any, err string)

enviar con parámetros enable y query del objeto

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 {
	IdHandler
	RunOnClientDB() 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, backup_required bool, items any) (err string)

	ReadSyncDataDB(p ReadParams, data ...map[string]string) (result []map[string]string, err string)
	ReadAsyncDataDB(p ReadParams, callback func(r *ReadResults, err string))

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

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

	ClearAllTableDataInDB(tables ...string) (err string)
	BackupDataBase(callback func(err string))
}

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 DateFormat added in v0.0.108

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 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
}

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)

	SelectContent(SelectDomOptions) (jsValue any, err string)

	CallFunction(NameJsFunc string, params ...any) (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()
}

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 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 IdHandler added in v0.0.56

type IdHandler interface {
	GetNewID() (id, err string)
}

type Input added in v0.0.5

type Input struct {
	InputName string

	Minimum int
	Maximum int

	Tag
	ItemViewAdapter
	Validate

	*ResetParameters

	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) any

	AddHandlerToRegisterLogsInDB(h *MainHandler)
}

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() []*Object

func (MainHandler) GetModules added in v0.0.103

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

func (*MainHandler) GetObjectByName added in v0.0.106

func (h *MainHandler) GetObjectByName(name string) (obj *Object, err string)

type MessageAdapter added in v0.0.69

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

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

	// tipo de entradas usadas en el modulo
	Inputs []*Input

	*MainHandler
	// contains filtered or unexported fields
}

func (*Module) AddInputs added in v0.0.56

func (m *Module) AddInputs(new_inputs []*Input, from string) (err string)

from ej: file, user

func (*Module) AddObjectsToModule added in v0.0.103

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

func (*Module) GetActualModuleObject added in v0.0.103

func (m *Module) GetActualModuleObject() (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()

type NotifyBootData added in v0.0.50

type NotifyBootData interface {
	NotifyBootDataIsLoaded()
}

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

	PrinterHandler

	FormData map[string]string // data temporal formulario

	AlternativeValidateAdapter
}

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 ObjectHandlerAdapter added in v0.0.105

type ObjectHandlerAdapter interface {
	ObjectActual() *Object
	SetActualObject(object_name string) (err string)
}

type ObjectViewHandler added in v0.0.85

type ObjectViewHandler interface {
	NameViewAdapter() string
	ContainerViewAdapter
	ItemViewAdapter
	ResetViewHandlerObjectAdapter
}

type ObjectsHandlerAdapter added in v0.0.106

type ObjectsHandlerAdapter interface {
	GetObjectByName(name string) (obj *Object, err string)
	GetAllObjects() (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 PrinterHandler added in v0.0.66

type PrinterHandler interface {
	PrintFormObject()
}

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 ReadParams added in v0.0.77

type ReadParams 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{}
}

type ReadResults added in v0.0.97

type ReadResults struct {
	ResultsString []map[string]string
	ResultsAny    []map[string]any
}

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 ResetParameters added in v0.0.86

type ResetParameters struct {
	CallJsOptions
}

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 SelectDomOptions added in v0.0.90

type 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
}

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 {
	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
	AsideList         ContainerViewAdapter
	ButtonLogin       bool
	ButtonPrint       bool
}

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(df *DateFormat) string
	//ej default: "2006-01-02", "15:04" WithSeconds true = 15:04:05
	DateToDayHour(df *DateFormat) (date, hour string)
}

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)
}

Jump to

Keyboard shortcuts

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