Как отключить Quick Share в Alfresco Share?

В настоящее время я пытаюсь найти способ отключить общесистемную функциональность Quick Share в Alfresco 4.2.b или, если это невозможно, по крайней мере, удалить ссылки quickshare как из библиотеки документов, так и со страниц сведений о документе.

Первое, что я попробовал, - это воспользоваться преимуществом свойства system.quickshare.enabled, которое настраивается в файле alfresco-global.properties. Это просто не работает, выбрасывая следующее исключение:

Я обнаружил открытую проблему по этому поводу: https://issues.alfresco.com/jira/browse/ALF-16233.

Поскольку это кажется ошибкой и будет исправлена ​​в следующих выпусках, я сосредоточен на удалении ссылок быстрого доступа из пользовательского интерфейса, насколько это возможно. Кстати, я нашел сообщение по теме, которое помогает: https://forums.alfresco.com/en/viewtopic.php?f=48&t=46659. Я успешно удалил область ссылки на документы на странице сведений о документе, создав следующее расширение:

<extension>
    <modules>
        <module>
            <id>Removes from document-details page the Share region.</id>
            <auto-deploy>true</auto-deploy>
            <components>
                <component>
                    <scope>template</scope>
                    <region-id>document-links</region-id>
                    <source-id>document-details</source-id>
                    <sub-components>
                        <sub-component id="default">
                            <evaluations>
                                <evaluation id="hideDocumentLinks">
                                    <render>false</render>
                                </evaluation>
                            </evaluations>
                        </sub-component>
                    </sub-components>
                </component>
            </components>
        </module>
    </modules>
</extension>

Хорошо. У меня также есть ссылка quickshare со страницы сведений о документе, где выполняются некоторые изменения в файле share-config.xml, в частности, оставив пустой тег в разделе Social:

<config evaluator="string-compare" condition="Social">
      <!-- Alfresco QuickShare social widget - for creating public url that can be shared -->
      <quickshare>
         <!--
            Will be available as Alfresco.constants.QUICKSHARE_URL using javascrip in the browser.
            If changing this, make sure this url matches the quickshare rule in urlrewrite.xml
         -->
         <url>{context}/s/{sharedId}</url>
      </quickshare>

      <!-- Alfresco LinkShare social widget - share a link to social sites -->
      <linkshare>
         <!--
            These actions will be available as Alfresco.constants.LINKSHARE_ACTIONS using javascript in the browser.
            Labels will be retrieved from msg key "linkshare.action.<id>.label" unless explicitly provided as an
            attribute to the action element.
            Each param value accepts the following input: {shareUrl}, {displayName} or a msg key that will be prefixed.
            I.e. {body} for the email action's href param will be retrieved using "linkshare.action.email.body".
         -->
         <action id="email" type="link" index="10">
            <param name="href">mailto:?subject={subject}&amp;body={body}</param>
            <param name="target">new</param>
         </action>
         <action id="facebook" type="link" index="20">
            <param name="href">https://www.facebook.com/sharer/sharer.php?u={shareUrl}&amp;t={message}</param>
            <param name="target">new</param>
         </action>
         <action id="twitter" type="link" index="30">
            <param name="href">https://twitter.com/intent/tweet?text={message}&amp;url={shareUrl}</param>
            <param name="target">new</param>
         </action>
         <action id="google-plus" type="link" index="40">
            <param name="href">https://plus.google.com/share?url={shareUrl}</param>
            <param name="target">new</param>
         </action>
      </linkshare>

   </config>

Поскольку эта логика определена в веб-скрипте node-header.get.js:

model.showQuickShare = (!model.isContainer && model.showQuickShare && config.scoped["Social"]["quickshare"].getChildValue("url") != null).toString();

Тем не менее, ссылка на quickshare остается на странице библиотеки документов, что меня удивляет. Я полагал, что подобная логика, как указано выше, будет существовать для показа или отсутствия ссылки на странице библиотеки документов, но это не так. Итак, теперь мне интересно, что еще я могу сделать ... Как я заметил, эта ссылка создается на стороне клиента с помощью виджета documentlibrary (documentlist.js):

    if (!record.node.isContainer)
    {
       html += '<span class="item item-social item-separator">' + Alfresco.DocumentList.generateQuickShare(this, record) + '</span>';
    }

Я думаю о создании расширения, которое настраивает виджет библиотеки документов, как описано здесь: [url] http://blogs.alfresco.com/wp/ddraper/2012/05/22/customizing-share-javascript-widget-instantiation- часть-1 / [/ url]. Возможно ли это?

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

Заранее спасибо.


person Alejandro García Seco    schedule 14.12.2012    source источник
comment
Вы уже заявляете, что есть билеты JIRA (я их видел), но они все еще не работают. Так что единственный вариант, который у вас есть, - это дождаться исправления или буквально взломать свой путь. Сделать это быстро и грязно. Просто используйте CSS, чтобы скрыть социальный класс элемента и изменить URL-адрес в share-config-custom на нерабочий, чтобы он оставался безопасным.   -  person Tahir Malik    schedule 17.12.2012
comment
Очень полезный Тахир. На самом деле я удалил ссылку быстрого доступа как со страниц библиотеки документов, так и со страниц сведений о документе, просто добавив эту запись CSS, которая переопределяет стили, вычисленные для ссылки: .item-social a.quickshare-action { visibility: hidden; }   -  person Alejandro García Seco    schedule 17.12.2012
comment
Кстати, оставьте свой комментарий как ответ, если хотите, и я отмечу его как принятый.   -  person Alejandro García Seco    schedule 17.12.2012
comment
Нет проблем, я был немного занят, поэтому не смог опубликовать его :)   -  person Tahir Malik    schedule 17.12.2012


Ответы (1)


Поскольку расширение виджета «Библиотека документов» (documentlist.js) оказалось не таким простым, как я ожидал, я решил его более простым, простым и ненавязчивым решением, основанным на идее, изложенной в одном из комментариев к исходному вопросу. В общем, он заключается в определении модуля расширения, который добавляет настраиваемый CSS в заголовок каждой страницы. Этот CSS переопределяет стили ссылки quickshare следующим образом:

/* Disables the Quick Share link both in documentlibrary and document-details pages */
.item-social a.quickshare-action {
    visibility: hidden;
}

Здесь объясняется, как определить такой модуль расширения: https://forums.alfresco.com/en/viewtopic.php?f=48&t=47312#p140623.

Надеюсь, это поможет другим, пытающимся достичь того же.

person Alejandro García Seco    schedule 17.12.2012
comment
Ссылка на модуль расширения не работает. Можете поделиться ссылкой на создание такого модуля. Спасибо - person nikhil84; 03.01.2017