title: Adding custom admin UI functionality to KeystoneJS
body: <p>I'm just starting out with Keystone on a new project and couldn't find any docs that describe adding custom functionality to the admin UI.</p>
  
  <p>Some of the things I'd need to implement but couldn't find any resources about:</p>
  
  <ol>
  <li>Creating new pages in the admin that are not dependent on models. In this case I'd need to use my own views, frontend JS and backend endpoints, which I'm not sure how to include or how to hook up to the admin UI. Is there a Keystone way of achieving this?</li>
  <li>Customising listing pages. For example i have some custom models that I'd like to reorder by drag-and-dropping in the listing table and have an additional save button above the table that submits the new order to an endpoint. For this I'd need a way to inject some custom JS and HTML in the respective listing page, but I'm not sure how to do that, if it's even possible.</li>
  <li>Custom fields in the admin item page that I don't want auto-generated by Keystone from the model. Is there a way to hijack the Keystone view for a specific model type and add custom elements?</li>
  <li>Declaring a new model with data from mongo from the same model. For example having a Category model that has a select element with other categories for selecting parents.</li>
  </ol>
  
  <p>Sorry if these issues have already been discussed / documented, but I couldn't find any info related to them.</p>
  
  <p>Thanks and looking forward to your thoughts on these issues.</p>