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.