sharepoint server – How to create a visual web part

I want to create a visual web part that display a set of docuoments from a choosen library for SP2013.

I know there is an OOTB Web Part, that doesn’t work for me because it inherite security staffs from SharePoint, which means I want for this web part to be visual for all users (even users who doesn’t have access to this Document Library).

I have an idea to do this using a JavaScript. but my question now, how can create the following visual and connect this visual to that Document Library dynamically !

enter image description here

“Python AutoClicker” Part 2 – Code Review Stack Exchange

I previously posted a question for codereview:

Python Autoclicker

And I received some great feedback and changes to do in the code.

I have done many of the changes mentioned in the answers and here is the final code:

from pynput.keyboard import Controller
from time import sleep


def auto_click(key: str, n_clicks: int, delay: float):
    keyboard = Controller()

    for _ in range(n_clicks):
        keyboard.tap(key)
        sleep(delay)


def main():
    key = input("Key to be autopressed: ")

    try:
        n_clicks = int(input("Number of autopresses (integer): "))
    except ValueError:
        print("n The number of autopresses should be an integer value, defaulting to 1. n")
        n_clicks = 1

    try:
        delay = float(input("Delay between each autopress in seconds (integer/float): "))
    except ValueError:
        print("n The delay between each autoclick should be an integer or a decimal value, defaulting to 1 (second). n")
        delay = 1

    auto_click(key, n_clicks, delay)

if __name__ == '__main__':
    main()

What is it that you think should be made better in this code? Any feedback and suggestions would be much appreciated.

Here’s the github repo:

https://github.com/SannanOfficial/AutoKeyPython

web part – Cannot Create New Site Collection

Event log message was: ‘The site template was not provisioned
successfully. Delete this site collection in Central Administration,
and then create a new site collection.’. Exception was:
‘Microsoft.SharePoint.WebPartPages.WebPartPageUserException: This page
has encountered a critical error. Contact your system administrator if
this problem persists. at
Microsoft.SharePoint.ApplicationRuntime.SafeControls.IsSafeControl(Boolean
isAppWeb, Type type, String& unsafeErrorMessage) at
Microsoft.SharePoint.WebPartPages.TypeCache.CheckIfSafeControl(Type
type, Boolean isAppWeb) at
Microsoft.SharePoint.WebPartPages.TypeCache.get_Item(Type type,
Boolean isAppWeb, Boolean disableSafeControlsCheck) at
Microsoft.SharePoint.WebPartPages.WebPart.WriteXmlGlobal(Boolean
disableSafeControlsCheck) at
Microsoft.SharePoint.WebPartPages.BinaryWebPartSerializer.Serialize(SerializationMode
mode, BinaryWebPartSerializerFlag binaryWebPartSerializerFlags,
BinaryWebPartSerializerWriter writer) at
Microsoft.SharePoint.WebPartPages.BinaryWebPartSerializer.Serialize(SerializationMode
mode, BinaryWebPartSerializerFlag binaryWebPartSerializerFlags) at
Microsoft.SharePoint.WebPartPages.SPWebPartManager.AddWebPartToStore(WebPart
webPart, Int32 viewId, String viewGuid) at
Microsoft.SharePoint.WebPartPages.SPWebPartManager.AddWebPartInternal(SPSupersetWebPart
superset, Boolean throwIfLocked) at
Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager.AddWebPart(WebPart
webPart, String zoneId, Int32 zoneIndex) at
Microsoft.Office.DocumentManagement.Internal.DocumentSetFeatureReceiver.FeatureActivated(SPFeatureReceiverProperties
properties) at
Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate,
Boolean fForce) at Microsoft.SharePoint.SPFeature.Activate(SPSite
siteParent, SPWeb webParent, SPFeaturePropertyCollection props,
SPFeatureActivateFlags activateFlags, Boolean fForce) at
Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition
featdef, Version version, SPFeaturePropertyCollection properties,
SPFeatureActivateFlags activateFlags, Boolean force, Boolean
fMarkOnly) at
Microsoft.SharePoint.SPFeatureCollection.AddInternalWithName(Guid
featureId, Int32 compatibilityLevel, String featureName, Version
version, SPFeaturePropertyCollection properties,
SPFeatureActivateFlags activateFlags, Boolean force, Boolean
fMarkOnly, SPFeatureDefinitionScope featdefScope) at
Microsoft.SharePoint.SPFeatureCollection.AddInternal(Guid featureId,
Version version, SPFeaturePropertyCollection properties, Boolean
force, Boolean fMarkOnly, SPFeatureDefinitionScope featdefScope) at
Microsoft.Office.DocumentManagement.VideoAndRichMedia.Internal.VideoAndRichMediaFeatureReceiver.FeatureActivated(SPFeatureReceiverProperties
properties) at
Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate,
Boolean fForce) at Microsoft.SharePoint.SPFeature.Activate(SPSite
siteParent, SPWeb webParent, SPFeaturePropertyCollection props,
SPFeatureActivateFlags activateFlags, Boolean fForce) at
Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition
featdef, Version version, SPFeaturePropertyCollection properties,
SPFeatureActivateFlags activateFlags, Boolean force, Boolean
fMarkOnly) at
Microsoft.SharePoint.SPFeatureCollection.AddInternalWithName(Guid
featureId, Int32 compatibilityLevel, String featureName, Version
version, SPFeaturePropertyCollection properties,
SPFeatureActivateFlags activateFlags, Boolean force, Boolean
fMarkOnly, SPFeatureDefinitionScope featdefScope) at
Microsoft.SharePoint.SPFeatureManager.EnsureFeaturesActivatedCore(SPSite
site, SPWeb web, String sFeatures, Boolean fMarkOnly) at
Microsoft.SharePoint.SPFeatureManager.<>c__DisplayClassa.b__9()
at Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken,
Boolean bResetContext, WaitCallback code, Object param) at
Microsoft.SharePoint.SPFeatureManager.EnsureFeaturesActivatedAtSite(Byte()&
userToken, Guid& tranLockerId, Int32 nZone, Guid databaseid, Guid
siteid, String sFeatures) at
Microsoft.SharePoint.Library.SPRequestInternalClass.ApplyWebTemplate(String
bstrUrl, String bstrWebTemplateContent, Int32
fWebTemplateContentFromSubweb, Int32
fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate,
Int32& plWebTemplateId) at
Microsoft.SharePoint.Library.SPRequest.ApplyWebTemplate(String
bstrUrl, String bstrWebTemplateContent, Int32
fWebTemplateContentFromSubweb, Int32
fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate,
Int32& plWebTemplateId) at
Microsoft.SharePoint.SPWeb.ProvisionWebTemplate(SPWebTemplate
webTemplate, String webTemplateToUse, SPFeatureWebTemplate
featureWebTemplate) at
Microsoft.SharePoint.SPWeb.ApplyWebTemplate(SPWebTemplate webTemplate)
at
Microsoft.SharePoint.Publishing.PortalProvisioningProvider.CreatePortal(String
xmlFile, SPWeb rootWeb)’

