/**
* jobManager plugin - Jacek Sawczyszyn
*/
EasyEditScreens.screen.jobManagerDefault = {
containerId: null,
originalValues: null,
parentIds: null,
readOnly: false,
// Stored object for direct children
directChildList: null,
sliders: [],
init: function(containerId, readOnly, callback)
{
this.containerId = containerId;
var self = this;
// Store the read only value for use in other functions
self.readOnly = readOnly;
// Initialise original values if this is a re-render
self.originalValues = [];
this._getTemplate( function(html) {
var $container = jQuery(self.containerId);
// Add as last item (append) to container to avoid removing any other divs the container may already use like the 'warning' box.
$container.append('<div id="ees_editLinking">' + html + '</div>');
self._attachEvents();
callback.call(this);
}); // End this._getTemplate.
}, // End init
_getJobManagerOutput: function(assetId,callback)
{
var self = this,
api = new EasyEditAPI();
callback.call(self, '');
/*
api.queue('getKeywordsReplacements',{
asset_id: assetId,
keywords_array: ["%linking-%"]
});
This is how to queue api requests in Edit+
*/
}, // End _getKeywordManagerOutput.
/**
* Return metadata HTML template.
*/
_getTemplate: function(callback)
{
var html = '';
var self = this;
EasyEditAssetManager.getCurrentAsset( function(asset) {
self._getJobManagerOutput(asset.id, function(data) {
//call html = self._reRender(data); or similar to split out fetching data
callback.call(this,data);
}); // End _getJobManagerOutput.
}); // End getCurrentAsset.
}, // End _getTemplate.
_attachEvents: function()
{
var self = this;
// unbind events
// re-bind events
} // End _attachEvents.
}; // End EasyEditScreens.screen.JobManagerDefault.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
EasyEdit.plugins.jobManager = {
vars: {
},
init: function()
{
var self = this;
EasyEditEventManager.bind('EasyEditAfterLoad', self.initializeFunctions);
},
initializeFunctions: function() {
EasyEdit.plugins.jobManager.addJobManager();
},
addJobManager:function() {
var jobManager;
jobManager = {
getConfig: function() {
var screens = {
"JobManager": {
objectName: "jobManagerDefault",
className: "jobManagerDefault",
displayName: EasyEditLocalise._('Job Manager'),
lockType: ["attributes","links"],
isDefault: false
}
};
return screens;
}
};
EasyEditScreens.buildMenu(jobManager,"jobManagerDefault");
if(window.location.hash === "#mode=edit&screen=jobmanager") {
EasyEditAssetManager.getCurrentAsset( function(asset) {
//var self = this,
screenType = 'asset',
defaultObjectName = 'jobManagerDefault',
defaultScreen = (EasyEditConfig.hasOwnProperty('defaultScreen') ? EasyEditConfig.defaultScreen : 'details'),
url = EasyEditUrl.getURL();
var screen = (typeof(url.params.asset_ei_screen) === "string") ? url.params.asset_ei_screen : defaultScreen;
screen = (typeof(url.params.screen) === "string") ? url.params.screen : screen;
screen = (EasyEditUrl.hash.isset('screen')) ? EasyEditUrl.hash.get('screen') : screen;
screen = (typeof(screen) === "undefined") ? defaultScreen : screen;
// Object names should be type codes
var objectName = asset.attribute('type_code');
// Is the current asset a root node in a workspace?
if (EasyEditWorkspaceManager.isWorkspace(asset)) {
screenType = 'workspace';
var workspace = EasyEditWorkspaceManager.getWorkspaceFromRootNode(asset.id);
if (typeof(workspace.type) === "string") {
// If the workspace is valid, initialise the workspace screen type instead
objectName = workspace.type;
}// End if
}// End if
// Lets find out if the screen actually exists
var scope = (screenType === "workspace") ? "workspaces" : "assetTypes";
objectName = (EasyEditScreens[scope].hasOwnProperty(objectName)) ? objectName : defaultObjectName;
// We know we have a valid screen
//var screenConfig = EasyEditScreens[scope][objectName];
var screenConfig = jobManager;
// Make sure the screen exists in the screen object configuration
screen = EasyEditScreens.getValidScreenName(screenConfig.getConfig(),screen.replace(/%20/g,' '),defaultScreen);
jQuery('#ees_eesUi').attr('class', screen.toLowerCase());
// Output the page template
jQuery('#' + EasyEditComponents.contentWrapperId).append(EasyEditScreens._getTemplate());
//the building of the menu and initLoadScreen needs separating into their own functions, then, always call build menu but only call initLoadScreen if location hash is true
// Do the screen load
EasyEditScreens.doInitLoadScreen(asset,screenConfig,screen,screenType,function(){
$("#ees_screenMenujobManagerPageDefault").on("click",function() {
EasyEditScreens.loadScreen("jobManagerDefault",function() {
//Done
//See EasyEditScreens.screen.linkingDefault for how other screens are done
})
})
});
});
}
}
};