I want to create one SP dialogue box at home page which load the new item form of list or survey if current login user is not created any item previously.
Is there any way to do that ?
I tried using query but it takes time to load data. My Code is as below :
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(init,'sp.js');
var context;
var web;
var user;
var siteUrl = _spPageContextInfo.siteServerRelativeUrl ;
//var userId= _spPageContextInfo.userId;
var userId= 123;
var flag=true;
//var options = { title: "Announcements - New Item",url:"../Lists/Announcements/NewForm.aspx"};
var options = { title: "Announcements - New Item",url:"http://webtest:3333/Lists/test/NewForm.aspx"};
function init() {
context = SP.ClientContext.get_current();
web = context.get_web();
//alert(flag);
getCurrentUser();
retrieveListItems();
}
function getCurrentUser() {
user = web.get_currentUser();
context.load(user);
context.executeQueryAsync(onGetUserNameSucces, onGetUserNameFail);
}
function onGetUserNameSucces() {
// TODO: implement your own succes handler
//alert(user.get_title());
}
function onGetUserNameFail(sender, args) {
// TODO: implement your own fail handler and do some logging
}
function retrieveListItems() {
var oList = context.get_web().get_lists().getByTitle("test");
var camlQuery = new SP.CamlQuery();
//context.load(user);
//alert(userId);
camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name=\'Author\' /><Value Type=\'User\'>'+ user.get_title() +'</Value></Eq></Where></Query></View>');
this.collListItem = oList.getItems(camlQuery);
context.load(collListItem);
context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded),Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded(sender, args) {
//alert( _spPageContextInfo.userId);
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
'\nTitle: ' + oListItem.get_item('Title');
}
alert(listItemInfo.toString());
if(listItemInfo==null){
// flag='false';
SP.UI.ModalDialog.showModalDialog(options);
}
//alert(flag);
}
function onQueryFailed(sender, args) {
alert('Error: ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script>
I cant get result in the data