I have removed all the webparts but nothing else is working.

web part – How do I use a list from one site on another SharePoint Site

I have used SP Designer to create List web parts that can be used across sites in the same collection. The web parts I created a few months ago work fine.

But now when I try to create a new web part using SP designer I get the error message ” The file you imported is not valid. Verify that the file is a Web Part description file (*.webpart or *.dwp) and that it contains well-formed XML.” when I try to place the newly created Web part on a page.

Odd that the web parts I created months ago using the same method still work fine. Any solution for this?

LowEndBoxTV: Building a Highly Available WordPress Site, Part 2: Configuring the Nodes

In this series, we take you from bare-metal to a highly-available WordPress site, load-balanced over two nodes and resistant to VPS failures using MariaDB multi-master replication, DRBD, and round-robin DNS.

In this episode, we setup Debian and install software on the nodes.

How to Setup a Highly Available WordPress Site From Scratch, Part 2

Part 1 of this series is already on LowEndBoxTV.


As we launch our channel, we would appreciate your likes, shares, and above all subscriptions.  We’re also interested to know what kind of content you’d like to see – please comment below!

raindog308

I’m Andrew, techno polymath and long-time LowEndTalk community Moderator. My technical interests include all things Unix, perl, python, shell scripting, and relational database systems. I enjoy writing technical articles here on LowEndBox to help people get more out of their VPSes.

magento2 – Update part of existing ui component

here is the component I have and want to modify (I just need to add a simple sentence in there, nothing that “should be” too hard) :

    <field name="imageUploader_0">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="dataType" xsi:type="string">string</item>
                <item name="label" xsi:type="string" translate="true">Image 3</item>
                <item name="visible" xsi:type="boolean">true</item>
                <item name="formElement" xsi:type="string">imageUploader</item>
                <item name="elementTmpl" xsi:type="string">ui/form/element/uploader/uploader</item>
                <item name="previewTmpl" xsi:type="string">Magento_Catalog/image-preview</item>
                <item name="uploaderConfig" xsi:type="array">
                    <item name="url" xsi:type="url" path="plp/plp/imageupload"/>
                </item>
            </item>
        </argument>
    </field>

Which gives this result

image component

My goal is to add some text under Maximum file size.

