0

I want to show SPModal Dialog which contains a new item creation form to the user on the page intranet home page if user is not create or submit any items in that list.

I tried but I am getting error when I am passing current user item in query.

Please suggest me ways to do that

<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 List Items over here

Dikesh Gandhi
  • 6,803
  • 4
  • 30
  • 55
akj
  • 351
  • 1
  • 5
  • 17

0 Answers0