mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-28 18:00:09 +00:00
added ability to disable features...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
8009e55246
commit
df378430c1
@ -123,6 +123,8 @@ core.ImageGridFeatures.Feature('viewer-testing', [
|
||||
|
||||
|
||||
'fail-safe-devtools',
|
||||
|
||||
'-experiments',
|
||||
])
|
||||
|
||||
/*
|
||||
|
||||
@ -474,6 +474,7 @@ module.SortUI = core.ImageGridFeatures.Feature({
|
||||
tag: 'ui-sort',
|
||||
depends: [
|
||||
'ui',
|
||||
'sort',
|
||||
],
|
||||
|
||||
actions: SortUIActions,
|
||||
|
||||
@ -1922,7 +1922,9 @@ var ControlActions = actions.Actions({
|
||||
|
||||
// on...
|
||||
if(state == 'on'){
|
||||
this.off('updateRibbon', handler)
|
||||
this.on('updateRibbon', handler)
|
||||
|
||||
this.data.ribbon_order.forEach(function(gid){
|
||||
handler.call(that, null, gid)
|
||||
})
|
||||
|
||||
@ -710,7 +710,7 @@ module.MetaActions = {
|
||||
mode = mode[1]
|
||||
|
||||
// get the handlers...
|
||||
var h = that._action_handlers[action]
|
||||
var h = that._action_handlers[action] || []
|
||||
|
||||
// remove explicit handler...
|
||||
if(typeof(handler) == 'function'){
|
||||
|
||||
@ -47,6 +47,9 @@ var actions = require('lib/actions')
|
||||
// and mixed out on .remove()
|
||||
// .config - feature configuration, will be merged with base
|
||||
// object's .config
|
||||
// NOTE: the final .config is an empty object with
|
||||
// .__proto__ set to the merged configuration
|
||||
// data...
|
||||
// .handlers - feature event handlers (list | null)
|
||||
//
|
||||
//
|
||||
@ -273,6 +276,14 @@ module.FeatureSet = {
|
||||
// breaking either the dependency or priority ordering.
|
||||
//
|
||||
//
|
||||
// Forcing a feature disabled:
|
||||
//
|
||||
// If a feature is indicated with a leading '-' then it is forced
|
||||
// disabled and will not load.
|
||||
// Disabled features are treated in the same way as inaplicable
|
||||
// features.
|
||||
//
|
||||
//
|
||||
// Dependency sorting:
|
||||
//
|
||||
// These are order dependencies, i.e. for a dependency to be
|
||||
@ -451,6 +462,15 @@ module.FeatureSet = {
|
||||
// NOTE: this will not resolve all the conflicts...
|
||||
lst = _sortDep(lst, missing, depth).unique()
|
||||
|
||||
// get disabled features...
|
||||
var disabled = []
|
||||
Object.keys(missing).forEach(function(n){
|
||||
if(n[0] == '-'){
|
||||
delete missing[n]
|
||||
disabled.push(n.slice(1))
|
||||
}
|
||||
})
|
||||
|
||||
// clasify features...
|
||||
var unapplicable = []
|
||||
var conflicts = {}
|
||||
@ -461,6 +481,11 @@ module.FeatureSet = {
|
||||
return true
|
||||
}
|
||||
|
||||
// disabled...
|
||||
if(disabled.indexOf(n) >= 0){
|
||||
return false
|
||||
}
|
||||
|
||||
// check applicability...
|
||||
if(!e.isApplicable.call(that, obj)){
|
||||
unapplicable.push(n)
|
||||
@ -472,11 +497,13 @@ module.FeatureSet = {
|
||||
return true
|
||||
}
|
||||
|
||||
// mark feature unapplicable if it depends on an unapplicable...
|
||||
// mark feature unapplicable if it depends on an unapplicable
|
||||
// or a disabled...
|
||||
// NOTE: we need to do this once as features at this point
|
||||
// are sorted by dependencies...
|
||||
if(e.depends.filter(function(dep){
|
||||
return unapplicable.indexOf(dep) > -1
|
||||
|| disabled.indexOf(dep) > -1
|
||||
}).length > 0){
|
||||
unapplicable.push(n)
|
||||
return false
|
||||
@ -533,6 +560,7 @@ module.FeatureSet = {
|
||||
|
||||
return {
|
||||
features: lst,
|
||||
disabled: disabled,
|
||||
excluded: excluded,
|
||||
missing: missing,
|
||||
conflicts: conflicts,
|
||||
|
||||
@ -89,7 +89,8 @@ module.QueueActions = actions.Actions({
|
||||
taskFailed: ['', function(){}],
|
||||
taskDone: ['', function(){}],
|
||||
|
||||
done: ['', function(){}],
|
||||
done: ['', function(func){
|
||||
func && this.on('done', func) }],
|
||||
|
||||
|
||||
// Task manipulation actions...
|
||||
|
||||
@ -75,6 +75,10 @@ $(function(){
|
||||
&& console.warn('Features excluded (%d):',
|
||||
a.features.excluded.length,
|
||||
a.features.excluded)
|
||||
a.features.disabled.length > 0
|
||||
&& console.log('Features disabled (%d):',
|
||||
a.features.disabled.length,
|
||||
a.features.disabled)
|
||||
console.log('Features not applicable (%d):',
|
||||
a.features.unapplicable.length,
|
||||
a.features.unapplicable)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user