I manage to found that Maximul file size was located in vendor/magento/module-ui/view/base/web/templates/form/element/uploader/image.html

But I can’t see where is the link with that html page and the template that seems to be used : vendor/magento/module-catalog/view/adminhtml/web/template/image-preview.html

Also, I don’t want to add that text each time this image-preview is called but only on that specific case…so I guess I probably have to make my own extends from the template to make it different from the catalog one…but as I don’t see the link between image-preview.html and image.html I’m kinda lost in there. I’m also really newbie with ui component.

Thanks for your assistance.

This is the image-preview.html from magento

<div class="file-uploader-summary">
    <div class="file-uploader-preview image-uploader-preview">
        <a class="image-uploader-preview-link" attr="href: $parent.getFilePreview($file)" target="_blank">
            <div class="file-uploader-spinner image-uploader-spinner" />
            <img
                class="preview-image"
                tabindex="0"
                event="load: $parent.onPreviewLoad.bind($parent)"
                attr="
                    src: $parent.getFilePreview($file),
                    alt: $file.name,
                    title: $file.name">
        </a>

        <div class="actions">
            <button
                type="button"
                class="action-remove"
                data-role="delete-button"
                attr="title: $t('Delete image')"
                disable="$parent.disabled"
                click="$parent.removeFile.bind($parent, $file)">
                <span translate="'Delete image'"/>
            </button>
        </div>
    </div>

    <div class="file-uploader-filename" text="$file.name"/>
    <div class="file-uploader-meta">
        <text args="$file.previewWidth"/>x<text args="$file.previewHeight"/>,
        <text args="$parent.formatSize($file.size)"/>
    </div>
</div>

And this this is the image.html

<div class="admin__field" visible="visible" css="$data.additionalClasses">
    <label class="admin__field-label" if="$data.label" attr="for: uid">
        <span translate="label" attr="'data-config-scope': $data.scopeLabel"/>
    </label>

    <div class="admin__field-control" css="'_with-tooltip': $data.tooltip">
        <div class="file-uploader image-uploader" data-role="drop-zone" css="_loading: isLoading">
            <div class="file-uploader-area">
                <input type="file" afterRender="onElementRender" attr="id: uid, name: inputName, multiple: isMultipleFiles" disable="disabled" />
                <label class="file-uploader-button action-default" attr="for: uid, disabled: disabled" disable="disabled" translate="'Upload'" />
                <label
                    data-bind="event: {change: addFileFromMediaGallery, click: openMediaBrowserDialog}"
                    class="file-uploader-button action-default"
                    attr="id: mediaGalleryUid, disabled: disabled"
                    data-force_static_path="1"
                    translate="'Select from Gallery'"/>
                <render args="fallbackResetTpl" if="$data.showFallbackReset && $data.isDifferedFromDefault"/>
                <p class="image-upload-requirements">
                    <span if="$data.maxFileSize">
                        <span translate="'Maximum file size'" />: <text args="formatSize($data.maxFileSize)"/>.
                    </span>
                    <span if="$data.allowedExtensions">
                        <span translate="'Allowed file types'" />: <text args="getAllowedFileExtensionsInCommaDelimitedFormat()"/>.
                    </span>
                </p>
            </div>

            <render args="tooltipTpl" if="$data.tooltip"/>

            <div class="admin__field-note" if="$data.notice" attr="id: noticeId">
                <span html="notice"/>
            </div>

            <label class="admin__field-error" if="error" attr="for: uid" text="error"/>

            <each args="data: value, as: '$file'" render="$parent.getPreviewTmpl($file)"/>

            <div if="!hasData()" class="image image-placeholder" click="triggerImageUpload">
                <div class="file-uploader-summary product-image-wrapper">
                    <div class="file-uploader-spinner image-uploader-spinner" />
                    <p class="image-placeholder-text" translate="'Browse to find or drag image here'"/>
                </div>
            </div>
        </div>
        <render args="$data.service.template" if="$data.hasService()"/>
    </div>
</div>

LowEndBoxTV: Building a Highly Available WordPress Site, Part 1

In this series, we take you from bare-metal to a highly-available WordPress site, load-balanced over two nodes and resistant to VPS failures using MariaDB multi-master replication, DRBD, and round-robin DNS.

In this episode, we discuss the design and architecture of this solution.

This video was based on our earlier tutorial series.


As we launch our channel, we would appreciate your likes, shares, and above all subscriptions.  We’re also interested to know what kind of content you’d like to see – please comment below!

raindog308

I’m Andrew, techno polymath and long-time LowEndTalk community Moderator. My technical interests include all things Unix, perl, python, shell scripting, and relational database systems. I enjoy writing technical articles here on LowEndBox to help people get more out of their VPSes.