Skip to content
Snippets Groups Projects
Select Git revision
  • 2d3c7b54deea6dfed3a8d989af66819493a6d3fd
  • master default protected
  • feature/PRXS-3383-CollectionsSort
  • refactor/PRXS-3053-Files
  • feature/PRXS-3143-3235-ReferenceOptions
  • feature/PRXS-3421-ImplementNewRefAPI
  • feature/PRXS-3143-LimitReferenceFields
  • feature/PRXS-3234-FeaturePruneIdents
  • feature/3149-LocaleCodeAsID-Feature
  • PRXS-3421-RecursiveReferences
  • feature/3109-SerializeFeature
  • release/0.33
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • feature/3272-GoVersionUp
  • feature/PRXS-3218-HideTemplateActions
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
  • v0.27.0-alpha.1+5
  • v0.27.0-alpha.1+4
41 results

loader.go

Blame
  • field.go 16.30 KiB
    package field
    
    import (
    	"context"
    	"strings"
    
    	"git.perx.ru/perxis/perxis-go/data"
    	"git.perx.ru/perxis/perxis-go/expr"
    	"git.perx.ru/perxis/perxis-go/pkg/errors"
    )
    
    const (
    	FieldSeparator = "."
    	IncludeLimit   = 10
    )
    
    type (
    	Preparer interface {
    		Prepare(f *Field) error
    	}
    
    	Fielder interface {
    		GetField(path string) *Field
    	}
    )
    
    type Translation struct {
    	Locale      string `json:"locale,omitempty"`
    	Title       string `json:"title,omitempty"`
    	Description string `json:"description,omitempty"`
    }
    
    type View struct {
    	Widget  string                 `json:"widget,omitempty"`  // Виджет для отображения поля в списке
    	Options map[string]interface{} `json:"options,omitempty"` // Опции виджета, на усмотрения виджета
    }
    
    type UI struct {
    	Widget      string                 `json:"widget,omitempty"`      // Имя виджета для отображения поля в пользовательском интерфейсе
    	Placeholder string                 `json:"placeholder,omitempty"` // Подсказка для заполнения значения
    	Options     map[string]interface{} `json:"options,omitempty"`     // Опции виджета для отображения
    	ReadView    *View                  `json:"read_view,omitempty"`   // Настройки для отображения экрана в режиме просмотра элемента
    	EditView    *View                  `json:"edit_view,omitempty"`   // Настройки для отображения экрана в режиме редактирования элемента
    	ListView    *View                  `json:"list_view,omitempty"`   // Настройки для отображения экрана в режиме списке элементов
    }
    
    type Include struct {
    	Ref      string `json:"ref,omitempty"`
    	Optional bool   `json:"optional,omitempty"`
    }
    
    // State - состояние поля времени выполнения
    type State struct {
    	Name         string
    	DataPath     string
    	SchemaPath   string
    	SingleLocale bool
    	Parent       *Field
    	Inlined      bool
    	HasInline    bool
    }
    
    type Field struct {
    	Title            string        `json:"title,omitempty"`             // Название поля (Например: name)
    	Description      string        `json:"description,omitempty"`       // Описание поле (Например: User name)
    	Translations     []Translation `json:"translations,omitempty"`      // Переводы данных на разных языках
    	UI               *UI           `json:"ui,omitempty"`                // Опции пользовательского интерфейса
    	Includes         []Include     `json:"includes,omitempty"`          // Импорт схем
    	SingleLocale     bool          `json:"single_locale,omitempty"`     // Без перевода
    	Indexed          bool          `json:"indexed,omitempty"`           // Построить индекс для поля