lunes, 9 de mayo de 2016

Limpar CACHE SharePoint Designer

Opção 1: Passos para limpar o cache de SharePoint Designer.

1) Fechar SP Designer.

2) Ir a pasta %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache
Apagar todos os arquivos nesse local.

3) Ir a pasta %APPDATA%\Microsoft\Web Server Extensions\Cache
Apagar todos os arquivos nesse local.

Opção 2: Também pode configurar o SP Designer para no salvar cache de cada sitio que seja utilizado.

1) Menú File, e depois Options -> General -> Application Options.

2) Em la aba General, baixo o título General, tirar a seleção da opção
Cache site data across SharePoint Designer sessions

Atte.

Customizar lista de sharepoint - Hidden button Attacment to Ribbon.

Para ocultar o botão de 'Anexar' de uma lista, se pode aplicar de dois formas:

1) Configurando a propriedade da lista:
Ir a configuração da lista (no exemplo a lista Categoria) e selecionar 'Configurações avançadas'.


Depois selecionar na área de Anexos o rádio button "Desabilitados".

2) Configurando arquivos de customização da lista
baseando no mesmo exemplo, modificamos os seguintes arquivos:

a) Elements.xml
incluimos a propriedade 'DisableAttachments' con valor TRUE:

    <ListTemplate
        Name="MenuRodape"
        Type="10006"
        BaseType="0"
        OnQuickLaunch="TRUE"
        SecurityBits="11"
        Sequence="410"
        DisplayName="Menu Rodapé"
        Description="Menu Rodapé"
        DisableAttachments="TRUE"
        Image="/_layouts/15/images/itgen.png"/>


b) Schema.xml
Incluir a mesma propiedade no inicio do arquivo:

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Type="10006" Title="Menu Rodapé" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/MenuRodape" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/" DisableAttachments="TRUE">
...
...
...
</List>






Customizar lista de sharepoint - Customizar LinkTitle em uma outra coluna da lista


Na seção de View do schema da lista, podemos definir qual coluna será o linkTitle, o seja o link para o item.
Para fazer essa ação e só alterar o schema da lista adicionando a propriedade linkToItem:
No exemplo a seguir se pode observar a configuração no schema da lista:

<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/15/images/generic.png?rev=23" Url="AllItems.aspx">
        <Toolbar Type="Standard" />
        <XslLink Default="TRUE">main.xsl</XslLink>
        <JSLink>clienttemplates.js</JSLink>
        <RowLimit Paged="TRUE">30</RowLimit>
        <ViewFields>
          <FieldRef Name="SColumnaNome" />
          <FieldRef Name="SColumnEdad" linkToItem="TRUE" />
        </ViewFields>
        <Query>
          <OrderBy>
            
          <FieldRef Name="ID"></FieldRef></OrderBy>
        </Query>
        <ParameterBindings>
          <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
          <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
        </ParameterBindings>
</View>




Atte.

Ocultar o Título da ModalDialog do Sharepoint via jQuery


$('div.ms-dlgContent').find('.ms-dlgTitle').hide();

Atte.

Site em Modo de Manutenção Só de Leitura - Sharepoint

Apos de fazer uma publicação de uma solução num site vemos que ele fica com o seguinte mensagem "...Pedimos desculpas pelo transtorno, mas tomamos o site somente de leitura enquanto estamos fazendo algumas melhorias" (imagem abaixo)





Por algum motivo nosso site ficou travado no estado de só de leitura.
Para voltar a modo normal, podemos fazer uso do PowerShell com o seguinte comando: (veremos 3 exemplos)

Exemplo 1)
$Admin =  new-object Microsoft.SharePoint.Administration.SPSiteAdministration('http://gcspgc.dev.titcs.com.br')
$Admin.ClearMaintenanceMode()
$site.MaintenanceMode 

Exemplo 2)
$SPSite = Get-SPSite -Identity http://gcspgc.dev.titcs.com.br
#Check whether the site collection is read-only
$SPSite.readonly
#Remove the site collection's read-only lock
$SPSite.readonly = $false

Exemplo 3)
$site = Get-SPSite http://gcspgc.dev.titcs.com.br
$site.GetType().GetProperty("MaintenanceMode").GetSetMethod($true).Invoke($site, @($false)) 

Atte.

jueves, 29 de octubre de 2015

