How to enableMajor?

117 Views Asked by At

How could I enable Major versioning on "Pages" list? My code is not working and I don't get any errors. Any suggestions?....

_spBodyOnLoadFunctionNames.push(onPageLoad());
function onPageLoad() {
    ExecuteOrDelayUntilScriptLoaded(enableMajor, 'SP.js')

}

function enableMajor() {

    var ctx = new SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle('Pages');

    ctx.load(list);

    ctx.executeQueryAsync(
        function () {
            list.enableMajor = true;




        },
        function (sender, args) {
            console.log('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
        }
        );
}

UPDATE 06-15 ====--------------- Major version will not set? i dont why it is not setted? Any suggestions?

 <script>
        var list;
    function getPublishingPages(success, error) {
        var ctx = SP.ClientContext.get_current();
        list = ctx.get_web().get_lists().getByTitle('Pages');
        var items = list.getItems(SP.CamlQuery.createAllItemsQuery());
        ctx.load(items, 'Include(File)');
        list.set_e
        ctx.executeQueryAsync(function () {
            success(items);
        },
        error);
    }



    SP.SOD.executeFunc('SP.js', 'SP.ClientContext', function () {
        getPublishingPages(printPagesInfo, logError);
    });


    function printPagesInfo(pages) {
        pages.get_data().forEach(function (item) {
            var file = item.get_file();
            var pageStatus = file.get_level() === SP.FileLevel.published ? 'published' : 'not published';
            alert(String.format('Page {0} is {1}', file.get_name(), pageStatus));
            list.set_enableVersioning(true);
            list.update();
            alert('Major versioning enabled');

        });
    }


    function logError(sender, args) {
        alert('An error occured: ' + args.get_message());
    }
</script>
1

There are 1 best solutions below

1
On BEST ANSWER

In order to enable Create major versions the following steps should be performed:

Example

function enableListVersioning(listTitle,success,error) {

    var ctx = SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle(listTitle);
    list.set_enableVersioning(true);
    list.update();
    ctx.executeQueryAsync(
        function () {
            success();
        },
        error);
}

//usage
enableListVersioning('Pages',
function(){
   console.log('Versioning is enabled'); 
},
function(sender,args){
   console.log('An error occured: ' + args.get_message());
});