Skip to content

Commit

Permalink
Same As Lock Status command renamed to Depend On Lock Status.
Browse files Browse the repository at this point in the history
  • Loading branch information
ozgurgunes committed Mar 21, 2019
1 parent 67bc70e commit 9c48637
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 36 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Overrides Manager [![Download Latest][image]][link]
<img src="https://github.com/ozgurgunes/Sketch-Overrides-Manager/blob/master/assets/icon.png?raw=true" alt="Sketch Overrides manager" width="128" align="right" />

[image]: https://img.shields.io/github/release/ozgurgunes/Sketch-Overrides-Manager.svg?label=Download%20Latest
# Overrides Manager [![Download Latest][image]][link]

[image]: https://img.shields.io/github/release/ozgurgunes/Sketch-Overrides-Manager.svg?label=Download
[link]: https://github.com/ozgurgunes/Sketch-Overrides-Manager/releases/latest/download/overrides-manager.sketchplugin.zip

A Sketch plugin which makes managing overrides easier.
Overrides Manager plugin for Sketch, which makes managing overrides easier, lets you enable or disable hundreds of symbol overrides with one click.

## Installation

[Download][] the latest release, unzip and double click on the .sketchplugin file.

[Download]: https://github.com/ozgurgunes/Sketch-Overrides-Manager/releases/latest/download/overrides-manager.sketchplugin.zip
[Download][link] the latest release, unzip and double click on the .sketchplugin file.

#### Alternatively

Expand Down Expand Up @@ -43,9 +43,9 @@ Make all unlocked layers and all their children editable;

* Go to ```Plugins > Overrides Manager > Enable Unlocked Layers```

### Same As Lock Status
### Depend On Lock Status

Enable or disable all overrides depending on layer lock status;

* Go to ```Plugins > Overrides Manager > Same As Lock Status```
* Go to ```Plugins > Overrides Manager > Depend On Lock Status```

10 changes: 6 additions & 4 deletions src/disable-all.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,28 @@ import sketch from 'sketch/dom'
import UI from 'sketch/ui'
import {
getSymbols,
successMessage,
analytics
} from './utils.js'

var selection = sketch.getSelectedDocument().selectedLayers

