2016-04-08 7 views
0

Wir haben SharePoint Online 2013-Website, die die Berichte für verschiedene Abteilungen anzeigt. Alle Abteilungen haben unterschiedliche Gruppen und ihnen wurde auf diese Weise eine Berechtigung zugewiesen, sodass eine Gruppe keine anderen Gruppendateien sehen kann. Ich benutze JAVA SCRIPT und AJAX, um die Dateien aus der Galerie zu bekommen. Wenn ich JavaScript auf meiner Seite verwende, kann ich die Dokumente in der Clientanwendung nicht öffnen. Sie wird im Büro online geöffnet, als Benutzer herunterladen müssen. IST dort sowieso kann der Benutzer darauf klicken und es wird die Dateien herunterladen. Ich ging in die Bibliothek Einstellung und änderte den Standard zu öffnen in Client-Anwendung auch in der Website-Sammlung und Funktionen geändert, aber immer noch SharePoint öffnet die Datei in online statt Client-Anwendung. Wir sind mit Office 2010 und Sharepoint Online 2013.Nicht möglich, Microsoft Office-Dateien in Office-Client von SharePoint Online 2013 zu öffnen

(function() { 


    // Create object that have the context information about the field that we want to change it's output render 
    var galleryContext = {}; 
    galleryContext.Templates = {}; 


    galleryContext.Templates.Header = "<div class='gallery'>"; 
    galleryContext.Templates.Footer = "</div><div class='gallerydocs'></div>"; 


    // This line of code tell TemplateManager that we want to change all HTML for item row render 
    galleryContext.Templates.Item = galleryTemplate; 

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(galleryContext); 

})(); 

// This function provides the rendering logic 
function galleryTemplate(ctx) { 
    var icon = ctx.CurrentItem["GalleryIcon"]; 
    var src = ctx.CurrentItem["FileRef"]; 
    var name = ctx.CurrentItem["Title"]; 
    var subtitle =ctx.CurrentItem["SubTitle"]; 
    var bgcolor = ctx.CurrentItem["BackgroundColor"]; 
    var fontcolor = ctx.CurrentItem["FontColor"]; 

    //var description = ctx.CurrentItem["Description"]; 
// console.log(JSON.stringify(ctx.CurrentItem["GalleryIcon"])); 
    // Return whole item html 
    return "<div onclick='javascript:getGalleryDocs("+'"'+ src + '"' +", "+'"'+ bgcolor + '"' +", "+'"'+ subtitle + '"' +", "+'"'+ fontcolor + '"' +", "+'"'+ name + '"' +")'><div class='galleryblock' style='background-color:" + bgcolor + ";color:"+ fontcolor+"' >"+name +"<br/><br/><p>"+subtitle +"</p></div></div>"; 
} 


function getGalleryDocs(folder , bgcolor, subtitle ,fontcolor , name) 
{ 

$.ajax({ 
     url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/GetFolderByServerRelativeUrl('"+folder+"')/files?$orderby=Title", 
     method: "GET", 
     headers: { "Accept": "application/json; odata=verbose" }, 
     success: function (data) { 
     var html="<div class='gallerynav'><span><a href='javascript:goback();'>BILLING REPORTS</a><span> <i class='fa fa-caret-right' ></i><span>"+name+"</span></div><div class='galleryblock' style='float:none;background-color:" + bgcolor + ";color:"+ fontcolor+"' >"+name +"<br/><br/><p>"+subtitle +"</p></div><span></span>"; 
     var results = data.d.results; 
     //console.log(JSON.stringify(results.length)); 
     html+= "<ul class='gallerylinks'>"; 
     if(results.length > 0) 
     { 
      for(i=0 ; i< results.length ; i++) 
      { 
       var item = results[i]; 
       html+= "<li><a href='" + item.LinkingUrl + "' target='_blank'>"+item.Title+"&nbsp;&nbsp;<i class='fa fa-external-link'></i></a></li>"; 
      } 
     } 
     else 
     { 
      html+="&nbsp;&nbsp;&nbsp;THERE ARE NO DOCUMENTS IN THIS GALLERY" 
     } 
     html+="<ul>" 
     //console.log(JSON.stringify(data)); 
     $(".gallery").hide(500); 
     $(".gallerydocs").html(html); 

     }, 
     error: function (data) { 
      $(".gallerydocs").html("You dont have permissions to view this folder!") 
     } 
     }); 
} 
function goback(){ 
$(".gallery").show(500); 
     $(".gallerydocs").html(""); 
} 

Antwort

0

ich nicht eine Umgebung haben Hand dies auf zu prüfen, aber es wird etwas zu tun mit Ihrer href Verbindung sein. Es muss anders gebaut werden. Die folgende Lösung wird hoffentlich in der Client-Anwendung geöffnet.

<a href="" 
    onclick="editDocumentWithProgID2('http://server/site/doclib/folder/Document.docx', 
    '', 
    'SharePoint.OpenDocuments', '0', 
    'http://server/site', '0')"> 
    This will open the file in edit mode 
</a> 

A full post Versuchen here gefunden werden kann

THis Post eine Lösung

Sorry, ich

Viel Glück testen können nicht direkt zum Download bietet

Cheers Truez

+0

Was ist, wenn ich möchte, dass sie als schreibgeschützt oder als Download auf ihrem eigenen Desktop geöffnet werden und sie Änderungen vornehmen können, die sich nicht auf die in SharePoint gespeicherte Masterdatei auswirken. – James

+0

Überprüfen Sie den zweiten Link für Informationen zum Download der Datei, noch einmal ist es nur ein kleiner zwicken zu Ihrem HTML. – Truezplaya

Verwandte Themen