Saltar a contenido

API de Topic Grid

El topic grid utiliza dos endpoints del servidor para cargar los metadatos de categorias de releases y changesets. El frontend los llama con Request.postJSON, usando rutas absolutas de Catalyst en lugar del antiguo handler del plugin.

Endpoints

POST /topic-grid/category/getReleasesCategory

Devuelve todas las categorias de release junto con los metadatos reducidos de cada campo. Cuando el usuario actual no tiene permiso de creacion de topics para una categoria, el valor de releaseField es un objeto vacio.

Respuesta

{
  "error": 0,
  "data": [
    {
      "_id": "...",
      "id": "cat-1",
      "name": "Release",
      "releaseField": {
        "field_id": {
          "id_field": "field_id",
          "name_field": "Field Name",
          "key": "fieldlet.system.release",
          "meta_type": "...",
          "mandatory": 0,
          "readonly": 0,
          "hidden": 0
        }
      }
    }
  ]
}

POST /topic-grid/category/getChangesetsCategory

Devuelve todas las categorias de changeset indexadas por id de categoria. Para cada categoria el valor de releaseField es el atributo release_field del fieldlet fieldlet.system.release configurado en el formulario de la categoria.

Respuesta

{
  "error": 0,
  "data": {
    "cat-2": {
      "_id": "...",
      "id": "cat-2",
      "name": "Changeset",
      "releaseField": "changesets"
    }
  }
}

Implementacion

Los endpoints son servidos por el controlador Catalyst de Perl Baseliner::Controller::TopicGrid con la logica de negocio en Baseliner::Model::TopicGrid.

El store del frontend llama a estos endpoints con / inicial para que sean enrutados directamente a Catalyst, evitando el dispatch del plugin ClaJS.