/** * 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('
' + html + '
'); 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 }) }) }); }); } } };