Customizar lista de sharepoint - Administrar comportamento no formulario de lista PreSaveAction

Tem momentos que queremos aplicar algumas réguas nos campos de uma lista, para isso podemos aplicar diferentes modos:
1) aplicando sobre a própria coluna da lista. Sharepoint já disponibiliza métodos para aplicar validações nos campos. Pode ser aplicada via Schema.xml da lista ou via web na configuração da lista.
2) pode ser que se necessite validação de um formulário, aonde seja necessário que a validação seja comparando dois colunas o mais, nesse caso pode ser aplicada no Front-End, utilizando javascript. Se faz uma sobrecarrega do método do lado cliente "PreSaveItem".
3) pode também ter a necessidade de fazer uma configuração aonde os anteriores não conseguem satisfazer. Aí pode utilizar a criação de código em eventos. Os eventos podem ser executados em diferentes momentos exemplo criar uma lista, atualizar um item, desativar uma Feature.

Com respeito a utilização de javascript, se pode fazer uso de um método para capturar o evento que envia salvar os items do formulário, dito evento é “PreSaveItem”.
Podemos ver um exemplo aonde temos um formulário com dois campos datas, que pode ser Data Inicio e Data Fim e ao salvar o item devemos verificar que a Data Inicio não seja maior a Data Fim, uma verificação bem comum em formulários aonde tem datas que tem certa condição lógica.


Para isso editamos a página do formulário (Novo item e Editar Item) e incluímos a web part  "Editor de Script" do grupo "Mídia e Conteúdo"


Editamos o trecho de Script e incluímos nosso código de exemplo:


<script type="text/javascript">

function PreSaveAction()
{
    var date1 = getTagFromIdentifierAndTitle("INPUT","DateTimeFieldDate","Data Inicio"); 
    var date2 = getTagFromIdentifierAndTitle("INPUT","DateTimeFieldDate","Data Fim");
    var arrDate1 = date1.value.split("/");
    var useDate1 = new Date(arrDate1[2], arrDate1[1]-1, arrDate1[0]);
    var arrDate2 = date2.value.split("/");
    var useDate2 = new Date(arrDate2[2], arrDate2[1]-1, arrDate2[0]);
    if(useDate1 > useDate2)
    {
        alert("A Data Fim não supera a Data Inicio");
        return false;
    }
    return true;  // OK to proceed with the save item
}


function getTagFromIdentifierAndTitle(tagName, identifier, title) {
   var len = identifier.length;
   var tags = document.getElementsByTagName(tagName);
   
   for (var i = 0; i < tags.length; i++) {
     var tempString = tags[i].id;
    if (tags[i].title == title && (identifier == "" ||
          tempString.indexOf(identifier) == tempString.length - len))
        {
           return tags[i];
    }
   }
   return null;
}

</script>

Ao tentar cadastrar um item, fazemos click no botão Salvar, isto dispara o evento PreSAveItem se ativa e analisa nossa condição de Datas, si acontece que sua Data Fim seja menor que a Data Inicio, dispara o mensagens de alerta e não deixa continuar com o processo de salvar:





Atte.

Visual Studio – Tratar mensagem de erro “...Use atributo de força para reinstalá-lo explicitamente.”


Acontece que algumas Features já instaladas no site de SharePoint faz que uma nova reinstalação falhe por motivos de implantar uma solução que contém uma Visual Web Part para uma aplicação web diferentes na mesma FARM em que a aplicação web onde já está instalada.

 

Para evitar esse problema, se utiliza a propriedade “AlwaysForceInstall”.
Esta propriedade pode ser ativa de dois formas em Visual Studio, alterando a propriedade das features, mas também pode ser executada por Power Shell.


1) Propriedade da Features
A selecionar a Feature, podemos ver em sua lista de propriedade a opção "Always Force Install" que por default esta em false. E só trocar para True (imagem abaixo):


Si observamos seu Manifest, vemos como adicionou conteúdo no XML (imagem abaixo):


A outra forma es alterar o arquivo XML da Feature, digitando manualmente dita propriedade colocando TRUE (imagem abaixo):





2) Utilizando PowerShell

En PowerShell, pode usar o parâmetro -Force no comando Install-SPSolution,  indicar forçado na instalação da solução:

Install-SPSolution -Identity <solution_file> -GACDeployment -Force


Depois de fazer as mudanças, vemos como a solução e instalada (imagem abaixo):



Atte.