diff --git a/src/client/site/mod_page/mod_page.jade b/src/client/site/mod_page/mod_page.jade
index 927f7bfe4..b6cf846eb 100644
--- a/src/client/site/mod_page/mod_page.jade
+++ b/src/client/site/mod_page/mod_page.jade
@@ -17,8 +17,11 @@
.title
.author
.description
+ .modpack
+ span.checkbox
+ span.label I have this mod in my modpack
.version
- span in my mod pack
+ span I'm using version:
select
.warning.
PLEASE NOTE: By selecting "no", crafting plans, search, and other features will ignore items
diff --git a/src/client/site/mod_page/mod_page.scss b/src/client/site/mod_page/mod_page.scss
index 42c1f76d1..494859596 100644
--- a/src/client/site/mod_page/mod_page.scss
+++ b/src/client/site/mod_page/mod_page.scss
@@ -49,8 +49,44 @@
line-height: $font-size-medium * 1.25;
}
+ .modpack {
+ margin-top : $size-margin-large;
+
+ cursor : pointer;
+ font-family : $font-family-control;
+ font-size : $font-size-medium;
+
+ display : flex;
+
+ .checkbox {
+ display : inline-block;
+ height : $font-size-medium;
+ margin-right : $size-margin-small;
+ position : relative;
+ width : $font-size-medium;
+
+ background : $color-white;
+ border : $size-border-small solid $color-black;
+ }
+
+ .label {
+ color: $color-gray-medium;
+ }
+
+ &.enabled {
+ .checkbox:before {
+ position: absolute; top: 0; left: 1.5px; // adjust for glyph position
+ content: "✕";
+ }
+
+ .label {
+ color: $color-black;
+ }
+ }
+ }
+
.version {
- margin-top: $size-margin-large;
+ margin-top: $size-margin-medium;
font-family: $font-family-control;
font-size: $font-size-medium;
@@ -91,4 +127,4 @@
@include layout-link-list;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/client/site/mod_page/mod_page_controller.coffee b/src/client/site/mod_page/mod_page_controller.coffee
index 0f92c8d45..b05985720 100644
--- a/src/client/site/mod_page/mod_page_controller.coffee
+++ b/src/client/site/mod_page/mod_page_controller.coffee
@@ -29,6 +29,14 @@ module.exports = class ModPageController extends BaseController
# Event Methods ################################################################################
+ onToggleEnabled: ->
+ if @model.activeVersion is Mod.Version.None
+ @model.activeVersion = Mod.Version.Latest
+ else
+ @model.activeVersion = Mod.Version.None
+
+ return false
+
onVersionChanged: ->
@model.activeVersion = @$versionSelector.val()
return false
@@ -67,15 +75,18 @@ module.exports = class ModPageController extends BaseController
@$homePageLink = @$('.about .homePage')
@$itemGroups = @$(".itemGroups")
@$logo = @$('.about img')
+ @$modpackSection = @$('.modpack')
@$title = @$('.about .title')
@$tutorialsContainer = @$('section.tutorials .panel')
@$tutorialsSection = @$('section.tutorials')
+ @$versionSection = @$('.version')
@$versionSelector = @$('.version select')
@$warning = @$('.warning')
super
refresh: ->
@_refreshAboutBlock()
+ @_refreshEnabled()
@_refreshItemGroups()
@_refreshTutorials()
@_refreshVersionSelector()
@@ -86,6 +97,7 @@ module.exports = class ModPageController extends BaseController
events: ->
return _.extend super,
'change .version select': 'onVersionChanged'
+ 'click .modpack': 'onToggleEnabled'
# Private Methods ##############################################################################
@@ -107,6 +119,19 @@ module.exports = class ModPageController extends BaseController
@$logo.attr 'src', ''
@$title.text ''
+ _refreshEnabled: ->
+ if @model.slug in c.requiredMods
+ @hide @$modpackSection
+ else
+ @show @$modpackSection
+
+ if @model.activeVersion is Mod.Version.None
+ @$modpackSection.removeClass 'enabled'
+ @show @$warning
+ else
+ @$modpackSection.addClass 'enabled'
+ @hide @$warning
+
_refreshItemGroups: ->
@_groupControllers ?= []
groupIndex = 0
@@ -164,19 +189,16 @@ module.exports = class ModPageController extends BaseController
_refreshVersionSelector: ->
modVersions = @model.modVersions
+
+ if (@model.activeVersion is Mod.Version.None) or modVersions.length < 2
+ @hide @$versionSection
+ else
+ @show @$versionSection
+
selectedModVersion = @effectiveModVersion
@$versionSelector.empty()
- $option = $("")
- if not @model.enabled
- @$warning.css display:''
- selectedModVersion = null
- $option.attr 'selected', true
- else
- @$warning.css display:'none'
- @$versionSelector.append $option
-
for modVersion in @model.modVersions
$option = $("")
if modVersion is selectedModVersion