export default context => {
let c = 0
try {
let symbols = getSymbols(selection)
let symbols = getSymbols(selection),
c = 0
symbols.map(symbol => {
symbol.overrides.map(override => {
if (override.editable) {
override.editable = false
c++
}
c++
})
})
context.document.reloadInspector()
analytics("Success", c)
return UI.message(context.command.name() + ": " + c + " overrides in " + symbols.length + " symbols disabled.")
return successMessage(c + " overrides in " +
symbols.length + " symbols disabled.")
} catch (e) {
return e
}
Expand Down
10 changes: 6 additions & 4 deletions src/disable-locked.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import sketch from 'sketch/dom'
import UI from 'sketch/ui'
import {
getSymbols,
successMessage,
analytics
} from './utils.js'

var selection = sketch.getSelectedDocument().selectedLayers

export default context => {
let c = 0
try {
let symbols = getSymbols(selection)
let symbols = getSymbols(selection),
c = 0
symbols.map(symbol => {
symbol.overrides
.filter(override => override.id.indexOf("/") < 0 && override.affectedLayer.locked)
Expand All @@ -20,14 +21,15 @@ export default context => {
.map(override => {
if (override.editable) {
override.editable = false
c++
}
c++
})
})
})
context.document.reloadInspector()
analytics("Success", c)
return UI.message(context.command.name() + ": " + c + " overrides in " + symbols.length + " symbols disabled.")
return successMessage(c + " overrides in " +
symbols.length + " symbols disabled.")
} catch (e) {
return e
}
Expand Down
10 changes: 6 additions & 4 deletions src/enable-all.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,28 @@ import sketch from 'sketch/dom'
import UI from 'sketch/ui'
import {
getSymbols,
successMessage,
analytics
} from './utils.js'

var selection = sketch.getSelectedDocument().selectedLayers

export default context => {
let c = 0
try {
let symbols = getSymbols(selection)
let symbols = getSymbols(selection),
c = 0
symbols.map(symbol => {
symbol.overrides.map(override => {
if (!override.editable) {
override.editable = true
c++
}
c++
})
})
context.document.reloadInspector()
analytics("Success", c)
return UI.message(context.command.name() + ": " + c + " overrides in " + symbols.length + " symbols enabled.")
return successMessage(c + " overrides in " +
symbols.length + " symbols enabled.")
} catch (e) {
return e
}
Expand Down
10 changes: 6 additions & 4 deletions src/enable-unlocked.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import sketch from 'sketch/dom'
import UI from 'sketch/ui'
import {
getSymbols,
successMessage,
analytics
} from './utils.js'

var selection = sketch.getSelectedDocument().selectedLayers

export default context => {
let c = 0
try {
let symbols = getSymbols(selection)
let symbols = getSymbols(selection),
c = 0
symbols.map(symbol => {
symbol.overrides
.filter(override => override.id.indexOf("/") < 0 && !override.affectedLayer.locked)
Expand All @@ -20,14 +21,15 @@ export default context => {
.map(override => {
if (!override.editable) {
override.editable = true
c++
}
c++
})
})
})
context.document.reloadInspector()
analytics("Success", c)
return UI.message(context.command.name() + ": " + c + " overrides in " + symbols.length + " symbols are enabled.")
return successMessage(c + " overrides in " +
symbols.length + " symbols enabled.")
} catch (e) {
return e
}
Expand Down
13 changes: 7 additions & 6 deletions src/lock-status.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,34 @@ import sketch from 'sketch/dom'
import UI from 'sketch/ui'
import {
getSymbols,
successMessage,
analytics
} from './utils.js'

var selection = sketch.getSelectedDocument().selectedLayers

export default context => {
let c = 0
try {
let symbols = getSymbols(selection)
let symbols = getSymbols(selection),
c = 0
symbols.map(symbol => {
symbol.overrides
.filter(override => override.id.indexOf("/") < 0)
.map(layer => {
symbol.overrides
.filter(override => override.path.startsWith(layer.path))
.map(override => {
if (override.editable != !layer.affectedLayer.locked) {
if (override.editable != !override.affectedLayer.locked) {
override.editable = !layer.affectedLayer.locked
c++
}

c++
})
})
})
context.document.reloadInspector()
analytics("Success", c)
return UI.message(context.command.name() + ": " + c + " overrides in " + symbols.length + " symbols set.")
return successMessage(c + " overrides in " +
symbols.length + " symbols set.")
} catch (e) {
return e
}
Expand Down
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
"script": "./disable-locked.js"
},
{
"name": "Same As Lock Status",
"name": "Depend On Lock Status",
"identifier": "overrides-manager.lock-status",
"script": "./lock-status.js"
}
Expand Down
25 changes: 20 additions & 5 deletions src/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,40 @@ import sketch from 'sketch/dom'
import UI from 'sketch/ui'
import send from 'sketch-module-google-analytics'

const GA_TRACKING_ID = "UA-5738625-2"

export const getSymbols = selection => {
let symbols = selection.layers
.filter(layer => layer.type == sketch.Types.SymbolMaster)
if (symbols.length < 1) {
analytics("Selection Error", 0)
throw UI.message(context.command.name() + ": " + "Please select a symbol master.")
analytics("Selection Error")
throw errorMessage("Please select symbol masters.")
} else {
return symbols
}
}

export const message = (msg, status) => {
let emoji = ""
switch (status) {
case "error":
emoji = "⚠️   "
break;
case "success":
emoji = "✅   "
break;
}
UI.message(emoji + context.command.name() + ": " + msg)
}

export const errorMessage = msg => message(msg, "error")
export const successMessage = msg => message(msg, "success")

export const analytics = (label, value) => {
const ID = "UA-5738625-2"
const payload = {}
payload.ec = context.plugin.name()
payload.ea = context.command.name()
if (label) { payload.el = label }
if (value) { payload.ev = value }
return send(context, GA_TRACKING_ID, 'event', payload)
return send(context, ID, 'event', payload)
}

0 comments on commit 9c48637

Please sign in to comment.