mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
started work on tasks + cleanup of action introspection...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
11fd3048dc
commit
c99338782e
@ -544,6 +544,7 @@ module.Base = core.ImageGridFeatures.Feature({
|
||||
suggested: [
|
||||
'tags',
|
||||
'sort',
|
||||
'tasks',
|
||||
],
|
||||
*/
|
||||
|
||||
|
||||
@ -48,10 +48,15 @@ function(attr, states, a, b){
|
||||
|
||||
/*********************************************************************/
|
||||
|
||||
// Root ImageGrid.viewer object...
|
||||
//
|
||||
var ImageGridFeatures =
|
||||
module.ImageGridFeatures = Object.create(features.FeatureSet)
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Setup runtime info...
|
||||
|
||||
// nw or node...
|
||||
if(typeof(process) != 'undefined'){
|
||||
|
||||
@ -96,6 +101,7 @@ if(typeof(process) != 'undefined'){
|
||||
|
||||
|
||||
/*********************************************************************/
|
||||
// System life-cycle...
|
||||
|
||||
// XXX should this be a generic library thing???
|
||||
// XXX should his have state???
|
||||
@ -213,6 +219,7 @@ module.LifeCycle = ImageGridFeatures.Feature({
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Workspace...
|
||||
//
|
||||
// Basic protocol:
|
||||
// A participating feature should:
|
||||
@ -368,6 +375,63 @@ module.Workspace = ImageGridFeatures.Feature({
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
// Tasks...
|
||||
// XXX should this be a separate module???
|
||||
|
||||
var tasks = require('lib/tasks')
|
||||
|
||||
// XXX see if a protocol can be practical here to:
|
||||
// - serialize/restore jobs
|
||||
// - ...
|
||||
var TaskActions = actions.Actions({
|
||||
config: {
|
||||
},
|
||||
|
||||
get jobs(){
|
||||
return this.__jobs
|
||||
},
|
||||
|
||||
getJob: ['- Jobs/',
|
||||
function(name){
|
||||
name = name || this.data.newGid()
|
||||
|
||||
// get/init task dict...
|
||||
var t = this.__jobs = this.__jobs || {}
|
||||
// get/init task...
|
||||
var job = t[name] = t[name] || tasks.Queue()
|
||||
job.name = name
|
||||
|
||||
return job
|
||||
}],
|
||||
|
||||
// XXX stop
|
||||
})
|
||||
|
||||
|
||||
var Tasks =
|
||||
module.Tasks = ImageGridFeatures.Feature({
|
||||
title: '',
|
||||
|
||||
tag: 'tasks',
|
||||
|
||||
depends: [ ],
|
||||
|
||||
actions: TaskActions,
|
||||
|
||||
handlers: [
|
||||
['start',
|
||||
function(){
|
||||
// XXX prepare for recovery and recover...
|
||||
}],
|
||||
['stop',
|
||||
function(){
|
||||
// XXX stop tasks and prepare for recovery...
|
||||
}],
|
||||
],
|
||||
})
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* vim:set ts=4 sw=4 : */
|
||||
|
||||
@ -375,6 +375,7 @@ module.FileSystemLoader = core.ImageGridFeatures.Feature({
|
||||
tag: 'fs-loader',
|
||||
depends: [
|
||||
'location',
|
||||
'tasks',
|
||||
],
|
||||
suggested: [
|
||||
'ui-fs-loader',
|
||||
|
||||
@ -478,7 +478,8 @@ module.MetaActions = {
|
||||
var handler = typeof(c) == 'function' ? c : b
|
||||
var tag = typeof(c) == 'function' ? b : c
|
||||
|
||||
actions = typeof(actions) == 'string' ? actions.split(' ') : actions
|
||||
// XXX make this split by whitespace...
|
||||
actions = typeof(actions) == 'string' ? actions.split(/ +/) : actions
|
||||
|
||||
var that = this
|
||||
actions.forEach(function(action){
|
||||
@ -498,7 +499,7 @@ module.MetaActions = {
|
||||
// via. .off(..)
|
||||
a_handler.orig_handler = old_handler.orig_handler || old_handler
|
||||
|
||||
// mot pre mode...
|
||||
// not pre mode...
|
||||
} else if(mode != 'pre') {
|
||||
// XXX
|
||||
throw 'Unknown action mode: '+action+'.'+mode
|
||||
|
||||
@ -152,7 +152,9 @@ function(path, make){
|
||||
var res = []
|
||||
|
||||
if(that.options.dotDirs){
|
||||
//files.splice(0, 0, '.', '..')
|
||||
// NOTE: this sometimes gets reordered so we aren't
|
||||
// using it... (BUG?)
|
||||
// files.splice(0, 0, '.', '..')
|
||||
// NOTE: we are counting these here so as to ensure
|
||||
// they are always first and not delayed by some
|
||||
// odd delay on a stat...
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user