Срок службы 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 или напрямую на нашем сайте.