1
0
mirror of https://github.com/mattermost/focalboard.git synced 2025-03-29 21:01:01 +02:00

Cherry pick fix for #3268 (#3270)

This commit is contained in:
Chen-I Lim 2022-06-22 16:44:20 -07:00 committed by GitHub
parent 2f0c1235bb
commit 1207a22291
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 63 additions and 17 deletions

View File

@ -160,7 +160,7 @@
80D6DEB3252E13CB00AEED9E /* Sources */, 80D6DEB3252E13CB00AEED9E /* Sources */,
80D6DEB4252E13CB00AEED9E /* Frameworks */, 80D6DEB4252E13CB00AEED9E /* Frameworks */,
80D6DEB5252E13CB00AEED9E /* Resources */, 80D6DEB5252E13CB00AEED9E /* Resources */,
80D6DF1D25324A8100AEED9E /* ShellScript */, 80D6DF1D25324A8100AEED9E /* Run Script */,
); );
buildRules = ( buildRules = (
); );
@ -278,7 +278,7 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
80D6DF1D25324A8100AEED9E /* ShellScript */ = { 80D6DF1D25324A8100AEED9E /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@ -287,6 +287,7 @@
); );
inputPaths = ( inputPaths = (
); );
name = "Run Script";
outputFileListPaths = ( outputFileListPaths = (
); );
outputPaths = ( outputPaths = (
@ -480,7 +481,7 @@
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 24; CURRENT_PROJECT_VERSION = 33;
DEVELOPMENT_TEAM = HFP57A3MYB; DEVELOPMENT_TEAM = HFP57A3MYB;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = Focalboard/Info.plist; INFOPLIST_FILE = Focalboard/Info.plist;
@ -488,6 +489,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 7.2;
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.focalboard; PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.focalboard;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@ -504,7 +506,7 @@
CODE_SIGN_IDENTITY = "-"; CODE_SIGN_IDENTITY = "-";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 24; CURRENT_PROJECT_VERSION = 33;
DEVELOPMENT_TEAM = HFP57A3MYB; DEVELOPMENT_TEAM = HFP57A3MYB;
ENABLE_HARDENED_RUNTIME = YES; ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = Focalboard/Info.plist; INFOPLIST_FILE = Focalboard/Info.plist;
@ -512,6 +514,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 7.2;
PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.focalboard; PRODUCT_BUNDLE_IDENTIFIER = com.mattermost.focalboard;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View File

@ -66,6 +66,10 @@ class AppDelegate: NSObject, NSApplicationDelegate {
vc.showWindow(self) vc.showWindow(self)
} }
@IBAction func getCloudServer(_: AnyObject) {
Globals.openGetCloudServerUrl()
}
private func webFolder() -> URL { private func webFolder() -> URL {
let url = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first! let url = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first!
return url.appendingPathComponent("Focalboard").appendingPathComponent("server") return url.appendingPathComponent("Focalboard").appendingPathComponent("server")

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS"> <document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19529"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="20037"/>
<plugIn identifier="com.apple.WebKit2IBPlugin" version="19529"/> <plugIn identifier="com.apple.WebKit2IBPlugin" version="20037"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<scenes> <scenes>
@ -29,6 +29,12 @@
<action selector="showWhatsNew:" target="Ady-hI-5gd" id="dlB-6q-7bK"/> <action selector="showWhatsNew:" target="Ady-hI-5gd" id="dlB-6q-7bK"/>
</connections> </connections>
</menuItem> </menuItem>
<menuItem title="Get Mattermost Boards server" id="8YW-NP-PAh">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="getCloudServer:" target="Ady-hI-5gd" id="OvY-fG-Tqt"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/> <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/> <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/> <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
@ -942,17 +948,17 @@ Thanks so much,
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
</scroller> </scroller>
</scrollView> </scrollView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eyp-ee-dxf"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WZS-cI-X3m">
<rect key="frame" x="7" y="7" width="289" height="32"/> <rect key="frame" x="13" y="7" width="314" height="32"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="275" id="Zzi-QI-UrX"/> <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="300" id="tZN-oK-pDS"/>
</constraints> </constraints>
<buttonCell key="cell" type="push" title="Rate Focalboard" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="7Kt-FU-UP3"> <buttonCell key="cell" type="push" title="Setup free Mattermost Boards server" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="XJY-Vn-Z2s">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
</buttonCell> </buttonCell>
<connections> <connections>
<action selector="rateButtonClicked:" target="aYX-zT-OJj" id="QqZ-am-cnJ"/> <action selector="cloudButtonClicked:" target="Fag-zV-Usm" id="ju3-LN-Zq9"/>
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dYB-Yp-UHf"> <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dYB-Yp-UHf">
@ -968,13 +974,28 @@ Thanks so much,
<action selector="closeButtonClicked:" target="aYX-zT-OJj" id="run-tB-6Tb"/> <action selector="closeButtonClicked:" target="aYX-zT-OJj" id="run-tB-6Tb"/>
</connections> </connections>
</button> </button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eyp-ee-dxf">
<rect key="frame" x="325" y="7" width="164" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="150" id="Zzi-QI-UrX"/>
</constraints>
<buttonCell key="cell" type="push" title="Rate Focalboard" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="7Kt-FU-UP3">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="rateButtonClicked:" target="aYX-zT-OJj" id="QqZ-am-cnJ"/>
</connections>
</button>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstItem="WZS-cI-X3m" firstAttribute="top" secondItem="baY-7A-lBA" secondAttribute="bottom" constant="20" symbolic="YES" id="29y-HQ-Ik9"/>
<constraint firstItem="WZS-cI-X3m" firstAttribute="leading" secondItem="fy7-95-Eie" secondAttribute="leading" constant="20" symbolic="YES" id="EMs-BU-zTE"/>
<constraint firstAttribute="bottom" secondItem="eyp-ee-dxf" secondAttribute="bottom" constant="14" id="Kvc-VM-O1W"/> <constraint firstAttribute="bottom" secondItem="eyp-ee-dxf" secondAttribute="bottom" constant="14" id="Kvc-VM-O1W"/>
<constraint firstAttribute="trailing" secondItem="dYB-Yp-UHf" secondAttribute="trailing" constant="32" id="SQ6-Hs-a1n"/> <constraint firstAttribute="trailing" secondItem="dYB-Yp-UHf" secondAttribute="trailing" constant="32" id="SQ6-Hs-a1n"/>
<constraint firstItem="eyp-ee-dxf" firstAttribute="leading" secondItem="fy7-95-Eie" secondAttribute="leading" constant="14" id="TTF-mb-cZY"/>
<constraint firstItem="eyp-ee-dxf" firstAttribute="top" secondItem="baY-7A-lBA" secondAttribute="bottom" constant="20" symbolic="YES" id="UIA-ji-xOe"/> <constraint firstItem="eyp-ee-dxf" firstAttribute="top" secondItem="baY-7A-lBA" secondAttribute="bottom" constant="20" symbolic="YES" id="UIA-ji-xOe"/>
<constraint firstAttribute="trailing" secondItem="baY-7A-lBA" secondAttribute="trailing" constant="20" id="cRi-Tx-jtT"/> <constraint firstAttribute="trailing" secondItem="baY-7A-lBA" secondAttribute="trailing" constant="20" id="cRi-Tx-jtT"/>
<constraint firstItem="eyp-ee-dxf" firstAttribute="leading" secondItem="WZS-cI-X3m" secondAttribute="trailing" constant="12" symbolic="YES" id="eKo-Qk-lxl"/>
<constraint firstAttribute="bottom" secondItem="dYB-Yp-UHf" secondAttribute="bottom" constant="14" id="grP-Cj-Euz"/> <constraint firstAttribute="bottom" secondItem="dYB-Yp-UHf" secondAttribute="bottom" constant="14" id="grP-Cj-Euz"/>
<constraint firstItem="baY-7A-lBA" firstAttribute="leading" secondItem="fy7-95-Eie" secondAttribute="leading" constant="20" id="mxh-wg-iXP"/> <constraint firstItem="baY-7A-lBA" firstAttribute="leading" secondItem="fy7-95-Eie" secondAttribute="leading" constant="20" id="mxh-wg-iXP"/>
<constraint firstItem="baY-7A-lBA" firstAttribute="top" secondItem="fy7-95-Eie" secondAttribute="top" constant="20" id="oAR-aZ-gNJ"/> <constraint firstItem="baY-7A-lBA" firstAttribute="top" secondItem="fy7-95-Eie" secondAttribute="top" constant="20" id="oAR-aZ-gNJ"/>
@ -982,6 +1003,7 @@ Thanks so much,
</constraints> </constraints>
</view> </view>
<connections> <connections>
<outlet property="cloudButton" destination="WZS-cI-X3m" id="4ry-4a-zGW"/>
<outlet property="rateButton" destination="eyp-ee-dxf" id="cvh-x3-TPU"/> <outlet property="rateButton" destination="eyp-ee-dxf" id="cvh-x3-TPU"/>
<outlet property="textView" destination="f3s-Q5-6IG" id="nbt-zY-bAo"/> <outlet property="textView" destination="f3s-Q5-6IG" id="nbt-zY-bAo"/>
</connections> </connections>

View File

@ -2,13 +2,19 @@
// See LICENSE.txt for license information. // See LICENSE.txt for license information.
import Foundation import Foundation
import Cocoa
class Globals { class Globals {
static let ProductVersion = 70000 static let ProductVersion = 70000
static let WhatsNewVersion = 01100 static let WhatsNewVersion = 70000
static var currentWhatsNewVersion: Int { static var currentWhatsNewVersion: Int {
get { return UserDefaults.standard.integer(forKey: "whatsNewVersion") } get { return UserDefaults.standard.integer(forKey: "whatsNewVersion") }
set { UserDefaults.standard.setValue(newValue, forKey: "whatsNewVersion") } set { UserDefaults.standard.setValue(newValue, forKey: "whatsNewVersion") }
} }
static func openGetCloudServerUrl() {
let url = URL(string: "https://mattermost.com/sign-up/?utm_source=focalboard&utm_campaign=focalboardapp")!
NSWorkspace.shared.open(url)
}
} }

View File

@ -17,7 +17,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>7.2.0</string> <string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string> <string>$(CURRENT_PROJECT_VERSION)</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>

View File

@ -7,6 +7,7 @@ class WhatsNewViewController:
NSViewController { NSViewController {
@IBOutlet var textView: NSTextView! @IBOutlet var textView: NSTextView!
@IBOutlet var rateButton: NSButton! @IBOutlet var rateButton: NSButton!
@IBOutlet var cloudButton: NSButton!
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
@ -28,6 +29,10 @@ class WhatsNewViewController:
view.window?.close() view.window?.close()
} }
@IBAction func cloudButtonClicked(_ sender: Any) {
Globals.openGetCloudServerUrl()
}
@IBAction func closeButtonClicked(_ sender: Any) { @IBAction func closeButtonClicked(_ sender: Any) {
view.window?.close() view.window?.close()
} }

View File

@ -1,6 +1,12 @@
Welcome to Focalboard v0.11.0! Welcome to Focalboard v7.2!
Thank you contributors! There are a number of improvements in this release, and one major new feature: Mattermost Boards is now availalbe as a Cloud service. Set up your free server via the button below to collaborate with your team.
Mattermost Boards combines all the features of Focalboard with real-time collaboration, calls, and playbooks.
You can export boards from Focalboard and import them into Mattermost Boards, and pick up where you left off.
Thank you contributors! Recent improvements include:
* Calendar view. Thanks @sbishel! * Calendar view. Thanks @sbishel!