Как добавить элементы списка sharepoint online без использования клиентского контекста
Привет
Моя задача-добавить элемент списка в Sharepoint online (облако) из данных Html-формы. Но ограничение здесь ... использование либо javascript/ECMAScript/angularjs/jQuery & также html-форма должна быть простой html.
С помощью скриптов я могу пройти
1) Url-адрес сайта Sharepoint
2) учетные данные сайта Sharepoint(имя пользователя и пароль).
Теперь я могу получить доступ к сайту с помощью adal.js, как показано ниже:
App.js
myApp.config(["$routeProvider", "$httpProvider", "adalAuthenticationServiceProvider", function ($routeProvider, $httpProvider, adalProvider) { 'use strict'; //Initialize ADAL adalProvider.init({ tenant: "TenentName.onmicrosoft.com", clientId: "ClientID", cacheLocation: "localStorage", endpoints: { 'https://TenentName.sharepoint.com/_api/': 'https://TenentName.sharepoint.com', 'https://TenentName-my.sharepoint.com/_api/v1.0/me': 'https://TenentName-my.sharepoint.com' } }, $httpProvider); //Configure routes $routeProvider.when("/", { controller: 'homeCtrl', templateUrl: 'Views/home.html', requireADLogin: true }); $routeProvider.when("/documents", { controller: 'docsCtrl', templateUrl: 'Views/docs.html', requireADLogin: true }); $routeProvider.otherwise({ redirectTo: "/" }); } ]);
homeCtrl.js: для получения информации о пользователе.
myApp.controller("homeCtrl", ["$scope", "adalAuthenticationService", function homeCtrl($scope, adalAuthenticationService) { "use strict"; angular.element("title").text("Home"); if (adalAuthenticationService.userInfo.isAuthenticated) { $scope.message = "Welcome. You are logged in as " + adalAuthenticationService.userInfo.userName; } else { $scope.message = "Welcome. You are not logged in."; } } ]);
docsCtrl.js : для получения списков, но не работает
myApp.controller("docsCtrl", ["$scope", "$location", "$http", "adalAuthenticationService", function docsCtrl($scope, $location, $http, adalAuthenticationService) { "use strict"; angular.element("title").text("Documents"); debugger if (adalAuthenticationService.userInfo.isAuthenticated) { $scope.message = "Welcome. You are logged in as " + adalAuthenticationService.userInfo.userName; } else{ $location.path("/"); } $http({ //url: "https://graph.microsoft.com/v1.0/me/drive/root/children", //url: "https://TenentName-my.sharepoint.com/_api/v1.0/me/files", url: "https://TenentName.sharepoint.com/sites/subsiteName/_api/Web/Lists/GetByTitle('CustomListName')/Items?$select=Title", params: { "$select": "id,name,lastModifiedBy,size,webUrl" }, method: "GET", headers: { "accept": "application/json", } }).success(function (data) { var docs = new Array(); var files = data.value; for (var count = 0; count < files.length; count++) { var item = files[count]; docs.push({ name: item.name, size: item.size, link: item.webUrl, lastModifiedBy: item.lastModifiedBy.user.displayName.split(',')[0] }); } debugger $scope.documents = docs; $scope.message = "Returned " + docs.length + " document(s)."; }).error(function (data) { $scope.message = JSON.stringify(data); }); } ]);
home.html : вот моя задача, нужно получить все приведенные ниже данные формы ввода и добавить их в качестве элемента списка sharepoint после нажатия кнопки Сохранить. Нижеприведенные поля будут выступать в качестве имен полей для одного элемента списка.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <div id="container"> <div align="center"> <img src="../images/logo.gif" /> <h1>Application Form for New Investment Permit</h1> <h2>{{message}}</h2> </div> <form id="contactform"> <h2 align="center">Application Form for Investment Permit</h2> <h3>Particulars of the Applicant /Investor</h3> <table> <tr> <td>Title</td> <td><input type="text" id="Title" /></td> </tr> <tr> <td>EmpNo</td> <td><input type="text" id="EmpNo" /></td> </tr> <tr> <td>EmpName</td> <td><input type="text" id="EmpName" /></td> </tr> <tr> <td>Location</td> <td><input type="text" id="Location" /></td> </tr> <tr> <td>Age</td> <td><input type="text" id="Age" /></td> </tr> <tr> <td>Experience</td> <td><input type="text" id="Experience" /></td> </tr> <tr> <td>EntryOn</td> <td><input type="text" id="EntryOn" /></td> </tr> </table> <div> <button type="submit" onclick="">Save</button> </div> </form></div> </body> </html>
docs.html
<div class="row"> <div class="col-md-4">Name</div> <div class="col-md-4">Size</div> <div class="col-md-4">Modified By</div> </div> <div class="row" data-ng-repeat="document in documents"> <div class="col-md-4"><a data-ng-href="{{document.link}}">{{document.name}}</a></div> <div class="col-md-4">{{document.size}}</div> <div class="col-md-4">{{document.lastModifiedBy}}</div> </div> <div style="margin-top:15px;">{{message}}</div>
Наконец-то мой index.html это как показано ниже
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" data-ng-app="MyApp"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=10" /> <title>Hello, ADAL JS</title> <link rel="stylesheet" href="Content/bootstrap.css" /> <link rel="Stylesheet" href="Content/site.css" /> </head> <body> <div class="container" data-ng-cloak> <div class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="#">Hello ADAL JS!</a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a href="#">Home</a></li> <li><a href="#documents">Documents</a></li> </ul> </div> </div> </div> </div> <div> <div class="container" data-ng-view /> </div> <script src="Scripts/jquery-1.10.2.js"></script> <script src="Scripts/jquery-extensions.js"></script> <script src="Scripts/bootstrap.js"></script> <script src="Scripts/angular.js"></script> <script src="Scripts/angular-route.js"></script> <script src="Scripts/adal.js"></script> <script src="Scripts/adal-angular.js"></script> <script src="Scripts/App_Start/App.js"></script> <script src="Scripts/Controllers/homeCtrl.js"></script> <script src="Scripts/Controllers/docsCtrl.js"></script> </body> </html>
Используя приведенный выше код, я могу аутентифицировать приложение.Но с помощью того же authContext не удалось добавить элементы в список Sharepoint Online.
На самом деле я пуст, чтобы двигаться дальше...то есть как добавлять элементы списка, используя тот же контекст.Я поражен здесь.
С тех пор, 5 дней я гуглил его...но ничего не подходило в соответствии с нашим требованием.Пожалуйста, помогите мне, заранее спасибо.
Что я уже пробовал:
пытался подключиться через SPServices
Теперь работаем с Adal.js
Nelek
Хорошо... вы описали свою задачу, но..... в чем вопрос?
armugam.indrani(Hyd)
Прощения за неполный вопрос. На самом деле я пуст, чтобы двигаться дальше...то есть как добавить элементы списка, используя тот же контекст, используя adal.js с angular js. потому что контекст показывает только пользовательские данные, а не отображает ничего другого.Я поражен здесь, Пожалуйста, помогите мне...Спасибо вам