Срок службы Brava Viewer подходит к концу, и вскоре его заменит Intelligent Viewer. И с этим я хотел попробовать исправить некоторые из моих ошибок со средством просмотра.

Стандартные отказы от ответственности

Изменение файлов непосредственно на Content Server не будет поддерживаться OpenText — если вы решите внести эти изменения, вы делаете это на свой страх и риск.

Итак, что мы меняем?

Итак, что мы меняем — есть несколько вещей, которые я хотел бы изменить в средстве просмотра — но для этого мы не будем усложнять и просто добавим заголовок документа в средство просмотра.

Как правило, это влияет на классический пользовательский интерфейс Content Server — однако, если вы интегрируетесь в другие системы (например, Salesforce), вы можете быть вынуждены использовать это.

Добавление названия документа

Это небольшая проблема, но если у вас открыто много документов в программе просмотра, вы хотите иметь возможность распознавать, какой документ у вас открыт.

Однако, когда документ открывается с помощью Brava Viewer в классическом пользовательском интерфейсе, заголовок документа никогда не устанавливается. Таким образом, трудно отличить один документ от другого.

Я знаю клиентов, которые подняли эту проблему с помощью OpenText, но поскольку большая часть разработки приходится на Intelligent Viewer, вряд ли это будет исправлено в ближайшее время.

Исправление

Чтобы исправить это, мы будем обновлять viewer-custom-ui.js. Он находится в папке [OTHOME]\support\brava\HTML\viewer.

И в файле найти следующую строку

options.clientType = options.clientType || “2D”;

Под этим мы добавим следующую строку — это будет новая функция, которую мы добавим.

dlGetDocumentTitle(options);

Теперь нам нужно добавить две функции — нашу основную функцию и функцию для получения данных через остальные API.

function dlGetDocumentTitle(options){
  const checkDocumentTitle = document.title; 
  if (!checkDocumentTitle) { // Check if there is no Document Title 
    document.title = 'Loading....'; // Set a default value

    const ticket = options.requestHeaders.OTCSTicket; // OTDS Ticket
    let documentid;
    const baseurl = '/otcs/llisapi.dll';

    // Get Document ID from URL
    const optionsArray = decodeURI(options.signedConfigUrl).split('&');

    for (let index = 0; index < optionsArray.length; index++) {
      const element = optionsArray[index];
      if (element.includes('nodelist')) {
        let splitURL = element.split('{');
        documentid = splitURL[1].slice(0,splitURL[1].length -1 ); // Document ID set
      }
    }

    // Fetch Data from Rest API
    dlFetchData(baseurl, ticket, documentid)
      .then(function(result){
          let res = JSON.parse(result).results.data;
          document.title = res.properties.name;
       })
      .catch(function(error) {
          console.error(error);
      });
   } // End If

}

А это функция dlFetchData

function dlFetchData(baseurl, ticket, nodeid){
    return new Promise((ok, fail) => {
        const xhr = new XMLHttpRequest();
        const url = `${baseurl}/api/v2/nodes/${nodeid}?fields=properties{name,parent_id}`;
        xhr.open('GET', url);
        xhr.setRequestHeader('OTCSTicket', ticket);
        xhr.onload = function () {
            if (xhr.status == 200) {
                ok(xhr.response);
            }
            else {
                console.error('fetchData', xhr.statusText);
                fail(xhr.statusText);
            }
        };

        xhr.onerror = function () {
            console.error('fetchData', xhr.statusText);
            fail(xhr.statusText);
        };
        xhr.send();
    });
}

Теперь конечным результатом является Brava Viewer с правильно настроенным документом 🤟

Подключайтесь к Driver Lane через Twitter и LinkedIn или напрямую на нашем сайте.